[33/47] net/bnxt: tf_ulp: support for dynamic tunnel ports

Message ID 20240830140049.1715230-34-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 support for dynamic tunnel udp ports. Based on the
flow udp destination port of the tunnel packet is configured at
runtime.

This patch also includes the following additional changes
related to this feature.

updates to dynamic tunnel ports
	Added logic to consider explicit tunnel port configurations
	so that it can work with dynamic tunnel port configuration.

fix seg fault in context access
	The list iteration may return null when no entries are present,
	the subsequent code should consider that be protected in
	paranthesis.

Set the default VxLAN tunnel port
	If the tunnel port was not specified, the default one should be
	configured to 4789 within the flow parser. Failure to do so will
	result in a failed flow creation.

multiple flow support for tunnel flows
	Added support to break tunnel flows into outer and inner
	match so that scale of the tunnel flows can be improved.

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

- support for dynamic tunnel ports
- updates to dynamic tunnel ports
- multiple flow support for tunnel flows

Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Reviewed-by: Shuanglin Wang <shuanglin.wang@broadcom.com>
Reviewed-by: Michael Baucom <michael.baucom@broadcom.com>
Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
---
 drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c    |   155 +-
 drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.h    |    15 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |    59 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |    18 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c         |    18 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c        |    14 +-
 .../generic_templates/ulp_template_db_class.c |  1250 +-
 .../generic_templates/ulp_template_db_enum.h  |   146 +-
 .../generic_templates/ulp_template_db_tbl.c   |   269 +-
 .../ulp_template_db_thor2_act.c               |  2257 +-
 .../ulp_template_db_thor2_class.c             |   279 +-
 .../ulp_template_db_thor_act.c                |   117 +
 .../ulp_template_db_thor_class.c              | 18407 ++++++++++------
 .../ulp_template_db_wh_plus_act.c             |   154 +
 .../ulp_template_db_wh_plus_class.c           |    95 +
 drivers/net/bnxt/tf_ulp/ulp_def_rules.c       |    20 +
 drivers/net/bnxt/tf_ulp/ulp_mapper.c          |   103 +-
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      |   180 +-
 drivers/net/bnxt/tf_ulp/ulp_template_struct.h |     1 +
 19 files changed, 16171 insertions(+), 7386 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 dd67165a78..b091c192c2 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c
@@ -16,6 +16,10 @@ 
 #include "bnxt_hwrm.h"
 #include "bnxt_tf_common.h"
 #include "bnxt_tf_pmd_shim.h"
+#ifdef RTE_LIBRTE_BNXT_TRUFLOW_DEBUG
+#include "ulp_template_debug_proto.h"
+#endif
+
 
 void bnxt_pmd_configure_hot_upgrade(bool enable);
 
@@ -477,17 +481,20 @@  int32_t bnxt_pmd_rss_action_delete(struct bnxt *bp, uint16_t vnic_idx)
 	return bnxt_vnic_rss_action_free(bp, vnic_idx);
 }
 
+#define ULP_GLOBAL_TUNNEL_UDP_PORT_SHIFT  32
+#define ULP_GLOBAL_TUNNEL_UDP_PORT_MASK   ((uint16_t)0xffff)
 #define ULP_GLOBAL_TUNNEL_PORT_ID_SHIFT  16
 #define ULP_GLOBAL_TUNNEL_PORT_ID_MASK   ((uint16_t)0xffff)
 #define ULP_GLOBAL_TUNNEL_UPARID_SHIFT   8
 #define ULP_GLOBAL_TUNNEL_UPARID_MASK    ((uint16_t)0xff)
 #define ULP_GLOBAL_TUNNEL_TYPE_SHIFT     0
-#define ULP_GLOBAL_TUNNEL_TYPE_MASK      ((uint16_t)0xffff)
+#define ULP_GLOBAL_TUNNEL_TYPE_MASK      ((uint16_t)0xff)
 
 /* Extracts the dpdk port id and tunnel type from the handle */
 static void
-bnxt_pmd_global_reg_hndl_to_data(uint32_t handle, uint16_t *port,
-				 uint8_t *upar_id, uint8_t *type)
+bnxt_pmd_global_reg_hndl_to_data(uint64_t handle, uint16_t *port,
+				 uint8_t *upar_id, uint8_t *type,
+				 uint16_t *udp_port)
 {
 	*type    = (handle >> ULP_GLOBAL_TUNNEL_TYPE_SHIFT) &
 		   ULP_GLOBAL_TUNNEL_TYPE_MASK;
@@ -495,85 +502,96 @@  bnxt_pmd_global_reg_hndl_to_data(uint32_t handle, uint16_t *port,
 		   ULP_GLOBAL_TUNNEL_UPARID_MASK;
 	*port    = (handle >> ULP_GLOBAL_TUNNEL_PORT_ID_SHIFT) &
 		   ULP_GLOBAL_TUNNEL_PORT_ID_MASK;
+	*udp_port = (handle >> ULP_GLOBAL_TUNNEL_UDP_PORT_SHIFT) &
+		   ULP_GLOBAL_TUNNEL_UDP_PORT_MASK;
 }
 
 /* Packs the dpdk port id and tunnel type in the handle */
 static void
 bnxt_pmd_global_reg_data_to_hndl(uint16_t port_id, uint8_t upar_id,
-				 uint8_t type, uint32_t *handle)
+				 uint8_t type, uint16_t udp_port,
+				 uint64_t *handle)
 {
-	*handle	=  (port_id & ULP_GLOBAL_TUNNEL_PORT_ID_MASK) <<
-		   ULP_GLOBAL_TUNNEL_PORT_ID_SHIFT;
+	*handle = 0;
+	*handle	|=  (udp_port & ULP_GLOBAL_TUNNEL_UDP_PORT_MASK);
+	*handle	<<= ULP_GLOBAL_TUNNEL_UDP_PORT_SHIFT;
+	*handle	|=  (port_id & ULP_GLOBAL_TUNNEL_PORT_ID_MASK) <<
+		ULP_GLOBAL_TUNNEL_PORT_ID_SHIFT;
 	*handle	|= (upar_id & ULP_GLOBAL_TUNNEL_UPARID_MASK) <<
-		   ULP_GLOBAL_TUNNEL_UPARID_SHIFT;
-	*handle |= (type & ULP_GLOBAL_TUNNEL_TYPE_MASK) <<
-		   ULP_GLOBAL_TUNNEL_TYPE_SHIFT;
+		ULP_GLOBAL_TUNNEL_UPARID_SHIFT;
+	*handle |= (type & ULP_GLOBAL_TUNNEL_TYPE_MASK);
 }
 
-static struct bnxt_global_tunnel_info
-	      ulp_global_tunnel_db[BNXT_GLOBAL_REGISTER_TUNNEL_MAX] = {{0}};
 /* Sets or resets the tunnel ports.
  * If dport == 0, then the port_id and type are retrieved from the handle.
  * otherwise, the incoming port_id, type, and dport are used.
  * The type is enum ulp_mapper_ulp_global_tunnel_type
  */
 int32_t
-bnxt_pmd_global_tunnel_set(uint16_t port_id, uint8_t type,
-			   uint16_t udp_port, uint32_t *handle)
+bnxt_pmd_global_tunnel_set(struct bnxt_ulp_context *ulp_ctx,
+			   uint16_t port_id, uint8_t type,
+			   uint16_t udp_port, uint64_t *handle)
 {
-	uint16_t lport_id, ldport;
-	uint8_t hwtype, ltype, lupar_id;
+	uint8_t hwtype = 0, ltype, lupar_id = 0;
+	struct rte_eth_dev *eth_dev;
+	struct rte_eth_udp_tunnel udp_tunnel = { 0 };
+	uint32_t *ulp_flags;
 	struct bnxt *bp;
 	int32_t rc = 0;
+	uint16_t ludp_port = udp_port;
+
+	if (!udp_port) {
+		/* Free based on the handle */
+		if (!handle) {
+			BNXT_DRV_DBG(ERR, "Free with invalid handle\n");
+			return -EINVAL;
+		}
+		bnxt_pmd_global_reg_hndl_to_data(*handle, &port_id,
+						 &lupar_id, &ltype, &ludp_port);
+	}
 
 	/* convert to HWRM type */
 	switch (type) {
-	case BNXT_GLOBAL_REGISTER_TUNNEL_VXLAN:
-		hwtype = HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN;
+	case BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN:
+		udp_tunnel.prot_type = RTE_ETH_TUNNEL_TYPE_VXLAN;
 		break;
-	case BNXT_GLOBAL_REGISTER_TUNNEL_ECPRI:
-		hwtype = HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_ECPRI;
+	case BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_ECPRI:
+		udp_tunnel.prot_type = RTE_ETH_TUNNEL_TYPE_ECPRI;
 		break;
-	case BNXT_GLOBAL_REGISTER_TUNNEL_VXLAN_GPE:
-		hwtype = HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN_GPE;
+	case BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN_GPE:
+		udp_tunnel.prot_type = RTE_ETH_TUNNEL_TYPE_VXLAN_GPE;
 		break;
-	case BNXT_GLOBAL_REGISTER_TUNNEL_VXLAN_GPE_V6:
+	case BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_GENEVE:
+		udp_tunnel.prot_type = RTE_ETH_TUNNEL_TYPE_GENEVE;
+		break;
+	case BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN_GPE_V6:
 		hwtype = HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN_GPE_V6;
 		break;
+	case BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN_IP:
+		hwtype = HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN_V4;
+		break;
 	default:
 		BNXT_DRV_DBG(ERR, "Tunnel Type (%d) invalid\n", type);
 		return -EINVAL;
 	}
 
-	if (!udp_port) {
-		/* Free based on the handle */
-		if (!handle) {
-			BNXT_DRV_DBG(ERR, "Free with invalid handle\n");
+	if (udp_tunnel.prot_type) {
+		udp_tunnel.udp_port = ludp_port;
+		if (!rte_eth_dev_is_valid_port(port_id)) {
+			PMD_DRV_LOG(ERR, "Invalid port %d\n", port_id);
 			return -EINVAL;
 		}
-		bnxt_pmd_global_reg_hndl_to_data(*handle, &lport_id,
-						  &lupar_id, &ltype);
 
-		bp = bnxt_pmd_get_bp(lport_id);
-		if (!bp) {
-			BNXT_DRV_DBG(ERR, "Unable to get dev by port %d\n",
-				     lport_id);
+		eth_dev = &rte_eth_devices[port_id];
+		if (!is_bnxt_supported(eth_dev)) {
+			PMD_DRV_LOG(ERR, "Device %d not supported\n", port_id);
 			return -EINVAL;
 		}
 
-		if (!ulp_global_tunnel_db[ltype].ref_cnt)
-			return 0;
-		ldport = ulp_global_tunnel_db[ltype].dport;
-		rc = bnxt_hwrm_tunnel_dst_port_free(bp, ldport, hwtype);
-		if (rc) {
-			BNXT_DRV_DBG(ERR,
-				     "Unable to free tunnel dst port (%d)\n",
-				     ldport);
-			return rc;
-		}
-		ulp_global_tunnel_db[ltype].ref_cnt--;
-		if (ulp_global_tunnel_db[ltype].ref_cnt == 0)
-			ulp_global_tunnel_db[ltype].dport = 0;
+		if (udp_port)
+			rc = bnxt_udp_tunnel_port_add_op(eth_dev, &udp_tunnel);
+		else
+			rc = bnxt_udp_tunnel_port_del_op(eth_dev, &udp_tunnel);
 	} else {
 		bp = bnxt_pmd_get_bp(port_id);
 		if (!bp) {
@@ -581,21 +599,42 @@  bnxt_pmd_global_tunnel_set(uint16_t port_id, uint8_t type,
 				     port_id);
 			return -EINVAL;
 		}
+		if (udp_port)
+			rc = bnxt_hwrm_tunnel_dst_port_alloc(bp, udp_port,
+							     hwtype);
+		else
+			rc = bnxt_hwrm_tunnel_dst_port_free(bp, port_id,
+							    hwtype);
+	}
 
-		rc = bnxt_hwrm_tunnel_dst_port_alloc(bp, udp_port, hwtype);
-		if (rc) {
-			PMD_DRV_LOG(ERR, "Tunnel type:%d alloc failed for port:%d error:%s\n",
-				    hwtype, udp_port,
-				    (rc ==
-				     HWRM_TUNNEL_DST_PORT_ALLOC_OUTPUT_ERROR_INFO_ERR_ALLOCATED) ?
-				    "already allocated" : "no resource");
-		} else {
-			ulp_global_tunnel_db[type].ref_cnt++;
-			ulp_global_tunnel_db[type].dport = udp_port;
-			bnxt_pmd_global_reg_data_to_hndl(port_id, bp->ecpri_upar_in_use,
-							 type, handle);
-		}
+	if (rc) {
+		PMD_DRV_LOG(ERR, "Tunnel set failed for port:%d error:%d\n",
+			    port_id, rc);
+		return rc;
 	}
+#ifdef RTE_LIBRTE_BNXT_TRUFLOW_DEBUG
+	ulp_mapper_global_register_tbl_dump(type, udp_port);
+#endif
+	if (udp_port)
+		bnxt_pmd_global_reg_data_to_hndl(port_id, lupar_id,
+						 type, udp_port, handle);
+
+	if (type == BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN ||
+	    type == BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN_IP) {
+		ulp_flags = &ulp_ctx->cfg_data->ulp_flags;
+		if (udp_port)
+			*ulp_flags |= BNXT_ULP_DYNAMIC_VXLAN_PORT;
+		else
+			*ulp_flags &= ~BNXT_ULP_DYNAMIC_VXLAN_PORT;
+	}
+	if (type == BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_GENEVE) {
+		ulp_flags = &ulp_ctx->cfg_data->ulp_flags;
+		if (udp_port)
+			*ulp_flags |= BNXT_ULP_DYNAMIC_GENEVE_PORT;
+		else
+			*ulp_flags &= ~BNXT_ULP_DYNAMIC_GENEVE_PORT;
+	}
+
 	return rc;
 }
 
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.h b/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.h
index a2feeda528..23fe6b8b11 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.h
+++ b/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.h
@@ -15,16 +15,6 @@  struct bnxt_global_tunnel_info {
 	uint16_t ref_cnt;
 };
 
-/* Internal Tunnel type, */
-enum bnxt_global_register_tunnel_type {
-	BNXT_GLOBAL_REGISTER_TUNNEL_UNUSED = 0,
-	BNXT_GLOBAL_REGISTER_TUNNEL_VXLAN,
-	BNXT_GLOBAL_REGISTER_TUNNEL_ECPRI,
-	BNXT_GLOBAL_REGISTER_TUNNEL_VXLAN_GPE,
-	BNXT_GLOBAL_REGISTER_TUNNEL_VXLAN_GPE_V6,
-	BNXT_GLOBAL_REGISTER_TUNNEL_MAX
-};
-
 int32_t bnxt_rss_config_action_apply(struct bnxt_ulp_mapper_parms *parms);
 int32_t bnxt_pmd_get_parent_mac_addr(struct bnxt_ulp_mapper_parms *parms,
 				     uint8_t *mac);
@@ -54,8 +44,9 @@  int32_t bnxt_tunnel_dst_port_alloc(struct bnxt *bp,
 				   uint16_t port,
 				   uint8_t type);
 int32_t
-bnxt_pmd_global_tunnel_set(uint16_t port_id, uint8_t type,
-			   uint16_t udp_port, uint32_t *handle);
+bnxt_pmd_global_tunnel_set(struct bnxt_ulp_context *ulp_ctx,
+			   uint16_t port_id, uint8_t type,
+			   uint16_t udp_port, uint64_t *handle);
 int32_t
 bnxt_tunnel_upar_id_get(struct bnxt *bp,
 			uint8_t type,
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
index 67dea3bff3..d258f51106 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
@@ -175,7 +175,8 @@  bnxt_ulp_cntxt_vxlan_ip_port_set(struct bnxt_ulp_context *ulp_ctx,
 		return -EINVAL;
 
 	ulp_ctx->cfg_data->vxlan_ip_port = vxlan_ip_port;
-
+	if (vxlan_ip_port)
+		ulp_ctx->cfg_data->ulp_flags |= BNXT_ULP_STATIC_VXLAN_SUPPORT;
 	return 0;
 }
 
@@ -221,6 +222,8 @@  bnxt_ulp_cntxt_vxlan_port_set(struct bnxt_ulp_context *ulp_ctx,
 		return -EINVAL;
 
 	ulp_ctx->cfg_data->vxlan_port = vxlan_port;
+	if (vxlan_port)
+		ulp_ctx->cfg_data->ulp_flags |= BNXT_ULP_STATIC_VXLAN_SUPPORT;
 
 	return 0;
 }
@@ -543,30 +546,6 @@  bnxt_ulp_destroy_vfr_default_rules(struct bnxt *bp, bool global)
 	}
 }
 
-static int
-ulp_cust_vxlan_alloc(struct bnxt *bp)
-{
-	int rc = 0;
-
-	if (ULP_APP_CUST_VXLAN_SUPPORT(bp->ulp_ctx)) {
-		rc = bnxt_tunnel_dst_port_alloc(bp,
-						bp->ulp_ctx->cfg_data->vxlan_port,
-					HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN);
-		if (rc)
-			BNXT_DRV_DBG(ERR, "Failed to set global vxlan port\n");
-	}
-
-	if (ULP_APP_CUST_VXLAN_IP_SUPPORT(bp->ulp_ctx)) {
-		rc = bnxt_tunnel_dst_port_alloc(bp,
-						bp->ulp_ctx->cfg_data->vxlan_ip_port,
-					HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN_V4);
-		if (rc)
-			BNXT_DRV_DBG(ERR, "Failed to set global custom vxlan_ip port\n");
-	}
-
-	return rc;
-}
-
 static int
 ulp_l2_etype_tunnel_alloc(struct bnxt *bp)
 {
@@ -759,10 +738,6 @@  bnxt_ulp_port_init(struct bnxt *bp)
 		}
 	}
 
-	rc = ulp_cust_vxlan_alloc(bp); /* BAUCOM: Is this safe and generic? */
-	if (rc)
-		goto jump_to_error;
-
 	rc = ulp_l2_etype_tunnel_alloc(bp);
 	if (rc)
 		goto jump_to_error;
@@ -774,28 +749,6 @@  bnxt_ulp_port_init(struct bnxt *bp)
 	return rc;
 }
 
-static void
-ulp_cust_vxlan_free(struct bnxt *bp)
-{
-	int rc;
-
-	if (ULP_APP_CUST_VXLAN_SUPPORT(bp->ulp_ctx)) {
-		rc = bnxt_tunnel_dst_port_free(bp,
-					       bp->ulp_ctx->cfg_data->vxlan_port,
-				     HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN);
-		if (rc)
-			BNXT_DRV_DBG(ERR, "Failed to clear global vxlan port\n");
-	}
-
-	if (ULP_APP_CUST_VXLAN_IP_SUPPORT(bp->ulp_ctx)) {
-		rc = bnxt_tunnel_dst_port_free(bp,
-					       bp->ulp_ctx->cfg_data->vxlan_ip_port,
-				     HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN_V4);
-		if (rc)
-			BNXT_DRV_DBG(ERR, "Failed to clear global custom vxlan port\n");
-	}
-}
-
 static void
 ulp_l2_etype_tunnel_free(struct bnxt *bp)
 {
@@ -869,7 +822,6 @@  bnxt_ulp_port_deinit(struct bnxt *bp)
 	if (bp->ulp_ctx->cfg_data && bp->ulp_ctx->cfg_data->ref_cnt) {
 		bp->ulp_ctx->cfg_data->ref_cnt--;
 		/* Free tunnels for each port */
-		ulp_cust_vxlan_free(bp);
 		ulp_l2_etype_tunnel_free(bp);
 		if (bp->ulp_ctx->cfg_data->ref_cnt) {
 			/* Free the ulp context in the context entry list */
@@ -1503,9 +1455,10 @@  bnxt_ulp_cntxt_entry_acquire(void *arg)
 
 	/* take a lock and get the first ulp context available */
 	if (rte_spinlock_trylock(&bnxt_ulp_ctxt_lock)) {
-		TAILQ_FOREACH(entry, &ulp_cntx_list, next)
+		TAILQ_FOREACH(entry, &ulp_cntx_list, next) {
 			if (entry->ulp_ctx->cfg_data == arg)
 				return entry->ulp_ctx;
+		}
 		rte_spinlock_unlock(&bnxt_ulp_ctxt_lock);
 	}
 	return NULL;
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.h b/drivers/net/bnxt/tf_ulp/bnxt_ulp.h
index 148828e1ab..d62a9df5f0 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.h
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.h
@@ -37,12 +37,14 @@ 
 #define BNXT_ULP_APP_SOCKET_DIRECT	0x20
 #define BNXT_ULP_APP_TOS_PROTO_SUPPORT	0x40
 #define BNXT_ULP_APP_BC_MC_SUPPORT	0x80
-#define BNXT_ULP_CUST_VXLAN_SUPPORT	0x100
+#define BNXT_ULP_STATIC_VXLAN_SUPPORT	0x100
 #define BNXT_ULP_MULTI_SHARED_SUPPORT	0x200
 #define BNXT_ULP_APP_HA_DYNAMIC		0x400
 #define BNXT_ULP_APP_SRV6               0x800
 #define BNXT_ULP_APP_L2_ETYPE		0x1000
 #define BNXT_ULP_SHARED_TBL_SCOPE_ENABLED 0x2000
+#define BNXT_ULP_DYNAMIC_VXLAN_PORT	0x4000
+#define BNXT_ULP_DYNAMIC_GENEVE_PORT	0x8000
 
 #define ULP_VF_REP_IS_ENABLED(flag)	((flag) & BNXT_ULP_VF_REP_ENABLED)
 #define ULP_SHARED_SESSION_IS_ENABLED(flag) ((flag) &\
@@ -60,15 +62,15 @@ 
 #define ULP_APP_HA_IS_DYNAMIC(ctx)	((ctx)->cfg_data->ulp_flags &\
 					BNXT_ULP_APP_HA_DYNAMIC)
 
-#define ULP_APP_CUST_VXLAN_EN(ctx)	((ctx)->cfg_data->ulp_flags &\
-					BNXT_ULP_CUST_VXLAN_SUPPORT)
-#define ULP_APP_VXLAN_GPE_SUPPORT(ctx)     ((ctx)->cfg_data->vxlan_gpe_port != 0)
 #define ULP_APP_L2_ETYPE_SUPPORT(ctx)	((ctx)->cfg_data->ulp_flags &\
 					BNXT_ULP_APP_L2_ETYPE)
-#define ULP_APP_CUST_VXLAN_SUPPORT(ctx)	\
-	((ctx) && (ctx)->cfg_data && (ctx)->cfg_data->vxlan_port != 0)
-#define ULP_APP_CUST_VXLAN_IP_SUPPORT(ctx)\
-	((ctx) && (ctx)->cfg_data && (ctx)->cfg_data->vxlan_ip_port != 0)
+
+#define ULP_APP_STATIC_VXLAN_PORT_EN(ctx)	((ctx)->cfg_data->ulp_flags &\
+					BNXT_ULP_STATIC_VXLAN_SUPPORT)
+#define ULP_APP_DYNAMIC_VXLAN_PORT_EN(ctx)	((ctx)->cfg_data->ulp_flags &\
+					BNXT_ULP_DYNAMIC_VXLAN_PORT)
+#define ULP_APP_DYNAMIC_GENEVE_PORT_EN(ctx)	((ctx)->cfg_data->ulp_flags &\
+					BNXT_ULP_DYNAMIC_GENEVE_PORT)
 
 enum bnxt_ulp_flow_mem_type {
 	BNXT_ULP_FLOW_MEM_TYPE_INT = 0,
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
index 384f3f64ed..eb8ecdbace 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
@@ -446,10 +446,6 @@  ulp_tf_cntxt_app_caps_init(struct bnxt *bp,
 			ulp_ctx->cfg_data->ulp_flags |=
 				BNXT_ULP_APP_L2_ETYPE;
 
-		if (info[i].flags & BNXT_ULP_APP_CAP_CUST_VXLAN)
-			ulp_ctx->cfg_data->ulp_flags |=
-			    BNXT_ULP_CUST_VXLAN_SUPPORT;
-
 		bnxt_ulp_cntxt_vxlan_ip_port_set(ulp_ctx, info[i].vxlan_ip_port);
 		bnxt_ulp_cntxt_vxlan_port_set(ulp_ctx, info[i].vxlan_port);
 		bnxt_ulp_cntxt_ecpri_udp_port_set(ulp_ctx, info[i].ecpri_udp_port);
@@ -1052,13 +1048,6 @@  ulp_tf_ctx_init(struct bnxt *bp,
 	/* Initialize the context entries list */
 	bnxt_ulp_cntxt_list_init();
 
-	/* Add the context to the context entries list */
-	rc = bnxt_ulp_cntxt_list_add(bp->ulp_ctx);
-	if (rc) {
-		BNXT_DRV_DBG(ERR, "Failed to add the context list entry\n");
-		return -ENOMEM;
-	}
-
 	/* Allocate memory to hold ulp context data. */
 	ulp_data = rte_zmalloc("bnxt_ulp_data",
 			       sizeof(struct bnxt_ulp_data), 0);
@@ -1073,6 +1062,13 @@  ulp_tf_ctx_init(struct bnxt *bp,
 	ulp_data->ref_cnt++;
 	ulp_data->ulp_flags |= BNXT_ULP_VF_REP_ENABLED;
 
+	/* Add the context to the context entries list */
+	rc = bnxt_ulp_cntxt_list_add(bp->ulp_ctx);
+	if (rc) {
+		BNXT_DRV_DBG(ERR, "Failed to add the context list entry\n");
+		goto error_deinit;
+	}
+
 	rc = bnxt_ulp_devid_get(bp, &devid);
 	if (rc) {
 		BNXT_DRV_DBG(ERR, "Unable to determine device for ULP init.\n");
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
index 3e934c861a..2011ab6599 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
@@ -614,13 +614,6 @@  ulp_tfc_ctx_init(struct bnxt *bp,
 	/* Initialize the context entries list */
 	bnxt_ulp_cntxt_list_init();
 
-	/* Add the context to the context entries list */
-	rc = bnxt_ulp_cntxt_list_add(bp->ulp_ctx);
-	if (rc) {
-		BNXT_DRV_DBG(ERR, "Failed to add the context list entry\n");
-		return -ENOMEM;
-	}
-
 	/* Allocate memory to hold ulp context data. */
 	ulp_data = rte_zmalloc("bnxt_ulp_data",
 			       sizeof(struct bnxt_ulp_data), 0);
@@ -635,6 +628,13 @@  ulp_tfc_ctx_init(struct bnxt *bp,
 	ulp_data->ref_cnt++;
 	ulp_data->ulp_flags |= BNXT_ULP_VF_REP_ENABLED;
 
+	/* Add the context to the context entries list */
+	rc = bnxt_ulp_cntxt_list_add(bp->ulp_ctx);
+	if (rc) {
+		BNXT_DRV_DBG(ERR, "Failed to add the context list entry\n");
+		goto error_deinit;
+	}
+
 	rc = bnxt_ulp_devid_get(bp, &devid);
 	if (rc) {
 		BNXT_DRV_DBG(ERR, "Unable to determine device for ULP init.\n");
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 3294ced9c3..a14c4c2e6f 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
@@ -1196,21 +1196,17 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		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_ING },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB01A170000000000,
+	.field_opt_bitmap = 0xB01A100000000000,
 	.field_exclude_bitmap = 0x2000000000000000,
 	.class_tid = 1,
 	.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,
@@ -1236,21 +1232,17 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		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_ING },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00685C000000000,
+	.field_opt_bitmap = 0xB006840000000000,
 	.field_exclude_bitmap = 0x2000000000000000,
 	.class_tid = 1,
 	.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,
@@ -1279,10 +1271,9 @@  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_FLOW_DIR_BITMASK_ING },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB01A170B00000000,
+	.field_opt_bitmap = 0xB01A170000000000,
 	.field_exclude_bitmap = 0x2000000000000000,
 	.class_tid = 1,
 	.flow_pattern_id = 1,
@@ -1295,21 +1286,13 @@  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,
 		[102] = 14,
 		[104] = 15,
@@ -1328,10 +1311,9 @@  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_FLOW_DIR_BITMASK_ING },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00685C2C0000000,
+	.field_opt_bitmap = 0xB00685C000000000,
 	.field_exclude_bitmap = 0x2000000000000000,
 	.class_tid = 1,
 	.flow_pattern_id = 1,
@@ -1353,14 +1335,6 @@  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,
 		[100] = 15,
 		[102] = 16,
 		[104] = 17,
@@ -1378,11 +1352,199 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A105800000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[42] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB006841600000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[43] = {
+	.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_ING },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB01A1702C0000000,
+	.field_opt_bitmap = 0xB01A101600000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[44] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB006840580000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[45] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A170B00000000,
 	.field_exclude_bitmap = 0x2000000000000000,
 	.class_tid = 1,
 	.flow_pattern_id = 1,
@@ -1394,24 +1556,22 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[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,
+		[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,
@@ -1422,7 +1582,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[42] = {
+	[46] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -1430,10 +1590,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_IPV4 |
+		BNXT_ULP_HDR_BIT_I_IPV6 |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00685C0B0000000,
+	.field_opt_bitmap = 0xB00685C2C0000000,
 	.field_exclude_bitmap = 0x2000000000000000,
 	.class_tid = 1,
 	.flow_pattern_id = 1,
@@ -1446,25 +1606,727 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[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,
+		[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,
+		},
+	},
+	[47] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A1702C0000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[48] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB00685C0B0000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[49] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A160000000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[50] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB006858000000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[51] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A160000000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[52] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB006858000000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[53] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A17C000000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		[83] = 24,
+		[85] = 25,
+		[87] = 26,
+		[89] = 27,
+		[91] = 28,
+		[93] = 29,
+		[95] = 30,
+		[97] = 31,
+		[99] = 32,
+		[100] = 13,
+		[102] = 14,
+		[104] = 15,
+		[106] = 16,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[54] = {
+	.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_FLOW_DIR_BITMASK_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB00685F000000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		[83] = 26,
+		[85] = 27,
+		[87] = 28,
+		[89] = 29,
+		[91] = 30,
+		[93] = 31,
+		[95] = 32,
+		[97] = 33,
+		[99] = 34,
+		[100] = 15,
+		[102] = 16,
+		[104] = 17,
+		[106] = 18,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[55] = {
+	.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_UDP |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A17C000000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		[101] = 24,
+		[102] = 14,
+		[103] = 25,
+		[104] = 15,
+		[105] = 26,
+		[106] = 16,
+		[107] = 27,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[56] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB00685F000000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		},
+	},
+	[57] = {
+	.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_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A105E00000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		[106] = 16,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[58] = {
+	.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_HDR_BIT_I_TCP |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB006841780000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		[83] = 31,
+		[85] = 32,
+		[87] = 33,
+		[89] = 34,
+		[91] = 35,
+		[93] = 36,
+		[95] = 37,
+		[97] = 38,
+		[99] = 39,
+		[100] = 15,
+		[102] = 16,
+		[104] = 17,
+		[106] = 18,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[59] = {
+	.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_HDR_BIT_I_TCP |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A101780000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		[83] = 31,
+		[85] = 32,
+		[87] = 33,
+		[89] = 34,
+		[91] = 35,
+		[93] = 36,
+		[95] = 37,
+		[97] = 38,
+		[99] = 39,
+		[100] = 13,
+		[102] = 14,
+		[104] = 15,
+		[106] = 16,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[60] = {
+	.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_HDR_BIT_I_TCP |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB0068405E0000000,
+	.field_exclude_bitmap = 0x2000000000000000,
+	.class_tid = 1,
+	.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,
+		[83] = 33,
+		[85] = 34,
+		[87] = 35,
+		[89] = 36,
+		[91] = 37,
+		[93] = 38,
+		[95] = 39,
+		[97] = 40,
+		[99] = 41,
 		[100] = 15,
 		[102] = 16,
 		[104] = 17,
@@ -1475,79 +2337,76 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[43] = {
+	[61] = {
 	.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_ING },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB01A17C000000000,
+	.field_opt_bitmap = 0xB01A105E00000000,
 	.field_exclude_bitmap = 0x2000000000000000,
 	.class_tid = 1,
 	.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,
 		},
 	},
-	[44] = {
+	[62] = {
 	.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_ING },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00685F000000000,
+	.field_opt_bitmap = 0xB006841780000000,
 	.field_exclude_bitmap = 0x2000000000000000,
 	.class_tid = 1,
 	.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,
@@ -1558,48 +2417,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,
 		},
 	},
-	[45] = {
+	[63] = {
 	.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_ING },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB01A17C000000000,
+	.field_opt_bitmap = 0xB01A101780000000,
 	.field_exclude_bitmap = 0x2000000000000000,
 	.class_tid = 1,
 	.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,
@@ -1609,67 +2478,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,
 		},
 	},
-	[46] = {
+	[64] = {
 	.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_ING },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00685F000000000,
+	.field_opt_bitmap = 0xB0068405E0000000,
 	.field_exclude_bitmap = 0x2000000000000000,
 	.class_tid = 1,
 	.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,
 		},
 	},
-	[47] = {
+	[65] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -1728,7 +2604,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[48] = {
+	[66] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -1789,7 +2665,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[49] = {
+	[67] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -1850,7 +2726,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[50] = {
+	[68] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -1913,7 +2789,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[51] = {
+	[69] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -1967,7 +2843,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[52] = {
+	[70] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -2023,7 +2899,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[53] = {
+	[71] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -2079,7 +2955,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[54] = {
+	[72] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -2137,7 +3013,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[55] = {
+	[73] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F1 |
@@ -2174,7 +3050,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[56] = {
+	[74] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F1 |
@@ -2213,7 +3089,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[57] = {
+	[75] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2259,7 +3135,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 17,
 		},
 	},
-	[58] = {
+	[76] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2307,7 +3183,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 19,
 		},
 	},
-	[59] = {
+	[77] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2355,7 +3231,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 17,
 		},
 	},
-	[60] = {
+	[78] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2405,7 +3281,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 19,
 		},
 	},
-	[61] = {
+	[79] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2461,7 +3337,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 17,
 		},
 	},
-	[62] = {
+	[80] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2519,7 +3395,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 19,
 		},
 	},
-	[63] = {
+	[81] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2577,7 +3453,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 17,
 		},
 	},
-	[64] = {
+	[82] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2637,7 +3513,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 19,
 		},
 	},
-	[65] = {
+	[83] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2688,7 +3564,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 17,
 		},
 	},
-	[66] = {
+	[84] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2741,7 +3617,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 19,
 		},
 	},
-	[67] = {
+	[85] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2794,7 +3670,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 17,
 		},
 	},
-	[68] = {
+	[86] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2849,7 +3725,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 19,
 		},
 	},
-	[69] = {
+	[87] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2903,7 +3779,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 17,
 		},
 	},
-	[70] = {
+	[88] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_F2 |
@@ -2959,7 +3835,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 19,
 		},
 	},
-	[71] = {
+	[89] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -2993,7 +3869,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[106] = 18,
 		},
 	},
-	[72] = {
+	[90] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3010,7 +3886,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[10] = 4,
 		},
 	},
-	[73] = {
+	[91] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3031,7 +3907,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[116] = 7,
 		},
 	},
-	[74] = {
+	[92] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3052,7 +3928,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 7,
 		},
 	},
-	[75] = {
+	[93] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3077,7 +3953,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 10,
 		},
 	},
-	[76] = {
+	[94] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3103,7 +3979,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[66] = 12,
 		},
 	},
-	[77] = {
+	[95] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3131,7 +4007,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[50] = 14,
 		},
 	},
-	[78] = {
+	[96] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3161,7 +4037,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[116] = 7,
 		},
 	},
-	[79] = {
+	[97] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3193,7 +4069,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[116] = 7,
 		},
 	},
-	[80] = {
+	[98] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3223,7 +4099,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 7,
 		},
 	},
-	[81] = {
+	[99] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3255,7 +4131,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 7,
 		},
 	},
-	[82] = {
+	[100] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3289,7 +4165,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 10,
 		},
 	},
-	[83] = {
+	[101] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3325,7 +4201,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 10,
 		},
 	},
-	[84] = {
+	[102] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3352,7 +4228,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[98] = 13,
 		},
 	},
-	[85] = {
+	[103] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3374,7 +4250,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[106] = 8,
 		},
 	},
-	[86] = {
+	[104] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3405,7 +4281,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[116] = 7,
 		},
 	},
-	[87] = {
+	[105] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3431,7 +4307,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[116] = 7,
 		},
 	},
-	[88] = {
+	[106] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3462,7 +4338,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 7,
 		},
 	},
-	[89] = {
+	[107] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3488,7 +4364,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 7,
 		},
 	},
-	[90] = {
+	[108] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3523,7 +4399,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 10,
 		},
 	},
-	[91] = {
+	[109] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3553,7 +4429,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 10,
 		},
 	},
-	[92] = {
+	[110] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3589,7 +4465,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[98] = 21,
 		},
 	},
-	[93] = {
+	[111] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3627,7 +4503,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[98] = 23,
 		},
 	},
-	[94] = {
+	[112] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3658,7 +4534,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[106] = 16,
 		},
 	},
-	[95] = {
+	[113] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3691,7 +4567,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[106] = 18,
 		},
 	},
-	[96] = {
+	[114] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3731,7 +4607,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[116] = 7,
 		},
 	},
-	[97] = {
+	[115] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3773,7 +4649,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[116] = 7,
 		},
 	},
-	[98] = {
+	[116] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3808,7 +4684,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[116] = 7,
 		},
 	},
-	[99] = {
+	[117] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3845,7 +4721,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[116] = 7,
 		},
 	},
-	[100] = {
+	[118] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3885,7 +4761,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 7,
 		},
 	},
-	[101] = {
+	[119] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3927,7 +4803,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 7,
 		},
 	},
-	[102] = {
+	[120] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3962,7 +4838,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 7,
 		},
 	},
-	[103] = {
+	[121] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -3999,7 +4875,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 7,
 		},
 	},
-	[104] = {
+	[122] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4043,7 +4919,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 10,
 		},
 	},
-	[105] = {
+	[123] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4089,7 +4965,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 10,
 		},
 	},
-	[106] = {
+	[124] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4128,7 +5004,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 10,
 		},
 	},
-	[107] = {
+	[125] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4169,7 +5045,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[117] = 10,
 		},
 	},
-	[108] = {
+	[126] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4209,7 +5085,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[109] = {
+	[127] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4251,7 +5127,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[110] = {
+	[128] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4300,7 +5176,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[111] = {
+	[129] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4351,7 +5227,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[112] = {
+	[130] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4402,7 +5278,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[113] = {
+	[131] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4455,7 +5331,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[114] = {
+	[132] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4505,7 +5381,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[115] = {
+	[133] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4557,7 +5433,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[116] = {
+	[134] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4602,7 +5478,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[117] = {
+	[135] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4649,7 +5525,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[118] = {
+	[136] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4708,7 +5584,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[119] = {
+	[137] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4769,7 +5645,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[120] = {
+	[138] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4830,7 +5706,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[121] = {
+	[139] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4893,7 +5769,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[122] = {
+	[140] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -4947,7 +5823,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[123] = {
+	[141] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5003,7 +5879,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[124] = {
+	[142] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5059,7 +5935,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[125] = {
+	[143] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5117,7 +5993,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[126] = {
+	[144] = {
 	.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 6ea371b051..ee1d861dd1 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h
@@ -6,12 +6,12 @@ 
 #ifndef ULP_TEMPLATE_DB_H_
 #define ULP_TEMPLATE_DB_H_
 
-#define BNXT_ULP_REGFILE_MAX_SZ 84
+#define BNXT_ULP_REGFILE_MAX_SZ 99
 #define BNXT_ULP_MAX_NUM_DEVICES 5
 #define BNXT_ULP_LOG2_MAX_NUM_DEV 2.32192809488736
-#define BNXT_ULP_GEN_TBL_MAX_SZ 54
+#define BNXT_ULP_GEN_TBL_MAX_SZ 56
 #define BNXT_ULP_ALLOCATOR_TBL_MAX_SZ 2
-#define BNXT_ULP_CLASS_MATCH_LIST_MAX_SZ 127
+#define BNXT_ULP_CLASS_MATCH_LIST_MAX_SZ 145
 #define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 19
 #define BNXT_ULP_APP_RESOURCE_RESV_LIST_MAX_SZ 0
 #define BNXT_ULP_GLB_RESOURCE_TBL_MAX_SZ 57
@@ -32,16 +32,16 @@ 
 #define ULP_WH_PLUS_CLASS_COND_LIST_SIZE 50
 #define ULP_WH_PLUS_CLASS_COND_OPER_LIST_SIZE 0
 #define ULP_THOR_CLASS_TMPL_LIST_SIZE 5
-#define ULP_THOR_CLASS_TBL_LIST_SIZE 136
-#define ULP_THOR_CLASS_KEY_INFO_LIST_SIZE 673
-#define ULP_THOR_CLASS_KEY_EXT_LIST_SIZE 615
-#define ULP_THOR_CLASS_IDENT_LIST_SIZE 47
-#define ULP_THOR_CLASS_RESULT_FIELD_LIST_SIZE 1265
-#define ULP_THOR_CLASS_COND_LIST_SIZE 3093
-#define ULP_THOR_CLASS_COND_OPER_LIST_SIZE 7
+#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_RESULT_FIELD_LIST_SIZE 1280
+#define ULP_THOR_CLASS_COND_LIST_SIZE 3828
+#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
-#define ULP_THOR2_CLASS_KEY_INFO_LIST_SIZE 665
+#define ULP_THOR2_CLASS_KEY_INFO_LIST_SIZE 669
 #define ULP_THOR2_CLASS_KEY_EXT_LIST_SIZE 628
 #define ULP_THOR2_CLASS_IDENT_LIST_SIZE 53
 #define ULP_THOR2_CLASS_RESULT_FIELD_LIST_SIZE 1516
@@ -64,12 +64,12 @@ 
 #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 88
-#define ULP_THOR2_ACT_KEY_INFO_LIST_SIZE 55
+#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 9
-#define ULP_THOR2_ACT_RESULT_FIELD_LIST_SIZE 540
-#define ULP_THOR2_ACT_COND_LIST_SIZE 70
+#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_THOR2_ACT_COND_OPER_LIST_SIZE 0
 
 enum bnxt_ulp_act_bit {
@@ -129,7 +129,11 @@  enum bnxt_ulp_cf_bit {
 	BNXT_ULP_CF_BIT_DIX_TRAFFIC          = 0x0000000000000080,
 	BNXT_ULP_CF_BIT_GROUP_ID             = 0x0000000000000100,
 	BNXT_ULP_CF_BIT_DEF_PRIO             = 0x0000000000000200,
-	BNXT_ULP_CF_BIT_LAST                 = 0x0000000000000400
+	BNXT_ULP_CF_BIT_STATIC_VXLAN_PORT    = 0x0000000000000400,
+	BNXT_ULP_CF_BIT_STATIC_VXLAN_IP_PORT = 0x0000000000000800,
+	BNXT_ULP_CF_BIT_DYNAMIC_VXLAN_PORT   = 0x0000000000001000,
+	BNXT_ULP_CF_BIT_DYNAMIC_GENEVE_PORT  = 0x0000000000002000,
+	BNXT_ULP_CF_BIT_LAST                 = 0x0000000000004000
 };
 
 enum bnxt_ulp_dev_ft {
@@ -309,7 +313,9 @@  enum bnxt_ulp_cf_idx {
 	BNXT_ULP_CF_IDX_HDR_BITMAP = 104,
 	BNXT_ULP_CF_IDX_PROFILE_BITMAP = 105,
 	BNXT_ULP_CF_IDX_GROUP_ID = 106,
-	BNXT_ULP_CF_IDX_LAST = 107
+	BNXT_ULP_CF_IDX_TUNNEL_PORT = 107,
+	BNXT_ULP_CF_IDX_OUTER_EM_ONLY = 108,
+	BNXT_ULP_CF_IDX_LAST = 109
 };
 
 enum bnxt_ulp_cond_list_opc {
@@ -498,7 +504,8 @@  enum bnxt_ulp_field_src {
 	BNXT_ULP_FIELD_SRC_LIST_AND = 18,
 	BNXT_ULP_FIELD_SRC_LIST_OR = 19,
 	BNXT_ULP_FIELD_SRC_NEXT = 20,
-	BNXT_ULP_FIELD_SRC_LAST = 21
+	BNXT_ULP_FIELD_SRC_CF_BIT = 21,
+	BNXT_ULP_FIELD_SRC_LAST = 22
 };
 
 enum bnxt_ulp_func_opc {
@@ -856,7 +863,22 @@  enum bnxt_ulp_rf_idx {
 	BNXT_ULP_RF_IDX_EM_RECIPE_ID = 81,
 	BNXT_ULP_RF_IDX_JUMP_META_IDX = 82,
 	BNXT_ULP_RF_IDX_JUMP_META = 83,
-	BNXT_ULP_RF_IDX_LAST = 84
+	BNXT_ULP_RF_IDX_TUNNEL_PORT = 84,
+	BNXT_ULP_RF_IDX_CF_0 = 85,
+	BNXT_ULP_RF_IDX_PM_0 = 86,
+	BNXT_ULP_RF_IDX_RFC2698_0 = 87,
+	BNXT_ULP_RF_IDX_CBSM_0 = 88,
+	BNXT_ULP_RF_IDX_EBSM_0 = 89,
+	BNXT_ULP_RF_IDX_CBND_0 = 90,
+	BNXT_ULP_RF_IDX_EBND_0 = 91,
+	BNXT_ULP_RF_IDX_CBS_0 = 92,
+	BNXT_ULP_RF_IDX_EBS_0 = 93,
+	BNXT_ULP_RF_IDX_CIR_0 = 94,
+	BNXT_ULP_RF_IDX_EIR_0 = 95,
+	BNXT_ULP_RF_IDX_OUTER_LOOP = 96,
+	BNXT_ULP_RF_IDX_INNER_LOOP = 97,
+	BNXT_ULP_RF_IDX_OUTER_ADD = 98,
+	BNXT_ULP_RF_IDX_LAST = 99
 };
 
 enum bnxt_ulp_tcam_tbl_opc {
@@ -901,7 +923,8 @@  enum bnxt_ulp_fdb_resource_flags {
 
 enum bnxt_ulp_feature_bit {
 	BNXT_ULP_FEATURE_BIT_PARENT_DMAC = 0x00000001,
-	BNXT_ULP_FEATURE_BIT_PORT_DMAC = 0x00000002
+	BNXT_ULP_FEATURE_BIT_PORT_DMAC = 0x00000002,
+	BNXT_ULP_FEATURE_BIT_MULTI_TUNNEL_FLOW = 0x00000004
 };
 
 enum bnxt_ulp_flow_dir_bitmask {
@@ -951,19 +974,20 @@  enum bnxt_ulp_resource_sub_type {
 	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_OUTER_TUNNEL_CACHE = 11,
 	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_METER_TBL_CACHE = 12,
 	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_METER_PROFILE_TBL_CACHE = 13,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GLOBAL_REGISTER_TBL = 14,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_CHAIN_ID_CACHE = 15,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_ENCAP_REC_CACHE = 16,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SRV6_ENCAP_REC_CACHE = 17,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_RSS_PARAMS = 18,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TABLE_SCOPE_CACHE = 19,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GENEVE_ENCAP_REC_CACHE = 20,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROTO_HEADER = 21,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_EM_FLOW_CONFLICT = 22,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_HDR_OVERLAP = 23,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_SHARED_MIRROR = 24,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_CACHE = 25,
-	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_L2_CNTXT = 26,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_CHAIN_ID_CACHE = 14,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_ENCAP_REC_CACHE = 15,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SRV6_ENCAP_REC_CACHE = 16,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_RSS_PARAMS = 17,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TABLE_SCOPE_CACHE = 18,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GENEVE_ENCAP_REC_CACHE = 19,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROTO_HEADER = 20,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_EM_FLOW_CONFLICT = 21,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_HDR_OVERLAP = 22,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_SHARED_MIRROR = 23,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_CACHE = 24,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_L2_CNTXT = 25,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_CACHE = 26,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE = 27,
 	BNXT_ULP_RESOURCE_SUB_TYPE_ALLOCATOR_TABLE_JUMP_INDEX = 0,
 	BNXT_ULP_RESOURCE_SUB_TYPE_VNIC_TABLE_RSS = 0,
 	BNXT_ULP_RESOURCE_SUB_TYPE_VNIC_TABLE_QUEUE = 1,
@@ -971,6 +995,8 @@  enum bnxt_ulp_resource_sub_type {
 	BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_ECPRI = 1,
 	BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN_GPE = 2,
 	BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN_GPE_V6 = 3,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN_IP = 4,
+	BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_GENEVE = 5,
 	BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT = 4,
 	BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_LKUP = 5,
 	BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_STAT_64 = 6,
@@ -1061,6 +1087,17 @@  enum bnxt_ulp_act_prop_sz {
 	BNXT_ULP_ACT_PROP_SZ_METER_INST_ECN_RMP_EN = 1,
 	BNXT_ULP_ACT_PROP_SZ_METER_INST_MTR_VAL_UPDATE = 1,
 	BNXT_ULP_ACT_PROP_SZ_METER_INST_MTR_VAL = 1,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_CIR = 3,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_EIR = 3,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_CBS = 2,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_EBS = 2,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_RFC2698 = 1,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_PM = 1,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_EBND = 1,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_CBND = 1,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_EBSM = 1,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_CBSM = 1,
+	BNXT_ULP_ACT_PROP_SZ_METER_INST_CF = 1,
 	BNXT_ULP_ACT_PROP_SZ_GOTO_CHAINID = 2,
 	BNXT_ULP_ACT_PROP_SZ_SET_TTL = 1,
 	BNXT_ULP_ACT_PROP_SZ_LAST = 4
@@ -1135,9 +1172,20 @@  enum bnxt_ulp_act_prop_idx {
 	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN = 385,
 	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL_UPDATE = 386,
 	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL = 387,
-	BNXT_ULP_ACT_PROP_IDX_GOTO_CHAINID = 388,
-	BNXT_ULP_ACT_PROP_IDX_SET_TTL = 390,
-	BNXT_ULP_ACT_PROP_IDX_LAST = 391
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_CIR = 388,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_EIR = 391,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_CBS = 394,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_EBS = 396,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_RFC2698 = 398,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_PM = 399,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_EBND = 400,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_CBND = 401,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_EBSM = 402,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_CBSM = 403,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_CF = 404,
+	BNXT_ULP_ACT_PROP_IDX_GOTO_CHAINID = 405,
+	BNXT_ULP_ACT_PROP_IDX_SET_TTL = 407,
+	BNXT_ULP_ACT_PROP_IDX_LAST = 408
 };
 
 enum ulp_wp_sym {
@@ -1431,7 +1479,13 @@  enum ulp_wp_sym {
 	ULP_WP_SYM_CHAIN_META_TYPE = 0,
 	ULP_WP_SYM_L2_ECPRI_ETYPE = 0,
 	ULP_WP_SYM_L4_ECPRI_ETYPE = 0,
-	ULP_WP_SYM_L2_ROE_ETYPE = 0
+	ULP_WP_SYM_L2_ROE_ETYPE = 0,
+	ULP_WP_SYM_DPORT_TUN_TYPE_VXLAN = 1,
+	ULP_WP_SYM_DPORT_TUN_TYPE_GENEVE = 2,
+	ULP_WP_SYM_DPORT_TUN_TYPE_VXLAN_GPE = 3,
+	ULP_WP_SYM_DPORT_TUN_TYPE_ECPRI = 4,
+	ULP_WP_SYM_DPORT_TUN_TYPE_SRV6 = 5,
+	ULP_WP_SYM_DPORT_TUN_TYPE_VXLAN_IPV4 = 6
 };
 
 enum ulp_thor_sym {
@@ -1725,7 +1779,13 @@  enum ulp_thor_sym {
 	ULP_THOR_SYM_CHAIN_META_TYPE = 3,
 	ULP_THOR_SYM_L2_ECPRI_ETYPE = 44798,
 	ULP_THOR_SYM_L4_ECPRI_ETYPE = 2048,
-	ULP_THOR_SYM_L2_ROE_ETYPE = 64573
+	ULP_THOR_SYM_L2_ROE_ETYPE = 64573,
+	ULP_THOR_SYM_DPORT_TUN_TYPE_VXLAN = 1,
+	ULP_THOR_SYM_DPORT_TUN_TYPE_GENEVE = 2,
+	ULP_THOR_SYM_DPORT_TUN_TYPE_VXLAN_GPE = 3,
+	ULP_THOR_SYM_DPORT_TUN_TYPE_ECPRI = 4,
+	ULP_THOR_SYM_DPORT_TUN_TYPE_SRV6 = 5,
+	ULP_THOR_SYM_DPORT_TUN_TYPE_VXLAN_IPV4 = 6
 };
 
 enum ulp_thor2_sym {
@@ -2019,7 +2079,13 @@  enum ulp_thor2_sym {
 	ULP_THOR2_SYM_CHAIN_META_TYPE = 3,
 	ULP_THOR2_SYM_L2_ECPRI_ETYPE = 44798,
 	ULP_THOR2_SYM_L4_ECPRI_ETYPE = 2048,
-	ULP_THOR2_SYM_L2_ROE_ETYPE = 64573
+	ULP_THOR2_SYM_L2_ROE_ETYPE = 64573,
+	ULP_THOR2_SYM_DPORT_TUN_TYPE_VXLAN = 1,
+	ULP_THOR2_SYM_DPORT_TUN_TYPE_GENEVE = 2,
+	ULP_THOR2_SYM_DPORT_TUN_TYPE_VXLAN_GPE = 3,
+	ULP_THOR2_SYM_DPORT_TUN_TYPE_ECPRI = 4,
+	ULP_THOR2_SYM_DPORT_TUN_TYPE_SRV6 = 5,
+	ULP_THOR2_SYM_DPORT_TUN_TYPE_VXLAN_IPV4 = 6
 };
 
 enum bnxt_ulp_df_tpl {
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 4599485c8c..daf649ab29 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
@@ -345,30 +345,6 @@  const struct bnxt_ulp_generic_tbl_params ulp_wh_plus_generic_tbl_params[] = {
 	.hash_tbl_entries = 0,
 	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
 	},
-	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GLOBAL_REGISTER_TBL << 1 |
-		BNXT_ULP_DIRECTION_INGRESS] = {
-	.name = "INGRESS GENERIC_TABLE_GLOBAL_REGISTER_TBL",
-	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
-	.result_num_entries = 0,
-	.result_num_bytes = 0,
-	.key_num_bytes = 0,
-	.partial_key_num_bytes = 0,
-	.num_buckets = 0,
-	.hash_tbl_entries = 0,
-	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
-	},
-	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GLOBAL_REGISTER_TBL << 1 |
-		BNXT_ULP_DIRECTION_EGRESS] = {
-	.name = "EGRESS GENERIC_TABLE_GLOBAL_REGISTER_TBL",
-	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
-	.result_num_entries = 0,
-	.result_num_bytes = 0,
-	.key_num_bytes = 0,
-	.partial_key_num_bytes = 0,
-	.num_buckets = 0,
-	.hash_tbl_entries = 0,
-	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
-	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_CHAIN_ID_CACHE << 1 |
 		BNXT_ULP_DIRECTION_INGRESS] = {
 	.name = "INGRESS GENERIC_TABLE_CHAIN_ID_CACHE",
@@ -656,6 +632,54 @@  const struct bnxt_ulp_generic_tbl_params ulp_wh_plus_generic_tbl_params[] = {
 	.num_buckets = 0,
 	.hash_tbl_entries = 0,
 	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_CACHE << 1 |
+		BNXT_ULP_DIRECTION_INGRESS] = {
+	.name = "INGRESS GENERIC_TABLE_TUNNEL_GPARSE_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 0,
+	.result_num_bytes = 0,
+	.key_num_bytes = 0,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 0,
+	.hash_tbl_entries = 0,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_CACHE << 1 |
+		BNXT_ULP_DIRECTION_EGRESS] = {
+	.name = "EGRESS GENERIC_TABLE_TUNNEL_GPARSE_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 0,
+	.result_num_bytes = 0,
+	.key_num_bytes = 0,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 0,
+	.hash_tbl_entries = 0,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE << 1 |
+		BNXT_ULP_DIRECTION_INGRESS] = {
+	.name = "INGRESS GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 0,
+	.result_num_bytes = 0,
+	.key_num_bytes = 0,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 0,
+	.hash_tbl_entries = 0,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE << 1 |
+		BNXT_ULP_DIRECTION_EGRESS] = {
+	.name = "EGRESS GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 0,
+	.result_num_bytes = 0,
+	.key_num_bytes = 0,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 0,
+	.hash_tbl_entries = 0,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
 	}
 };
 
@@ -996,30 +1020,6 @@  const struct bnxt_ulp_generic_tbl_params ulp_thor_generic_tbl_params[] = {
 	.hash_tbl_entries = 0,
 	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
 	},
-	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GLOBAL_REGISTER_TBL << 1 |
-		BNXT_ULP_DIRECTION_INGRESS] = {
-	.name = "INGRESS GENERIC_TABLE_GLOBAL_REGISTER_TBL",
-	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
-	.result_num_entries = 0,
-	.result_num_bytes = 0,
-	.key_num_bytes = 0,
-	.partial_key_num_bytes = 0,
-	.num_buckets = 0,
-	.hash_tbl_entries = 0,
-	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
-	},
-	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GLOBAL_REGISTER_TBL << 1 |
-		BNXT_ULP_DIRECTION_EGRESS] = {
-	.name = "EGRESS GENERIC_TABLE_GLOBAL_REGISTER_TBL",
-	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
-	.result_num_entries = 0,
-	.result_num_bytes = 0,
-	.key_num_bytes = 0,
-	.partial_key_num_bytes = 0,
-	.num_buckets = 0,
-	.hash_tbl_entries = 0,
-	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
-	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_CHAIN_ID_CACHE << 1 |
 		BNXT_ULP_DIRECTION_INGRESS] = {
 	.name = "INGRESS GENERIC_TABLE_CHAIN_ID_CACHE",
@@ -1307,6 +1307,54 @@  const struct bnxt_ulp_generic_tbl_params ulp_thor_generic_tbl_params[] = {
 	.num_buckets = 0,
 	.hash_tbl_entries = 0,
 	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_CACHE << 1 |
+		BNXT_ULP_DIRECTION_INGRESS] = {
+	.name = "INGRESS GENERIC_TABLE_TUNNEL_GPARSE_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 64,
+	.result_num_bytes = 10,
+	.key_num_bytes = 1,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 4,
+	.hash_tbl_entries = 256,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_CACHE << 1 |
+		BNXT_ULP_DIRECTION_EGRESS] = {
+	.name = "EGRESS GENERIC_TABLE_TUNNEL_GPARSE_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 0,
+	.result_num_bytes = 0,
+	.key_num_bytes = 0,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 0,
+	.hash_tbl_entries = 0,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE << 1 |
+		BNXT_ULP_DIRECTION_INGRESS] = {
+	.name = "INGRESS GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 128,
+	.result_num_bytes = 6,
+	.key_num_bytes = 56,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 4,
+	.hash_tbl_entries = 512,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE << 1 |
+		BNXT_ULP_DIRECTION_EGRESS] = {
+	.name = "EGRESS GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 128,
+	.result_num_bytes = 6,
+	.key_num_bytes = 56,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 4,
+	.hash_tbl_entries = 512,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE
 	}
 };
 
@@ -1603,13 +1651,13 @@  const struct bnxt_ulp_generic_tbl_params ulp_thor2_generic_tbl_params[] = {
 		BNXT_ULP_DIRECTION_INGRESS] = {
 	.name = "INGRESS GENERIC_TABLE_SHARED_METER_TBL_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 = 1024,
+	.result_num_bytes = 10,
+	.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 = 8,
+	.hash_tbl_entries = 2048,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE
 	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_METER_TBL_CACHE << 1 |
 		BNXT_ULP_DIRECTION_EGRESS] = {
@@ -1627,13 +1675,13 @@  const struct bnxt_ulp_generic_tbl_params ulp_thor2_generic_tbl_params[] = {
 		BNXT_ULP_DIRECTION_INGRESS] = {
 	.name = "INGRESS GENERIC_TABLE_METER_PROFILE_TBL_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 = 512,
+	.result_num_bytes = 13,
+	.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 = 8,
+	.hash_tbl_entries = 2048,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE
 	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_METER_PROFILE_TBL_CACHE << 1 |
 		BNXT_ULP_DIRECTION_EGRESS] = {
@@ -1647,30 +1695,6 @@  const struct bnxt_ulp_generic_tbl_params ulp_thor2_generic_tbl_params[] = {
 	.hash_tbl_entries = 0,
 	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
 	},
-	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GLOBAL_REGISTER_TBL << 1 |
-		BNXT_ULP_DIRECTION_INGRESS] = {
-	.name = "INGRESS GENERIC_TABLE_GLOBAL_REGISTER_TBL",
-	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
-	.result_num_entries = 0,
-	.result_num_bytes = 0,
-	.key_num_bytes = 0,
-	.partial_key_num_bytes = 0,
-	.num_buckets = 0,
-	.hash_tbl_entries = 0,
-	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
-	},
-	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GLOBAL_REGISTER_TBL << 1 |
-		BNXT_ULP_DIRECTION_EGRESS] = {
-	.name = "EGRESS GENERIC_TABLE_GLOBAL_REGISTER_TBL",
-	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
-	.result_num_entries = 0,
-	.result_num_bytes = 0,
-	.key_num_bytes = 0,
-	.partial_key_num_bytes = 0,
-	.num_buckets = 0,
-	.hash_tbl_entries = 0,
-	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
-	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_CHAIN_ID_CACHE << 1 |
 		BNXT_ULP_DIRECTION_INGRESS] = {
 	.name = "INGRESS GENERIC_TABLE_CHAIN_ID_CACHE",
@@ -1958,6 +1982,54 @@  const struct bnxt_ulp_generic_tbl_params ulp_thor2_generic_tbl_params[] = {
 	.num_buckets = 0,
 	.hash_tbl_entries = 0,
 	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_CACHE << 1 |
+		BNXT_ULP_DIRECTION_INGRESS] = {
+	.name = "INGRESS GENERIC_TABLE_TUNNEL_GPARSE_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 0,
+	.result_num_bytes = 0,
+	.key_num_bytes = 0,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 0,
+	.hash_tbl_entries = 0,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_CACHE << 1 |
+		BNXT_ULP_DIRECTION_EGRESS] = {
+	.name = "EGRESS GENERIC_TABLE_TUNNEL_GPARSE_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 0,
+	.result_num_bytes = 0,
+	.key_num_bytes = 0,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 0,
+	.hash_tbl_entries = 0,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE << 1 |
+		BNXT_ULP_DIRECTION_INGRESS] = {
+	.name = "INGRESS GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 0,
+	.result_num_bytes = 0,
+	.key_num_bytes = 0,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 0,
+	.hash_tbl_entries = 0,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	},
+	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE << 1 |
+		BNXT_ULP_DIRECTION_EGRESS] = {
+	.name = "EGRESS GENERIC_TABLE_MULTI_FLOW_TUNNEL_CACHE",
+	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
+	.result_num_entries = 0,
+	.result_num_bytes = 0,
+	.key_num_bytes = 0,
+	.partial_key_num_bytes = 0,
+	.num_buckets = 0,
+	.hash_tbl_entries = 0,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
 	}
 };
 
@@ -2284,7 +2356,8 @@  struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {
 	.max_flow_priority       = 0,
 	.vxlan_port              = 0,
 	.vxlan_ip_port           = 0,
-	.num_key_recipes_per_dir = 256
+	.num_key_recipes_per_dir = 256,
+	.feature_bits            = BNXT_ULP_FEATURE_BIT_MULTI_TUNNEL_FLOW
 	},
 	{
 	.app_id                  = 0,
@@ -2298,8 +2371,8 @@  struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {
 	.vxlan_ip_port           = 0,
 	.max_pools               = 1,
 	.em_multiplier           = 4,
-	.num_rx_flows            = 262144,
-	.num_tx_flows            = 262144,
+	.num_rx_flows            = 524288,
+	.num_tx_flows            = 524288,
 	.act_rx_max_sz           = 256,
 	.act_tx_max_sz           = 256,
 	.em_rx_key_max_sz        = 112,
@@ -3630,6 +3703,28 @@  uint32_t ulp_act_prop_map_table[] = {
 		BNXT_ULP_ACT_PROP_SZ_METER_INST_MTR_VAL_UPDATE,
 	[BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL] =
 		BNXT_ULP_ACT_PROP_SZ_METER_INST_MTR_VAL,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_CIR] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_CIR,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_EIR] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_EIR,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_CBS] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_CBS,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_EBS] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_EBS,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_RFC2698] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_RFC2698,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_PM] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_PM,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_EBND] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_EBND,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_CBND] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_CBND,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_EBSM] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_EBSM,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_CBSM] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_CBSM,
+	[BNXT_ULP_ACT_PROP_IDX_METER_INST_CF] =
+		BNXT_ULP_ACT_PROP_SZ_METER_INST_CF,
 	[BNXT_ULP_ACT_PROP_IDX_GOTO_CHAINID] =
 		BNXT_ULP_ACT_PROP_SZ_GOTO_CHAINID,
 	[BNXT_ULP_ACT_PROP_IDX_SET_TTL] =
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 1799582eb4..e41a80ac78 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,107 +13,144 @@  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 = 14,
+	.num_tbls = 16,
 	.start_tbl_idx = 0,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
 		.cond_start_idx = 0,
-		.cond_nums = 5 }
+		.cond_nums = 4 }
 	},
 	/* act_tid: 2, ingress */
 	[2] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
 	.num_tbls = 12,
-	.start_tbl_idx = 14,
+	.start_tbl_idx = 16,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 18,
+		.cond_start_idx = 19,
 		.cond_nums = 0 }
 	},
 	/* act_tid: 3, ingress */
 	[3] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
 	.num_tbls = 9,
-	.start_tbl_idx = 26,
+	.start_tbl_idx = 28,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 22,
+		.cond_start_idx = 23,
 		.cond_nums = 0 }
 	},
 	/* act_tid: 4, ingress */
 	[4] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
 	.num_tbls = 7,
-	.start_tbl_idx = 35,
+	.start_tbl_idx = 37,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 27,
+		.cond_start_idx = 28,
 		.cond_nums = 1 }
 	},
 	/* act_tid: 5, ingress */
 	[5] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 0,
-	.start_tbl_idx = 0,
+	.num_tbls = 19,
+	.start_tbl_idx = 44,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 32,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 33,
 		.cond_nums = 0 }
 	},
 	/* act_tid: 6, egress */
 	[6] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
 	.num_tbls = 6,
-	.start_tbl_idx = 42,
+	.start_tbl_idx = 63,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 32,
+		.cond_start_idx = 48,
 		.cond_nums = 4 }
 	},
 	/* act_tid: 7, egress */
 	[7] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
 	.num_tbls = 7,
-	.start_tbl_idx = 48,
+	.start_tbl_idx = 69,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 38,
+		.cond_start_idx = 54,
 		.cond_nums = 1 }
 	},
 	/* act_tid: 8, egress */
 	[8] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
 	.num_tbls = 21,
-	.start_tbl_idx = 55,
+	.start_tbl_idx = 76,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 42,
+		.cond_start_idx = 58,
 		.cond_nums = 2 }
 	},
 	/* act_tid: 9, egress */
 	[9] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
 	.num_tbls = 6,
-	.start_tbl_idx = 76,
+	.start_tbl_idx = 97,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 62,
+		.cond_start_idx = 78,
 		.cond_nums = 2 }
 	},
 	/* act_tid: 10, egress */
 	[10] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
 	.num_tbls = 6,
-	.start_tbl_idx = 82,
+	.start_tbl_idx = 103,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 65,
+		.cond_start_idx = 81,
 		.cond_nums = 4 }
 	}
 };
 
 struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
+	{ /* act_tid: 1, , 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 = 2,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.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_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.meter_chk */
+	.description = "control.meter_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 = 5,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
 	{ /* act_tid: 1, , 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 =
@@ -123,44 +160,47 @@  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 = 5,
+		.cond_start_idx = 6,
 		.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 = 0,
+	.key_start_idx = 1,
 	.blob_key_bit_size = 5,
 	.key_bit_size = 5,
 	.key_num_fields = 1,
-	.ident_start_idx = 0,
+	.ident_start_idx = 1,
 	.ident_nums = 1
 	},
 	{ /* act_tid: 1, , 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 = 6,
+		.cond_start_idx = 7,
 		.cond_nums = 1 },
 	.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",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 4,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 7,
+		.cond_start_idx = 8,
 		.cond_nums = 3 },
 	.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",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -170,7 +210,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_OR,
-		.cond_start_idx = 10,
+		.cond_start_idx = 11,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
@@ -182,6 +222,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.encap_num_fields = 18
 	},
 	{ /* act_tid: 1, , table: mod_record.ing_ttl */
+	.description = "mod_record.ing_ttl",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -191,7 +232,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 = 11,
+		.cond_start_idx = 12,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
@@ -203,13 +244,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.encap_num_fields = 26
 	},
 	{ /* act_tid: 1, , 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 = 12,
+		.cond_start_idx = 13,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -222,6 +264,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
 	},
 	{ /* act_tid: 1, , table: tunnel_cache.f1_f2_act_rd */
+	.description = "tunnel_cache.f1_f2_act_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_CACHE,
@@ -230,32 +273,34 @@  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 = 12,
+		.cond_start_idx = 13,
 		.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 = 1,
+	.key_start_idx = 2,
 	.blob_key_bit_size = 19,
 	.key_bit_size = 19,
 	.key_num_fields = 2,
-	.ident_start_idx = 1,
+	.ident_start_idx = 2,
 	.ident_nums = 2
 	},
 	{ /* act_tid: 1, , table: control.tunnel_cache_check_act */
+	.description = "control.tunnel_cache_check_act",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.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 = 14,
+		.cond_start_idx = 15,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* act_tid: 1, , table: cmm_stat_record.f1_flow */
+	.description = "cmm_stat_record.f1_flow",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -265,7 +310,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 = 15,
+		.cond_start_idx = 16,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL_F1,
@@ -277,13 +322,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 1, , table: control.stat_handle_to_offset_ptr_1 */
+	.description = "control.stat_handle_to_offset_ptr_1",
 	.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 = 15,
+		.cond_start_idx = 16,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -296,6 +342,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_F1 }
 	},
 	{ /* act_tid: 1, , 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 =
@@ -305,7 +352,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 = 15,
+		.cond_start_idx = 16,
 		.cond_nums = 2 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
@@ -317,13 +364,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 1, , 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 = 17,
+		.cond_start_idx = 18,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -336,6 +384,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
 	},
 	{ /* act_tid: 1, , 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 =
@@ -345,7 +394,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 17,
+		.cond_start_idx = 18,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
@@ -357,13 +406,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.result_num_fields = 18
 	},
 	{ /* act_tid: 1, , 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 = 18,
+		.cond_start_idx = 19,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -376,18 +426,20 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
 	},
 	{ /* act_tid: 2, , table: control.delete_chk */
+	.description = "control.delete_chk",
 	.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 = 18,
+		.cond_start_idx = 19,
 		.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 */
+	.description = "shared_mirror_record.del_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_MIRROR,
 	.resource_sub_type =
@@ -397,40 +449,42 @@  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 = 19,
+		.cond_start_idx = 20,
 		.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 = 3,
+	.key_start_idx = 4,
 	.blob_key_bit_size = 5,
 	.key_bit_size = 5,
 	.key_num_fields = 1,
-	.ident_start_idx = 3,
+	.ident_start_idx = 4,
 	.ident_nums = 1
 	},
 	{ /* act_tid: 2, , table: control.mirror_del_exist_chk */
+	.description = "control.mirror_del_exist_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 19,
+		.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: control.mirror_ref_cnt_chk */
+	.description = "control.mirror_ref_cnt_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 20,
+		.cond_start_idx = 21,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_DELETE_RID_REGFILE,
@@ -444,19 +498,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
 	{ /* act_tid: 2, , table: control.create */
+	.description = "control.create",
 	.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 = 21,
+		.cond_start_idx = 22,
 		.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 */
+	.description = "mirror_tbl.alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_MIRROR,
 	.resource_sub_type =
@@ -466,7 +522,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 = 21,
+		.cond_start_idx = 22,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
@@ -479,6 +535,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.result_num_fields = 12
 	},
 	{ /* act_tid: 2, , 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 =
@@ -488,7 +545,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 = 21,
+		.cond_start_idx = 22,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
@@ -501,13 +558,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 2, , 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 = 22,
+		.cond_start_idx = 23,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -520,6 +578,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
 	},
 	{ /* act_tid: 2, , 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 =
@@ -529,7 +588,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 = 23,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
@@ -542,13 +601,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.result_num_fields = 18
 	},
 	{ /* act_tid: 2, , 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  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 22,
+		.cond_start_idx = 23,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -561,6 +621,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
 	},
 	{ /* act_tid: 2, , table: mirror_tbl.wr */
+	.description = "mirror_tbl.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_MIRROR,
 	.resource_sub_type =
@@ -570,7 +631,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 = 23,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
@@ -582,6 +643,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.result_num_fields = 12
 	},
 	{ /* act_tid: 2, , 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,
 	.resource_sub_type =
@@ -591,7 +653,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 = 22,
+		.cond_start_idx = 23,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
@@ -599,7 +661,7 @@  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 = 4,
+	.key_start_idx = 5,
 	.blob_key_bit_size = 5,
 	.key_bit_size = 5,
 	.key_num_fields = 1,
@@ -608,6 +670,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.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 =
@@ -617,32 +680,34 @@  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 = 22,
+		.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,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 5,
+	.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: 3, , 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 = 23,
+		.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: 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 =
@@ -652,7 +717,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 = 24,
+		.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,
@@ -664,6 +729,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.encap_num_fields = 24
 	},
 	{ /* 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,
 	.resource_sub_type =
@@ -673,7 +739,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 = 25,
+		.cond_start_idx = 26,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
@@ -685,13 +751,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.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 = 26,
+		.cond_start_idx = 27,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -704,6 +771,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
 	},
 	{ /* 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 =
@@ -713,7 +781,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 = 26,
+		.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,
@@ -725,13 +793,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* 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,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 27,
+		.cond_start_idx = 28,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -744,6 +813,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_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,
 	.resource_sub_type =
@@ -753,7 +823,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 = 27,
+		.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,
@@ -765,13 +835,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.result_num_fields = 18
 	},
 	{ /* 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,
 	.execute_info = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 27,
+		.cond_start_idx = 28,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -784,6 +855,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
 	},
 	{ /* 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 =
@@ -793,32 +865,34 @@  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 = 28,
+		.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 = 6,
+	.key_start_idx = 7,
 	.blob_key_bit_size = 5,
 	.key_bit_size = 5,
 	.key_num_fields = 1,
-	.ident_start_idx = 5,
+	.ident_start_idx = 6,
 	.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 = 29,
+		.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: 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,
@@ -827,7 +901,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 = 30,
+		.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,
@@ -838,6 +912,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.result_num_fields = 0
 	},
 	{ /* 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,
 	.resource_sub_type =
@@ -847,7 +922,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 = 31,
+		.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,
@@ -859,13 +934,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.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 = 32,
+		.cond_start_idx = 33,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -878,6 +954,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.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 =
@@ -887,7 +964,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 = 32,
+		.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,
@@ -899,13 +976,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.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 = 32,
+		.cond_start_idx = 33,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -917,148 +995,389 @@  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: 6, , table: mod_record.ing_ttl */
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* 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_CMM_TABLE_ACT,
-	.direction = TF_DIR_TX,
+		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_false_goto = 3,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 36,
+		.cond_start_idx = 35,
 		.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 = 208,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 24
+	.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: 6, , table: control.mod_handle_to_offset */
+	{ /* 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_TX,
+	.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_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_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: 6, , table: cmm_stat_record.0 */
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* 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_CMM_TABLE_ACT,
-	.direction = TF_DIR_TX,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_METER_TBL_CACHE,
+	.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 = 37,
 		.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_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 = 232,
-	.result_bit_size = 128,
-	.result_num_fields = 2
+	.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: 6, , table: control.stat_handle_to_offset */
+	{ /* act_tid: 5, , table: control.meter_created_chk */
+	.description = "control.meter_created_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
-	.direction = TF_DIR_TX,
+	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_false_goto = 1023,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
 		.cond_start_idx = 38,
-		.cond_nums = 0 },
+		.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_ALLOC_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
-	{ /* act_tid: 6, , table: cmm_full_act_record.0 */
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* 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_CMM_TABLE_ACT,
-	.direction = TF_DIR_TX,
+		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 = 38,
+		.cond_start_idx = 39,
 		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_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,
-	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-	.result_start_idx = 234,
-	.result_bit_size = 192,
-	.result_num_fields = 18
+	.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: 6, , table: control.act_handle_to_offset */
+	{ /* 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_TX,
+	.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,
+	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
+		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 38,
+		.cond_start_idx = 40,
 		.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,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.result_start_idx = 238,
+	.result_bit_size = 74,
+	.result_num_fields = 3
+	},
+	{ /* act_tid: 5, , table: control.delete_check */
+	.description = "control.delete_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 5,
+		.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: 5, , 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 =
+		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 = 41,
+		.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,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.ident_start_idx = 18,
+	.ident_nums = 1
+	},
+	{ /* act_tid: 5, , 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,
+	.execute_info = {
+		.cond_true_goto  = 0,
+		.cond_false_goto = 1023,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 42,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_DELETE_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
+		.func_opc = BNXT_ULP_FUNC_OPC_EQ,
 		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
+		.func_opr1 = BNXT_ULP_RF_IDX_REF_CNT,
 		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 32,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
+		.func_opr2 = 1,
+		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
-	{ /* act_tid: 7, , table: mod_record.egr_no_ttl */
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* act_tid: 5, , 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 =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
-	.direction = TF_DIR_TX,
+		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_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 39,
+		.cond_start_idx = 43,
 		.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 = 252,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 24
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
+	.key_start_idx = 14,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.ident_start_idx = 19,
+	.ident_nums = 1
 	},
-	{ /* act_tid: 7, , table: mod_record.egr_ttl */
+	{ /* act_tid: 5, , 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,
+	.execute_info = {
+		.cond_true_goto  = 0,
+		.cond_false_goto = 1023,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 44,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_DELETE_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID,
+	.func_info = {
+		.func_opc = BNXT_ULP_FUNC_OPC_EQ,
+		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
+		.func_opr1 = BNXT_ULP_RF_IDX_REF_CNT,
+		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr2 = 1,
+		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
+	},
+	{ /* act_tid: 5, , table: control.update_check */
+	.description = "control.update_check",
+	.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_TRUE,
+		.cond_start_idx = 45,
+		.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 */
+	.description = "shared_meter_tbl_cache.rd_update",
+	.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 = 45,
+		.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,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.ident_start_idx = 20,
+	.ident_nums = 1
+	},
+	{ /* act_tid: 5, , 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,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
+	.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 = 46,
+		.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,
+	.ident_nums = 13,
+	.result_bit_size = 128
+	},
+	{ /* act_tid: 5, , 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,
+	.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 = 48,
+		.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,
+	.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,
 	.resource_sub_type =
@@ -1066,27 +1385,28 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.direction = TF_DIR_TX,
 	.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 = 40,
+		.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 = 276,
+	.result_start_idx = 259,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 32
+	.encap_num_fields = 24
 	},
-	{ /* act_tid: 7, , table: control.mod_handle_to_offset */
+	{ /* act_tid: 6, , 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 = 41,
+		.cond_start_idx = 53,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1098,7 +1418,8 @@  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 */
+	{ /* act_tid: 6, , 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 =
@@ -1108,25 +1429,26 @@  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 = 53,
 		.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 = 308,
+	.result_start_idx = 283,
 	.result_bit_size = 128,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 7, , table: control.stat_handle_to_offset */
+	{ /* act_tid: 6, , 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 = 42,
+		.cond_start_idx = 54,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1138,7 +1460,8 @@  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: 7, , table: cmm_full_act_record.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,
 	.resource_sub_type =
@@ -1148,25 +1471,26 @@  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 = 42,
+		.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,
 	.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 = 310,
+	.result_start_idx = 285,
 	.result_bit_size = 192,
 	.result_num_fields = 18
 	},
-	{ /* act_tid: 7, , table: control.act_handle_to_offset */
+	{ /* act_tid: 6, , 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 = 42,
+		.cond_start_idx = 54,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1178,47 +1502,30 @@  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: 8, , table: cmm_stat_record.0 */
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
+	{ /* act_tid: 7, , table: mod_record.egr_no_ttl */
+	.description = "mod_record.egr_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,
 	.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 = 44,
+		.cond_start_idx = 55,
 		.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_MOD_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 = 328,
-	.result_bit_size = 128,
-	.result_num_fields = 2
-	},
-	{ /* act_tid: 8, , table: 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 = 45,
-		.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 }
+	.result_start_idx = 303,
+	.result_bit_size = 0,
+	.result_num_fields = 0,
+	.encap_num_fields = 24
 	},
-	{ /* act_tid: 8, , table: mod_record.egr_set_mac */
+	{ /* act_tid: 7, , table: mod_record.egr_ttl */
+	.description = "mod_record.egr_ttl",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1226,27 +1533,196 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.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 = 56,
+		.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_bit_size = 0,
+	.result_num_fields = 0,
+	.encap_num_fields = 32
+	},
+	{ /* act_tid: 7, , 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 = 57,
+		.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: 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,
+	.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,
+	.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
+	},
+	{ /* 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,
+	.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 },
+	.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: 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,
+	.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 = 58,
+		.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 = 361,
+	.result_bit_size = 192,
+	.result_num_fields = 18
+	},
+	{ /* 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,
+	.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 },
+	.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: 8, , 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 = 60,
+		.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 = 379,
+	.result_bit_size = 128,
+	.result_num_fields = 2
+	},
+	{ /* act_tid: 8, , 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 = 61,
+		.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: 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,
+	.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_OR,
-		.cond_start_idx = 45,
+		.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,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 330,
+	.result_start_idx = 381,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 18
 	},
 	{ /* act_tid: 8, , 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 = 47,
+		.cond_start_idx = 63,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1259,6 +1735,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
 	},
 	{ /* act_tid: 8, , 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_GENERIC_TABLE_SOURCE_PROPERTY_CACHE,
@@ -1267,33 +1744,35 @@  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 = 47,
+		.cond_start_idx = 63,
 		.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 = 7,
+	.key_start_idx = 16,
 	.blob_key_bit_size = 85,
 	.key_bit_size = 85,
 	.key_num_fields = 3,
-	.ident_start_idx = 6,
+	.ident_start_idx = 34,
 	.ident_nums = 1
 	},
 	{ /* act_tid: 8, , 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 = 4,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 48,
+		.cond_start_idx = 64,
 		.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",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1303,26 +1782,27 @@  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 = 49,
+		.cond_start_idx = 65,
 		.cond_nums = 1 },
 	.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_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
-	.result_start_idx = 348,
+	.result_start_idx = 399,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 3
 	},
 	{ /* act_tid: 8, , 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 = 50,
+		.cond_start_idx = 66,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1335,6 +1815,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_SP_PTR }
 	},
 	{ /* act_tid: 8, , 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,
@@ -1343,21 +1824,22 @@  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 = 50,
+		.cond_start_idx = 66,
 		.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 = 10,
+	.key_start_idx = 19,
 	.blob_key_bit_size = 85,
 	.key_bit_size = 85,
 	.key_num_fields = 3,
-	.result_start_idx = 351,
+	.result_start_idx = 402,
 	.result_bit_size = 64,
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 8, , 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,
@@ -1366,33 +1848,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 10,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 50,
+		.cond_start_idx = 66,
 		.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 = 13,
+	.key_start_idx = 22,
 	.blob_key_bit_size = 141,
 	.key_bit_size = 141,
 	.key_num_fields = 6,
-	.ident_start_idx = 7,
+	.ident_start_idx = 35,
 	.ident_nums = 1
 	},
 	{ /* act_tid: 8, , 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_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 52,
+		.cond_start_idx = 68,
 		.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",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1402,26 +1886,27 @@  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 = 53,
+		.cond_start_idx = 69,
 		.cond_nums = 2 },
 	.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 = 353,
+	.result_start_idx = 404,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 25
 	},
 	{ /* act_tid: 8, , 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 = 55,
+		.cond_start_idx = 71,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1434,6 +1919,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.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",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE,
@@ -1442,21 +1928,22 @@  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 = 55,
+		.cond_start_idx = 71,
 		.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,
+	.key_start_idx = 28,
 	.blob_key_bit_size = 141,
 	.key_bit_size = 141,
 	.key_num_fields = 6,
-	.result_start_idx = 378,
+	.result_start_idx = 429,
 	.result_bit_size = 64,
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 8, , table: geneve_encap_rec_cache.rd */
+	.description = "geneve_encap_rec_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GENEVE_ENCAP_REC_CACHE,
@@ -1465,33 +1952,35 @@  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 = 55,
+		.cond_start_idx = 71,
 		.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 = 25,
+	.key_start_idx = 34,
 	.blob_key_bit_size = 493,
 	.key_bit_size = 493,
 	.key_num_fields = 15,
-	.ident_start_idx = 8,
+	.ident_start_idx = 36,
 	.ident_nums = 1
 	},
 	{ /* act_tid: 8, , 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_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 56,
+		.cond_start_idx = 72,
 		.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 */
+	.description = "ext_tun_geneve_encap_record.ipv4_vxlan",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1501,19 +1990,20 @@  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 = 57,
+		.cond_start_idx = 73,
 		.cond_nums = 2 },
 	.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 = 380,
+	.result_start_idx = 431,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 31
 	},
 	{ /* act_tid: 8, , 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,
 	.resource_sub_type =
@@ -1523,19 +2013,20 @@  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 = 59,
+		.cond_start_idx = 75,
 		.cond_nums = 2 },
 	.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 = 411,
+	.result_start_idx = 462,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 29
 	},
 	{ /* act_tid: 8, , 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,
@@ -1544,21 +2035,22 @@  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 = 61,
+		.cond_start_idx = 77,
 		.cond_nums = 1 },
 	.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 = 40,
+	.key_start_idx = 49,
 	.blob_key_bit_size = 493,
 	.key_bit_size = 493,
 	.key_num_fields = 15,
-	.result_start_idx = 440,
+	.result_start_idx = 491,
 	.result_bit_size = 64,
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 8, , 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 =
@@ -1568,25 +2060,26 @@  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 = 62,
+		.cond_start_idx = 78,
 		.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 = 442,
+	.result_start_idx = 493,
 	.result_bit_size = 192,
 	.result_num_fields = 18
 	},
 	{ /* act_tid: 8, , 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 = 62,
+		.cond_start_idx = 78,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1599,6 +2092,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
 	},
 	{ /* act_tid: 9, , 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 =
@@ -1608,7 +2102,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 = 64,
+		.cond_start_idx = 80,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
@@ -1621,19 +2115,20 @@  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 = 460,
+	.result_start_idx = 511,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 20
 	},
 	{ /* act_tid: 9, , 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 = 64,
+		.cond_start_idx = 80,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1646,6 +2141,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
 	},
 	{ /* act_tid: 9, , 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 =
@@ -1655,25 +2151,26 @@  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 = 64,
+		.cond_start_idx = 80,
 		.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 = 480,
+	.result_start_idx = 531,
 	.result_bit_size = 128,
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 9, , 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 = 65,
+		.cond_start_idx = 81,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1686,6 +2183,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
 	},
 	{ /* act_tid: 9, , 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 =
@@ -1695,25 +2193,26 @@  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 = 65,
+		.cond_start_idx = 81,
 		.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 = 482,
+	.result_start_idx = 533,
 	.result_bit_size = 192,
 	.result_num_fields = 18
 	},
 	{ /* act_tid: 9, , 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 = 65,
+		.cond_start_idx = 81,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1726,6 +2225,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.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 =
@@ -1735,7 +2235,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 = 69,
+		.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,
@@ -1748,19 +2248,20 @@  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 = 500,
+	.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 = 69,
+		.cond_start_idx = 85,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1773,6 +2274,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.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 =
@@ -1782,25 +2284,26 @@  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 = 69,
+		.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 = 520,
+	.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 = 70,
+		.cond_start_idx = 86,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1813,6 +2316,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.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 =
@@ -1822,25 +2326,26 @@  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 = 70,
+		.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 = 522,
+	.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 = 70,
+		.cond_start_idx = 86,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1875,21 +2380,27 @@  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_SET_VLAN_PCP
 	},
+	/* cond_execute: act_tid: 1, shared_meter_tbl_cache.rd:4*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_METER
 	},
-	/* cond_execute: act_tid: 1, shared_mirror_record.rd:5*/
+	/* cond_execute: act_tid: 1, control.meter_chk:5*/
+	{
+	.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:6*/
 	{
 	.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:7*/
 	{
 	.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:7*/
+	/* 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
@@ -1902,17 +2413,17 @@  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_SET_MAC_DST
 	},
-	/* cond_execute: act_tid: 1, mod_record.ing_no_ttl:10*/
+	/* cond_execute: act_tid: 1, mod_record.ing_no_ttl:11*/
 	{
 	.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_ttl:11*/
+	/* cond_execute: act_tid: 1, mod_record.ing_ttl:12*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
-	/* cond_execute: act_tid: 1, tunnel_cache.f1_f2_act_rd:12*/
+	/* cond_execute: act_tid: 1, tunnel_cache.f1_f2_act_rd:13*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_F1
@@ -1921,12 +2432,12 @@  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:14*/
+	/* cond_execute: act_tid: 1, control.tunnel_cache_check_act:15*/
 	{
 	.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:15*/
+	/* cond_execute: act_tid: 1, cmm_stat_record.0:16*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
@@ -1935,52 +2446,52 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.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:17*/
+	/* 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:18*/
+	/* cond_execute: act_tid: 2, control.delete_chk:19*/
 	{
 	.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:19*/
+	/* 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_execute: act_tid: 2, control.mirror_ref_cnt_chk:20*/
+	/* 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_execute: act_tid: 2, cmm_stat_record.0:21*/
+	/* cond_execute: act_tid: 2, cmm_stat_record.0:22*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
 	},
-	/* cond_execute: act_tid: 3, shared_mirror_record.rd:22*/
+	/* cond_execute: act_tid: 3, shared_mirror_record.rd:23*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
 	},
-	/* cond_execute: act_tid: 3, control.mirror:23*/
+	/* cond_execute: act_tid: 3, control.mirror:24*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 3, mod_record.ing_no_ttl:24*/
+	/* cond_execute: act_tid: 3, mod_record.ing_no_ttl:25*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
-	/* cond_execute: act_tid: 3, mod_record.ing_ttl:25*/
+	/* 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_execute: act_tid: 3, cmm_stat_record.0:26*/
+	/* 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
@@ -1990,26 +2501,99 @@  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_QUEUE
 	},
-	/* cond_execute: act_tid: 4, shared_mirror_record.rd:28*/
+	/* 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:29*/
+	/* cond_execute: act_tid: 4, control.mirror:30*/
 	{
 	.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:30*/
+	/* cond_execute: act_tid: 4, vnic_interface_rss_config.0:31*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_RSS
 	},
-	/* cond_execute: act_tid: 4, cmm_stat_record.0:31*/
+	/* cond_execute: act_tid: 4, cmm_stat_record.0:32*/
 	{
 	.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_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_UPDATE
+	},
+	{
+	.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_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_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_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_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_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_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_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_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_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_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_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_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	},
+	{
+	.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,
@@ -2027,12 +2611,12 @@  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: 6, mod_record.ing_ttl:36*/
+	/* cond_execute: act_tid: 6, mod_record.ing_ttl:52*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
-	/* cond_execute: act_tid: 6, cmm_stat_record.0:37*/
+	/* cond_execute: act_tid: 6, cmm_stat_record.0:53*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
@@ -2042,17 +2626,17 @@  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: 7, mod_record.egr_no_ttl:39*/
+	/* cond_execute: act_tid: 7, mod_record.egr_no_ttl:55*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
-	/* cond_execute: act_tid: 7, mod_record.egr_ttl:40*/
+	/* cond_execute: act_tid: 7, mod_record.egr_ttl:56*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
-	/* cond_execute: act_tid: 7, cmm_stat_record.0:41*/
+	/* cond_execute: act_tid: 7, cmm_stat_record.0:57*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
@@ -2066,12 +2650,12 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
 	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG
 	},
-	/* cond_execute: act_tid: 8, cmm_stat_record.0:44*/
+	/* 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_execute: act_tid: 8, mod_record.egr_set_mac:45*/
+	/* cond_execute: act_tid: 8, mod_record.egr_set_mac:61*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SET_MAC_SRC
@@ -2080,22 +2664,22 @@  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_SET_MAC_DST
 	},
-	/* cond_execute: act_tid: 8, source_property_cache.rd:47*/
+	/* cond_execute: act_tid: 8, source_property_cache.rd:63*/
 	{
 	.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.sp_rec_v4:48*/
+	/* 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_execute: act_tid: 8, sp_smac_ipv4.0:49*/
+	/* cond_execute: act_tid: 8, sp_smac_ipv4.0:65*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
 	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
 	},
-	/* cond_execute: act_tid: 8, vxlan_encap_rec_cache.rd:50*/
+	/* 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
@@ -2104,12 +2688,12 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
 	},
-	/* cond_execute: act_tid: 8, control.vxlan_v4_encap:52*/
+	/* cond_execute: act_tid: 8, control.vxlan_v4_encap:68*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 8, ext_tun_vxlan_encap_record.ipv4_vxlan:53*/
+	/* cond_execute: act_tid: 8, ext_tun_vxlan_encap_record.ipv4_vxlan:69*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
@@ -2118,17 +2702,17 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.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:55*/
+	/* 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_execute: act_tid: 8, control.geneve_encap:56*/
+	/* cond_execute: act_tid: 8, control.geneve_encap:72*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 8, ext_tun_geneve_encap_record.ipv4_vxlan:57*/
+	/* 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
@@ -2137,7 +2721,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
 	},
-	/* cond_execute: act_tid: 8, ext_tun_geneve_encap_record.ipv6_geneve:59*/
+	/* 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
@@ -2146,7 +2730,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.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:61*/
+	/* 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
@@ -2160,7 +2744,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_MULTIPLE_PORT
 	},
-	/* cond_execute: act_tid: 9, cmm_stat_record.0:64*/
+	/* cond_execute: act_tid: 9, cmm_stat_record.0:80*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
@@ -2182,7 +2766,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:69*/
+	/* cond_execute: act_tid: 10, cmm_stat_record.0:85*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
@@ -2190,6 +2774,29 @@  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: shared_meter_tbl_cache.rd */
+	{
+	.field_info_mask = {
+		.description = "sw_meter_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 = "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 >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_METER & 0xff}
+		}
+	},
 	/* act_tid: 1, , table: shared_mirror_record.rd */
 	{
 	.field_info_mask = {
@@ -2330,6 +2937,190 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
 		}
 	},
+	/* act_tid: 5, , table: meter_profile_tbl_cache.rd */
+	{
+	.field_info_mask = {
+		.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 = "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_profile_tbl_cache.wr */
+	{
+	.field_info_mask = {
+		.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 = "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: shared_meter_tbl_cache.rd */
+	{
+	.field_info_mask = {
+		.description = "sw_meter_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 = "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_INST_ID >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
+		}
+	},
+	/* act_tid: 5, , table: meter_profile_tbl_cache.rd2 */
+	{
+	.field_info_mask = {
+		.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 = "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: shared_meter_tbl_cache.wr */
+	{
+	.field_info_mask = {
+		.description = "sw_meter_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 = "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_INST_ID >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
+		}
+	},
+	/* act_tid: 5, , table: meter_profile_tbl_cache.del_chk */
+	{
+	.field_info_mask = {
+		.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 = "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: shared_meter_tbl_cache.del_chk */
+	{
+	.field_info_mask = {
+		.description = "sw_meter_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 = "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_INST_ID >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
+		}
+	},
+	/* act_tid: 5, , table: shared_meter_tbl_cache.rd_update */
+	{
+	.field_info_mask = {
+		.description = "sw_meter_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 = "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_INST_ID >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
+		}
+	},
 	/* act_tid: 8, , table: source_property_cache.rd */
 	{
 	.field_info_mask = {
@@ -3926,8 +4717,22 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	{
 	.description = "meter_ptr",
 	.field_bit_size = 10,
-	.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_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",
@@ -5204,195 +6009,673 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "stat1_ptr",
-	.field_bit_size = 28,
+	.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_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: 4, , table: vnic_interface_rss_config.0 */
+	/* act_tid: 4, , 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: 4, , 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_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_RSS_VNIC >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RSS_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_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,
+	.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
+	},
+	{
+	.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: 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 = "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_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_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 = "stat1_ing_egr",
+	.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 = "stat1_ctr_type",
-	.field_bit_size = 2,
+	.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 = "mod_rec_ptr",
-	.field_bit_size = 28,
+	.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_MODIFY_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff}
+	(BNXT_ULP_RF_IDX_CBS_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_CBS_0 & 0xff}
 	},
 	{
-	.description = "encap_ptr",
-	.field_bit_size = 28,
+	.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_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_EBS_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_EBS_0 & 0xff}
 	},
 	{
-	.description = "src_ptr",
-	.field_bit_size = 28,
+	.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 = "rsvd0",
-	.field_bit_size = 7,
+	.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}
 	},
-	/* act_tid: 4, , table: vnic_interface_rss_config.0 */
-	/* act_tid: 4, , table: cmm_stat_record.0 */
 	{
-	.description = "packet_count",
-	.field_bit_size = 64,
+	.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 = "byte_count",
-	.field_bit_size = 64,
+	.description = "rsvd",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
-	/* act_tid: 4, , table: cmm_full_act_record.0 */
 	{
-	.description = "type",
-	.field_bit_size = 3,
+	.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 = "drop",
-	.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 = "vlan_del_rpt",
-	.field_bit_size = 2,
+	.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 = "vnic_or_vport",
-	.field_bit_size = 11,
+	.description = "sw_meter_profile_id",
+	.field_bit_size = 32,
 	.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_METER_PROF_ID >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 	},
+	/* act_tid: 5, , table: meter_tbl.update_wr */
 	{
-	.description = "dest_op",
-	.field_bit_size = 2,
+	.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 = "decap_func",
-	.field_bit_size = 5,
+	.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 = "mirror",
-	.field_bit_size = 5,
+	.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_BIT,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.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,
+	(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_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	(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 = "meter_ptr",
-	.field_bit_size = 10,
+	.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 = "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 = "stat0_ptr",
-	.field_bit_size = 28,
+	.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_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
+	(BNXT_ULP_RF_IDX_PM_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_PM_0 & 0xff}
 	},
 	{
-	.description = "stat0_ing_egr",
+	.description = "rfc2698",
 	.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_RFC2698_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RFC2698_0 & 0xff}
 	},
 	{
-	.description = "stat0_ctr_type",
-	.field_bit_size = 2,
+	.description = "cbsm",
+	.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_CBSM_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_CBSM_0 & 0xff}
 	},
 	{
-	.description = "stat1_ptr",
-	.field_bit_size = 28,
+	.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 = "stat1_ing_egr",
+	.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 = "stat1_ctr_type",
-	.field_bit_size = 2,
+	.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 = "mod_rec_ptr",
-	.field_bit_size = 28,
+	.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 = "encap_ptr",
-	.field_bit_size = 28,
+	.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_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_EBS_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_EBS_0 & 0xff}
 	},
 	{
-	.description = "src_ptr",
-	.field_bit_size = 28,
+	.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_ZERO
 	},
 	{
-	.description = "rsvd0",
-	.field_bit_size = 7,
+	.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: 6, , table: mod_record.ing_ttl */
 	{
 	.description = "metadata_en",
@@ -8426,6 +9709,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: shared_meter_tbl_cache.rd */
+	{
+	.description = "meter_ptr",
+	.regfile_idx = BNXT_ULP_RF_IDX_METER_PTR_0,
+	.ident_bit_size = 10,
+	.ident_bit_pos = 32
+	},
 	/* act_tid: 1, , table: shared_mirror_record.rd */
 	{
 	.description = "mirror_id",
@@ -8467,6 +9757,173 @@  struct bnxt_ulp_mapper_ident_info ulp_thor2_act_ident_list[] = {
 	.ident_bit_size = 5,
 	.ident_bit_pos = 32
 	},
+	/* act_tid: 5, , table: meter_profile_tbl_cache.rd2 */
+	{
+	.description = "cbnd",
+	.regfile_idx = BNXT_ULP_RF_IDX_CBND_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 37
+	},
+	{
+	.description = "cbs",
+	.regfile_idx = BNXT_ULP_RF_IDX_CBS_0,
+	.ident_bit_size = 12,
+	.ident_bit_pos = 39
+	},
+	{
+	.description = "cbsm",
+	.regfile_idx = BNXT_ULP_RF_IDX_CBSM_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 35
+	},
+	{
+	.description = "cf",
+	.regfile_idx = BNXT_ULP_RF_IDX_CF_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 32
+	},
+	{
+	.description = "cir",
+	.regfile_idx = BNXT_ULP_RF_IDX_CIR_0,
+	.ident_bit_size = 17,
+	.ident_bit_pos = 63
+	},
+	{
+	.description = "ebnd",
+	.regfile_idx = BNXT_ULP_RF_IDX_EBND_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 38
+	},
+	{
+	.description = "ebs",
+	.regfile_idx = BNXT_ULP_RF_IDX_EBS_0,
+	.ident_bit_size = 12,
+	.ident_bit_pos = 51
+	},
+	{
+	.description = "ebsm",
+	.regfile_idx = BNXT_ULP_RF_IDX_EBSM_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 36
+	},
+	{
+	.description = "eir",
+	.regfile_idx = BNXT_ULP_RF_IDX_EIR_0,
+	.ident_bit_size = 17,
+	.ident_bit_pos = 80
+	},
+	{
+	.description = "pm",
+	.regfile_idx = BNXT_ULP_RF_IDX_PM_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 33
+	},
+	{
+	.description = "rfc2698",
+	.regfile_idx = BNXT_ULP_RF_IDX_RFC2698_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 34
+	},
+	/* act_tid: 5, , 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 */
+	{
+	.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 */
+	{
+	.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 */
+	{
+	.description = "cbnd",
+	.regfile_idx = BNXT_ULP_RF_IDX_CBND_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 61
+	},
+	{
+	.description = "cbs",
+	.regfile_idx = BNXT_ULP_RF_IDX_CBS_0,
+	.ident_bit_size = 12,
+	.ident_bit_pos = 63
+	},
+	{
+	.description = "cbsm",
+	.regfile_idx = BNXT_ULP_RF_IDX_CBSM_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 59
+	},
+	{
+	.description = "cf",
+	.regfile_idx = BNXT_ULP_RF_IDX_CF_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 56
+	},
+	{
+	.description = "cir",
+	.regfile_idx = BNXT_ULP_RF_IDX_CIR_0,
+	.ident_bit_size = 17,
+	.ident_bit_pos = 87
+	},
+	{
+	.description = "ebnd",
+	.regfile_idx = BNXT_ULP_RF_IDX_EBND_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 62
+	},
+	{
+	.description = "ebs",
+	.regfile_idx = BNXT_ULP_RF_IDX_EBS_0,
+	.ident_bit_size = 12,
+	.ident_bit_pos = 75
+	},
+	{
+	.description = "ebsm",
+	.regfile_idx = BNXT_ULP_RF_IDX_EBSM_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 60
+	},
+	{
+	.description = "ecn_rmp_en",
+	.regfile_idx = BNXT_ULP_RF_IDX_RF_1,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 55
+	},
+	{
+	.description = "eir",
+	.regfile_idx = BNXT_ULP_RF_IDX_EIR_0,
+	.ident_bit_size = 17,
+	.ident_bit_pos = 104
+	},
+	{
+	.description = "mtr_val",
+	.regfile_idx = BNXT_ULP_RF_IDX_RF_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 54
+	},
+	{
+	.description = "pm",
+	.regfile_idx = BNXT_ULP_RF_IDX_PM_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 57
+	},
+	{
+	.description = "rfc2698",
+	.regfile_idx = BNXT_ULP_RF_IDX_RFC2698_0,
+	.ident_bit_size = 1,
+	.ident_bit_pos = 58
+	},
 	/* act_tid: 8, , table: source_property_cache.rd */
 	{
 	.description = "sp_rec_ptr",
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 d71867ce6d..28c9b47815 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
@@ -54,6 +54,7 @@  struct bnxt_ulp_mapper_tmpl_info ulp_thor2_class_tmpl_list[] = {
 
 struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	{ /* class_tid: 1, , table: port_table.get_def_rd */
+	.description = "port_table.get_def_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE,
@@ -76,6 +77,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 2
 	},
 	{ /* class_tid: 1, , table: l2_cntxt_tcam_cache.def_rd */
+	.description = "l2_cntxt_tcam_cache.def_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.resource_sub_type =
@@ -99,6 +101,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 3
 	},
 	{ /* class_tid: 1, , table: control.check_f1_f2_flow */
+	.description = "control.check_f1_f2_flow",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -111,6 +114,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: tunnel_cache.f1_f2_rd */
+	.description = "tunnel_cache.f1_f2_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_CACHE,
@@ -133,6 +137,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 3
 	},
 	{ /* class_tid: 1, , table: control.tunnel_cache_check */
+	.description = "control.tunnel_cache_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -146,6 +151,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 1, , table: l2_cntxt_tcam.f1_f2_alloc_l2_cntxt */
+	.description = "l2_cntxt_tcam.f1_f2_alloc_l2_cntxt",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_L2CTX,
 	.direction = TF_DIR_RX,
@@ -166,6 +172,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: cmm_stat_record.add_stat_tunnel_cache */
+	.description = "cmm_stat_record.add_stat_tunnel_cache",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -188,6 +195,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* class_tid: 1, , table: tunnel_cache.f1_f2_wr */
+	.description = "tunnel_cache.f1_f2_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_CACHE,
@@ -211,6 +219,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 1, , table: control.check_f2_flow */
+	.description = "control.check_f2_flow",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -223,6 +232,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: control.dmac_calculation */
+	.description = "control.dmac_calculation",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -241,6 +251,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_O_DMAC }
 	},
 	{ /* class_tid: 1, , table: mac_addr_cache.l2_table_rd */
+	.description = "mac_addr_cache.l2_table_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MAC_ADDR_CACHE,
@@ -263,6 +274,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: control.mac_addr_cache_check */
+	.description = "control.mac_addr_cache_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -276,6 +288,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 1, , table: l2_cntxt_tcam.allocate_l2_context */
+	.description = "l2_cntxt_tcam.allocate_l2_context",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_L2CTX,
 	.direction = TF_DIR_RX,
@@ -296,6 +309,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: l2_cntxt_tcam.l2_table_create */
+	.description = "l2_cntxt_tcam.l2_table_create",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_L2CTX,
 	.direction = TF_DIR_RX,
@@ -323,6 +337,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 0
 	},
 	{ /* class_tid: 1, , table: mac_addr_cache.l2_table_wr */
+	.description = "mac_addr_cache.l2_table_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MAC_ADDR_CACHE,
@@ -346,6 +361,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 1, , table: control.check_f1_flow */
+	.description = "control.check_f1_flow",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -358,6 +374,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: cmm_stat_record.f1_flow */
+	.description = "cmm_stat_record.f1_flow",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -379,6 +396,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* class_tid: 1, , table: control.tunnel_ipv6_sip_check */
+	.description = "control.tunnel_ipv6_sip_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.true_message = "reject ipv6 tunnel flow with tunnel source ip",
@@ -392,6 +410,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: control.l2_only_check */
+	.description = "control.l2_only_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.true_message = "Reject due to missing Ethertype for L2 flows",
@@ -405,6 +424,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: control.terminating_flow */
+	.description = "control.terminating_flow",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -423,6 +443,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_TERM_FLOW }
 	},
 	{ /* class_tid: 1, , table: proto_header_cache.rd */
+	.description = "proto_header_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROTO_HEADER,
@@ -445,6 +466,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 7
 	},
 	{ /* class_tid: 1, , table: control.proto_header_cache_miss */
+	.description = "control.proto_header_cache_miss",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -457,6 +479,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: hdr_overlap_cache.overlap_check */
+	.description = "hdr_overlap_cache.overlap_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_HDR_OVERLAP,
@@ -482,6 +505,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 2
 	},
 	{ /* class_tid: 1, , table: control.overlap_miss */
+	.description = "control.overlap_miss",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -495,6 +519,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 1, , table: profile_tcam.allocate_wc_profile */
+	.description = "profile_tcam.allocate_wc_profile",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_PROF_TCAM,
 	.direction = TF_DIR_RX,
@@ -515,6 +540,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: fkb_select.wc_gen_template */
+	.description = "fkb_select.wc_gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_WC_FKB,
 	.direction = TF_DIR_RX,
@@ -534,6 +560,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 172
 	},
 	{ /* class_tid: 1, , table: hdr_overlap_cache.overlap_wr */
+	.description = "hdr_overlap_cache.overlap_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_HDR_OVERLAP,
@@ -560,6 +587,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 3
 	},
 	{ /* class_tid: 1, , table: control.proto_header_rid_alloc */
+	.description = "control.proto_header_rid_alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -573,6 +601,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 1, , table: fkb_select.em_gen_template_alloc */
+	.description = "fkb_select.em_gen_template_alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_EM_FKB,
 	.direction = TF_DIR_RX,
@@ -592,6 +621,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 172
 	},
 	{ /* class_tid: 1, , table: em_key_recipe.alloc_only */
+	.description = "em_key_recipe.alloc_only",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
@@ -612,6 +642,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 1, , table: control.profile_tcam_priority */
+	.description = "control.profile_tcam_priority",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -630,6 +661,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_PROF_TCAM_PRIORITY }
 	},
 	{ /* class_tid: 1, , table: profile_tcam.gen_template */
+	.description = "profile_tcam.gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_PROF_TCAM,
 	.direction = TF_DIR_RX,
@@ -658,6 +690,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: wm_key_recipe.0 */
+	.description = "wm_key_recipe.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_WM,
@@ -682,6 +715,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 1, , table: proto_header_cache.wr */
+	.description = "proto_header_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROTO_HEADER,
@@ -705,6 +739,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 1, , table: em_flow_conflict_cache.rd */
+	.description = "em_flow_conflict_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_EM_FLOW_CONFLICT,
@@ -720,13 +755,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
 	.key_start_idx = 159,
-	.blob_key_bit_size = 74,
-	.key_bit_size = 74,
-	.key_num_fields = 3,
+	.blob_key_bit_size = 78,
+	.key_bit_size = 78,
+	.key_num_fields = 4,
 	.ident_start_idx = 22,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: control.em_flow_conflict_cache_miss */
+	.description = "control.em_flow_conflict_cache_miss",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -740,6 +776,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 1, , table: fkb_select.em_gen_template */
+	.description = "fkb_select.em_gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_EM_FKB,
 	.direction = TF_DIR_RX,
@@ -758,6 +795,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 172
 	},
 	{ /* class_tid: 1, , table: em_key_recipe.0 */
+	.description = "em_key_recipe.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
@@ -772,7 +810,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.key_start_idx = 162,
+	.key_start_idx = 163,
 	.blob_key_bit_size = 0,
 	.key_bit_size = 0,
 	.key_num_fields = 33,
@@ -781,6 +819,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 1, , table: em_flow_conflict_cache.wr */
+	.description = "em_flow_conflict_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_EM_FLOW_CONFLICT,
@@ -795,15 +834,16 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 195,
-	.blob_key_bit_size = 74,
-	.key_bit_size = 74,
-	.key_num_fields = 3,
+	.key_start_idx = 196,
+	.blob_key_bit_size = 78,
+	.key_bit_size = 78,
+	.key_num_fields = 4,
 	.result_start_idx = 568,
 	.result_bit_size = 96,
 	.result_num_fields = 2
 	},
 	{ /* class_tid: 1, , table: control.field_sig_validation */
+	.description = "control.field_sig_validation",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -823,6 +863,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
 	{ /* class_tid: 1, , table: em_normal.ingress_generic_template */
+	.description = "em_normal.ingress_generic_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
 	.resource_type = TF_MEM_INTERNAL,
 	.direction = TF_DIR_RX,
@@ -843,6 +884,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 17
 	},
 	{ /* class_tid: 1, , table: control.em_add_check */
+	.description = "control.em_add_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -855,6 +897,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: wm_normal.ingress_generic_template */
+	.description = "wm_normal.ingress_generic_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_WC,
 	.direction = TF_DIR_RX,
@@ -878,6 +921,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 15
 	},
 	{ /* class_tid: 2, , table: port_table.get_def_rd */
+	.description = "port_table.get_def_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE,
@@ -892,7 +936,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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_NOP,
-	.key_start_idx = 198,
+	.key_start_idx = 200,
 	.blob_key_bit_size = 10,
 	.key_bit_size = 10,
 	.key_num_fields = 1,
@@ -900,6 +944,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 2, , table: l2_cntxt_tcam_cache.def_rd */
+	.description = "l2_cntxt_tcam_cache.def_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.resource_sub_type =
@@ -915,7 +960,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 199,
+	.key_start_idx = 201,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
@@ -923,6 +968,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 2
 	},
 	{ /* class_tid: 2, , table: control.l2_only_check */
+	.description = "control.l2_only_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.true_message = "Reject due to missing Ethertype for L2 flows",
@@ -936,6 +982,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 2, , table: control.tunnel_ipv6_sip_check */
+	.description = "control.tunnel_ipv6_sip_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.true_message = "reject ipv6 tunnel flow with tunnel source ip or source mac",
@@ -949,6 +996,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 2, , table: control.terminating_flow */
+	.description = "control.terminating_flow",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -967,6 +1015,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_TERM_FLOW }
 	},
 	{ /* class_tid: 2, , table: proto_header_cache.rd */
+	.description = "proto_header_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROTO_HEADER,
@@ -981,7 +1030,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 200,
+	.key_start_idx = 202,
 	.blob_key_bit_size = 76,
 	.key_bit_size = 76,
 	.key_num_fields = 3,
@@ -989,6 +1038,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 7
 	},
 	{ /* class_tid: 2, , table: control.proto_header_cache_miss */
+	.description = "control.proto_header_cache_miss",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1001,6 +1051,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 2, , table: hdr_overlap_cache.overlap_check */
+	.description = "hdr_overlap_cache.overlap_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_HDR_OVERLAP,
@@ -1015,17 +1066,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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_NOP,
-	.key_start_idx = 203,
+	.key_start_idx = 205,
 	.blob_key_bit_size = 12,
 	.key_bit_size = 12,
 	.key_num_fields = 2,
-	.partial_key_start_idx = 205,
+	.partial_key_start_idx = 207,
 	.partial_key_num_fields = 1,
 	.partial_key_bit_size = 64,
 	.ident_start_idx = 33,
 	.ident_nums = 2
 	},
 	{ /* class_tid: 2, , table: control.overlap_miss */
+	.description = "control.overlap_miss",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1039,6 +1091,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 2, , table: profile_tcam.allocate_wc_profile */
+	.description = "profile_tcam.allocate_wc_profile",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.direction = TF_DIR_TX,
@@ -1059,6 +1112,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 2, , table: fkb_select.wc_gen_template */
+	.description = "fkb_select.wc_gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_WC_FKB,
 	.direction = TF_DIR_TX,
@@ -1078,6 +1132,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 172
 	},
 	{ /* class_tid: 2, , table: hdr_overlap_cache.overlap_wr */
+	.description = "hdr_overlap_cache.overlap_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_HDR_OVERLAP,
@@ -1092,11 +1147,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 206,
+	.key_start_idx = 208,
 	.blob_key_bit_size = 12,
 	.key_bit_size = 12,
 	.key_num_fields = 2,
-	.partial_key_start_idx = 208,
+	.partial_key_start_idx = 210,
 	.partial_key_num_fields = 1,
 	.partial_key_bit_size = 64,
 	.result_start_idx = 774,
@@ -1104,6 +1159,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 3
 	},
 	{ /* class_tid: 2, , table: control.proto_header_rid_alloc */
+	.description = "control.proto_header_rid_alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1117,6 +1173,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 2, , table: fkb_select.em_gen_template_alloc */
+	.description = "fkb_select.em_gen_template_alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_EM_FKB,
 	.direction = TF_DIR_TX,
@@ -1136,6 +1193,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 172
 	},
 	{ /* class_tid: 2, , table: em_key_recipe.alloc_only */
+	.description = "em_key_recipe.alloc_only",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
@@ -1156,6 +1214,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 2, , table: control.profile_tcam_priority */
+	.description = "control.profile_tcam_priority",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1174,6 +1233,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_PROF_TCAM_PRIORITY }
 	},
 	{ /* class_tid: 2, , table: profile_tcam.gen_template */
+	.description = "profile_tcam.gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_PROF_TCAM,
 	.direction = TF_DIR_TX,
@@ -1192,7 +1252,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,
-	.key_start_idx = 209,
+	.key_start_idx = 211,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
 	.key_num_fields = 66,
@@ -1203,6 +1263,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 2, , table: wm_key_recipe.0 */
+	.description = "wm_key_recipe.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_WM,
@@ -1218,7 +1279,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,
-	.key_start_idx = 275,
+	.key_start_idx = 277,
 	.blob_key_bit_size = 0,
 	.key_bit_size = 0,
 	.key_num_fields = 33,
@@ -1227,6 +1288,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 2, , table: proto_header_cache.wr */
+	.description = "proto_header_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROTO_HEADER,
@@ -1241,7 +1303,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 308,
+	.key_start_idx = 310,
 	.blob_key_bit_size = 76,
 	.key_bit_size = 76,
 	.key_num_fields = 3,
@@ -1250,6 +1312,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 2, , table: em_flow_conflict_cache.rd */
+	.description = "em_flow_conflict_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_EM_FLOW_CONFLICT,
@@ -1264,14 +1327,15 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 311,
-	.blob_key_bit_size = 74,
-	.key_bit_size = 74,
-	.key_num_fields = 3,
+	.key_start_idx = 313,
+	.blob_key_bit_size = 78,
+	.key_bit_size = 78,
+	.key_num_fields = 4,
 	.ident_start_idx = 37,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 2, , table: control.em_flow_conflict_cache_miss */
+	.description = "control.em_flow_conflict_cache_miss",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1285,6 +1349,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 2, , table: fkb_select.em_gen_template */
+	.description = "fkb_select.em_gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_EM_FKB,
 	.direction = TF_DIR_TX,
@@ -1303,6 +1368,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 172
 	},
 	{ /* class_tid: 2, , table: em_key_recipe.0 */
+	.description = "em_key_recipe.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
@@ -1317,7 +1383,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.key_start_idx = 314,
+	.key_start_idx = 317,
 	.blob_key_bit_size = 0,
 	.key_bit_size = 0,
 	.key_num_fields = 33,
@@ -1326,6 +1392,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 2, , table: em_flow_conflict_cache.wr */
+	.description = "em_flow_conflict_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_EM_FLOW_CONFLICT,
@@ -1340,15 +1407,16 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 347,
-	.blob_key_bit_size = 74,
-	.key_bit_size = 74,
-	.key_num_fields = 3,
+	.key_start_idx = 350,
+	.blob_key_bit_size = 78,
+	.key_bit_size = 78,
+	.key_num_fields = 4,
 	.result_start_idx = 1139,
 	.result_bit_size = 96,
 	.result_num_fields = 2
 	},
 	{ /* class_tid: 2, , table: control.field_sig_validation */
+	.description = "control.field_sig_validation",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1368,6 +1436,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
 	{ /* class_tid: 2, , table: em_normal.egress_generic_template */
+	.description = "em_normal.egress_generic_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
 	.resource_type = TF_MEM_INTERNAL,
 	.direction = TF_DIR_TX,
@@ -1388,6 +1457,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 17
 	},
 	{ /* class_tid: 2, , table: control.em_add_check */
+	.description = "control.em_add_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1400,6 +1470,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 2, , table: wm_normal.egress_generic_template */
+	.description = "wm_normal.egress_generic_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_WC,
 	.direction = TF_DIR_TX,
@@ -1423,6 +1494,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 15
 	},
 	{ /* class_tid: 3, , table: metadata_record.act_rx_wr */
+	.description = "metadata_record.act_rx_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_METADATA_ACT,
 	.resource_sub_type =
@@ -1444,6 +1516,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* class_tid: 3, , table: metadata_record.prof_rx_wr */
+	.description = "metadata_record.prof_rx_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_METADATA_PROF,
 	.resource_sub_type =
@@ -1465,6 +1538,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* class_tid: 3, , table: metadata_record.lkup_rx_wr */
+	.description = "metadata_record.lkup_rx_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_METADATA_LKUP,
 	.resource_sub_type =
@@ -1486,6 +1560,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* class_tid: 3, , table: metadata_record.act_tx_wr */
+	.description = "metadata_record.act_tx_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_METADATA_ACT,
 	.resource_sub_type =
@@ -1507,6 +1582,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* class_tid: 3, , table: metadata_record.prof_tx_wr */
+	.description = "metadata_record.prof_tx_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_METADATA_PROF,
 	.resource_sub_type =
@@ -1528,6 +1604,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* class_tid: 3, , table: metadata_record.lkup_tx_wr */
+	.description = "metadata_record.lkup_tx_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_METADATA_LKUP,
 	.resource_sub_type =
@@ -1549,6 +1626,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* class_tid: 3, , table: table_scope_cache.tsid_ing_rd */
+	.description = "table_scope_cache.tsid_ing_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TABLE_SCOPE_CACHE,
@@ -1563,7 +1641,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 350,
+	.key_start_idx = 354,
 	.blob_key_bit_size = 6,
 	.key_bit_size = 6,
 	.key_num_fields = 2,
@@ -1571,6 +1649,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 2
 	},
 	{ /* class_tid: 3, , table: control.ts_ing_rd_check */
+	.description = "control.ts_ing_rd_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -1584,6 +1663,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 3, , table: cmm_full_act_record.ing_default_0 */
+	.description = "cmm_full_act_record.ing_default_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1606,6 +1686,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 18
 	},
 	{ /* class_tid: 3, , table: cmm_full_act_record.ing_default_1 */
+	.description = "cmm_full_act_record.ing_default_1",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1628,6 +1709,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 18
 	},
 	{ /* class_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,
 	.execute_info = {
@@ -1647,6 +1729,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR }
 	},
 	{ /* class_tid: 3, , table: profile_tcam_bypass.ing_catch_all */
+	.description = "profile_tcam_bypass.ing_catch_all",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_PROF_TCAM,
 	.direction = TF_DIR_RX,
@@ -1664,7 +1747,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,
-	.key_start_idx = 352,
+	.key_start_idx = 356,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
 	.key_num_fields = 66,
@@ -1675,6 +1758,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 3, , table: table_scope_cache.tsid_ing_wr */
+	.description = "table_scope_cache.tsid_ing_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TABLE_SCOPE_CACHE,
@@ -1689,7 +1773,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 418,
+	.key_start_idx = 422,
 	.blob_key_bit_size = 6,
 	.key_bit_size = 6,
 	.key_num_fields = 2,
@@ -1698,6 +1782,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 3, , table: port_table.ing_wr */
+	.description = "port_table.ing_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE,
@@ -1712,7 +1797,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 420,
+	.key_start_idx = 424,
 	.blob_key_bit_size = 10,
 	.key_bit_size = 10,
 	.key_num_fields = 1,
@@ -1721,6 +1806,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 6
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam_cache.ing_rd */
+	.description = "l2_cntxt_tcam_cache.ing_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -1735,7 +1821,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 421,
+	.key_start_idx = 425,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
@@ -1743,6 +1829,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 3, , table: control.ing_rd_check */
+	.description = "control.ing_rd_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -1756,6 +1843,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam.svif_ing */
+	.description = "l2_cntxt_tcam.svif_ing",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_L2CTX,
 	.direction = TF_DIR_RX,
@@ -1772,7 +1860,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,
-	.key_start_idx = 422,
+	.key_start_idx = 426,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
 	.key_num_fields = 24,
@@ -1783,6 +1871,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam_cache.ing_wr */
+	.description = "l2_cntxt_tcam_cache.ing_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -1797,7 +1886,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 446,
+	.key_start_idx = 450,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
@@ -1806,6 +1895,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 3, , table: cmm_full_act_record.throw_away_egr */
+	.description = "cmm_full_act_record.throw_away_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1828,6 +1918,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.encap_num_fields = 0
 	},
 	{ /* class_tid: 3, , table: cmm_full_act_record.egr_default_0 */
+	.description = "cmm_full_act_record.egr_default_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1850,6 +1941,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.encap_num_fields = 0
 	},
 	{ /* class_tid: 3, , table: port_table.egr_wr_0 */
+	.description = "port_table.egr_wr_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE,
@@ -1871,7 +1963,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
 		.func_opr2 = 32,
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR },
-	.key_start_idx = 447,
+	.key_start_idx = 451,
 	.blob_key_bit_size = 10,
 	.key_bit_size = 10,
 	.key_num_fields = 1,
@@ -1880,6 +1972,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 6
 	},
 	{ /* class_tid: 3, , table: ilt_tbl.egr */
+	.description = "ilt_tbl.egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
 	.resource_type = CFA_RSUBTYPE_IF_TBL_ILT,
 	.direction = TF_DIR_TX,
@@ -1898,6 +1991,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 14
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam_cache.no_vfr_egr_rd */
+	.description = "l2_cntxt_tcam_cache.no_vfr_egr_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -1912,7 +2006,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 448,
+	.key_start_idx = 452,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
@@ -1920,6 +2014,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 0
 	},
 	{ /* class_tid: 3, , table: control.non_vfr_egr_rd_check */
+	.description = "control.non_vfr_egr_rd_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -1933,6 +2028,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam.non_vfr_svif_egr */
+	.description = "l2_cntxt_tcam.non_vfr_svif_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_L2CTX,
 	.direction = TF_DIR_TX,
@@ -1949,7 +2045,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,
-	.key_start_idx = 449,
+	.key_start_idx = 453,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
 	.key_num_fields = 24,
@@ -1960,6 +2056,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 2
 	},
 	{ /* class_tid: 3, , table: profile_tcam_bypass.non_vfr_egr_catch_all */
+	.description = "profile_tcam_bypass.non_vfr_egr_catch_all",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_PROF_TCAM,
 	.direction = TF_DIR_TX,
@@ -1977,7 +2074,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,
-	.key_start_idx = 473,
+	.key_start_idx = 477,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
 	.key_num_fields = 66,
@@ -1988,6 +2085,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 0
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam_cache.non_vfr_egr_wr */
+	.description = "l2_cntxt_tcam_cache.non_vfr_egr_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -2002,7 +2100,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 539,
+	.key_start_idx = 543,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
@@ -2011,6 +2109,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 3, , table: table_scope_cache.tsid_vfr_rd */
+	.description = "table_scope_cache.tsid_vfr_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TABLE_SCOPE_CACHE,
@@ -2025,7 +2124,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 540,
+	.key_start_idx = 544,
 	.blob_key_bit_size = 6,
 	.key_bit_size = 6,
 	.key_num_fields = 2,
@@ -2033,6 +2132,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 3, , table: control.tsid_vfr_rd_check */
+	.description = "control.tsid_vfr_rd_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -2046,6 +2146,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 3, , table: mod_record.svif2meta */
+	.description = "mod_record.svif2meta",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -2068,6 +2169,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.encap_num_fields = 20
 	},
 	{ /* class_tid: 3, , table: control.mod_handle_to_offset_svif2meta */
+	.description = "control.mod_handle_to_offset_svif2meta",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -2087,6 +2189,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
 	},
 	{ /* class_tid: 3, , table: cmm_full_act_record.ing_vf2vf */
+	.description = "cmm_full_act_record.ing_vf2vf",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -2109,6 +2212,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 18
 	},
 	{ /* class_tid: 3, , table: control.act_handle_to_offset_ing_vf2vf */
+	.description = "control.act_handle_to_offset_ing_vf2vf",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -2128,6 +2232,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR }
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam.vf2vf_ing */
+	.description = "l2_cntxt_tcam.vf2vf_ing",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_L2CTX,
 	.direction = TF_DIR_RX,
@@ -2144,7 +2249,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,
-	.key_start_idx = 542,
+	.key_start_idx = 546,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
 	.key_num_fields = 24,
@@ -2155,6 +2260,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 3, , table: table_scope_cache.tsid_vfr_wr */
+	.description = "table_scope_cache.tsid_vfr_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TABLE_SCOPE_CACHE,
@@ -2169,7 +2275,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 566,
+	.key_start_idx = 570,
 	.blob_key_bit_size = 6,
 	.key_bit_size = 6,
 	.key_num_fields = 2,
@@ -2178,6 +2284,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 4, , table: table_scope_cache.tsid_vfr_egr_rd */
+	.description = "table_scope_cache.tsid_vfr_egr_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TABLE_SCOPE_CACHE,
@@ -2192,7 +2299,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 568,
+	.key_start_idx = 572,
 	.blob_key_bit_size = 6,
 	.key_bit_size = 6,
 	.key_num_fields = 2,
@@ -2200,6 +2307,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 3
 	},
 	{ /* class_tid: 4, , table: control.tsid_vfr_egr_check */
+	.description = "control.tsid_vfr_egr_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2213,6 +2321,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 4, , table: mod_record.meta2uplink */
+	.description = "mod_record.meta2uplink",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -2242,6 +2351,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.encap_num_fields = 20
 	},
 	{ /* class_tid: 4, , table: control.mod_handle_to_offset_meta2uplink */
+	.description = "control.mod_handle_to_offset_meta2uplink",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2261,6 +2371,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
 	},
 	{ /* class_tid: 4, , table: cmm_full_act_record.endpoint_def_act */
+	.description = "cmm_full_act_record.endpoint_def_act",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -2283,6 +2394,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 18
 	},
 	{ /* class_tid: 4, , table: control.act_handle_to_offset_endpoint_def_act */
+	.description = "control.act_handle_to_offset_endpoint_def_act",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2302,6 +2414,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR }
 	},
 	{ /* class_tid: 4, , table: profile_tcam_bypass.tsid_vfr_egr_catch_all */
+	.description = "profile_tcam_bypass.tsid_vfr_egr_catch_all",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_PROF_TCAM,
 	.direction = TF_DIR_TX,
@@ -2319,7 +2432,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,
-	.key_start_idx = 570,
+	.key_start_idx = 574,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
 	.key_num_fields = 66,
@@ -2330,6 +2443,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 4, , table: table_scope_cache.tsid_vfr_egr_wr */
+	.description = "table_scope_cache.tsid_vfr_egr_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TABLE_SCOPE_CACHE,
@@ -2344,7 +2458,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 636,
+	.key_start_idx = 640,
 	.blob_key_bit_size = 6,
 	.key_bit_size = 6,
 	.key_num_fields = 2,
@@ -2353,6 +2467,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam_cache.endpoint_def_egr_rd */
+	.description = "l2_cntxt_tcam_cache.endpoint_def_egr_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.resource_sub_type =
@@ -2368,7 +2483,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 638,
+	.key_start_idx = 642,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
@@ -2376,6 +2491,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 4, , table: control.endpoint_def_egr_rd_check */
+	.description = "control.endpoint_def_egr_rd_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2389,6 +2505,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam.vf2vf_egr */
+	.description = "l2_cntxt_tcam.vf2vf_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = CFA_RSUBTYPE_TCAM_L2CTX,
 	.direction = TF_DIR_TX,
@@ -2405,7 +2522,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,
-	.key_start_idx = 639,
+	.key_start_idx = 643,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
 	.key_num_fields = 24,
@@ -2416,6 +2533,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam_cache.endpoint_def_egr_wr */
+	.description = "l2_cntxt_tcam_cache.endpoint_def_egr_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.resource_sub_type =
@@ -2431,7 +2549,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 663,
+	.key_start_idx = 667,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
@@ -2440,6 +2558,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 4, , table: port_table.egr_wr_0 */
+	.description = "port_table.egr_wr_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE,
@@ -2454,7 +2573,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_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 = 664,
+	.key_start_idx = 668,
 	.blob_key_bit_size = 10,
 	.key_bit_size = 10,
 	.key_num_fields = 1,
@@ -2463,6 +2582,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 6
 	},
 	{ /* class_tid: 4, , table: mod_record.vfr2vf */
+	.description = "mod_record.vfr2vf",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -2491,6 +2611,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.encap_num_fields = 20
 	},
 	{ /* class_tid: 4, , table: control.mod_handle_to_offset_vfr2vf */
+	.description = "control.mod_handle_to_offset_vfr2vf",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2510,6 +2631,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
 	},
 	{ /* class_tid: 4, , table: cmm_full_act_record.vfr2vf_act */
+	.description = "cmm_full_act_record.vfr2vf_act",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -2531,6 +2653,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.result_num_fields = 18
 	},
 	{ /* class_tid: 4, , table: control.act_handle_to_offset_vfr2vf_act */
+	.description = "control.act_handle_to_offset_vfr2vf_act",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2550,6 +2673,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
 	},
 	{ /* class_tid: 4, , table: control.bd_act_set */
+	.description = "control.bd_act_set",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2569,6 +2693,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
 	{ /* class_tid: 4, , table: control.vfr_mark_set */
+	.description = "control.vfr_mark_set",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -20763,6 +20888,20 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_class_key_info_list[] = {
 		}
 	},
 	{
+	.field_info_mask = {
+		.description = "group_metadata",
+		.field_bit_size = 4,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		},
+	.field_info_spec = {
+		.description = "group_metadata",
+		.field_bit_size = 4,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		}
+	},
+	{
 	.field_info_mask = {
 		.description = "prof_func_id",
 		.field_bit_size = 8,
@@ -21961,6 +22100,20 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_class_key_info_list[] = {
 		}
 	},
 	{
+	.field_info_mask = {
+		.description = "group_metadata",
+		.field_bit_size = 4,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		},
+	.field_info_spec = {
+		.description = "group_metadata",
+		.field_bit_size = 4,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		}
+	},
+	{
 	.field_info_mask = {
 		.description = "prof_func_id",
 		.field_bit_size = 8,
@@ -24930,6 +25083,20 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_class_key_info_list[] = {
 		}
 	},
 	{
+	.field_info_mask = {
+		.description = "group_metadata",
+		.field_bit_size = 4,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		},
+	.field_info_spec = {
+		.description = "group_metadata",
+		.field_bit_size = 4,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		}
+	},
+	{
 	.field_info_mask = {
 		.description = "prof_func_id",
 		.field_bit_size = 8,
@@ -26128,6 +26295,20 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_class_key_info_list[] = {
 		}
 	},
 	{
+	.field_info_mask = {
+		.description = "group_metadata",
+		.field_bit_size = 4,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		},
+	.field_info_spec = {
+		.description = "group_metadata",
+		.field_bit_size = 4,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		}
+	},
+	{
 	.field_info_mask = {
 		.description = "prof_func_id",
 		.field_bit_size = 8,
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 cb13af149e..b8eb5e47f8 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
@@ -114,6 +114,7 @@  struct bnxt_ulp_mapper_tmpl_info ulp_thor_act_tmpl_list[] = {
 
 struct bnxt_ulp_mapper_tbl_info ulp_thor_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,
@@ -136,6 +137,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 = {
@@ -149,6 +151,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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,
@@ -169,6 +172,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 = {
@@ -189,6 +193,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.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,
@@ -212,6 +217,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_METER_TBL_CACHE,
@@ -234,6 +240,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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,
 	.execute_info = {
@@ -246,6 +253,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* act_tid: 1, , 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 =
@@ -269,6 +277,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 1, , table: control.mirror */
+	.description = "control.mirror",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -281,6 +290,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -302,6 +312,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* act_tid: 1, , 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 =
@@ -323,6 +334,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 29
 	},
 	{ /* act_tid: 1, , 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 =
@@ -344,6 +356,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 22
 	},
 	{ /* act_tid: 1, , 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 =
@@ -365,6 +378,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 17
 	},
 	{ /* 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 =
@@ -386,6 +400,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 13
 	},
 	{ /* act_tid: 2, , table: control.delete_chk */
+	.description = "control.delete_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -398,6 +413,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* act_tid: 2, , 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,
 	.resource_sub_type =
@@ -422,6 +438,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 2, , table: control.mirror_del_exist_chk */
+	.description = "control.mirror_del_exist_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -434,6 +451,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* act_tid: 2, , table: control.mirror_ref_cnt_chk */
+	.description = "control.mirror_ref_cnt_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -454,6 +472,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
 	{ /* act_tid: 2, , table: control.create */
+	.description = "control.create",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -467,6 +486,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* act_tid: 2, , table: mirror_tbl.alloc */
+	.description = "mirror_tbl.alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
 	.resource_sub_type =
@@ -489,6 +509,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* act_tid: 2, , 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 =
@@ -511,6 +532,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* act_tid: 2, , 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 =
@@ -534,6 +556,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 0
 	},
 	{ /* act_tid: 2, , table: mirror_tbl.wr */
+	.description = "mirror_tbl.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
 	.resource_sub_type =
@@ -555,6 +578,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* act_tid: 2, , 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,
 	.resource_sub_type =
@@ -581,6 +605,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -604,6 +629,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 3, , table: control.mirror */
+	.description = "control.mirror",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -616,6 +642,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -636,6 +663,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* 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 =
@@ -657,6 +685,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -678,6 +707,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -698,6 +728,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -721,6 +752,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 = {
@@ -733,6 +765,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -754,6 +787,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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,
@@ -773,6 +807,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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,
@@ -792,6 +827,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -814,6 +850,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -836,6 +873,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 = {
@@ -848,6 +886,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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,
@@ -871,6 +910,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 = {
@@ -884,6 +924,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* act_tid: 5, , 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,
 	.resource_sub_type =
@@ -905,6 +946,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 11
 	},
 	{ /* 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 =
@@ -930,6 +972,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* 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,
@@ -953,6 +996,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 = {
@@ -966,6 +1010,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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,
@@ -989,6 +1034,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* 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 = {
@@ -1001,6 +1047,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 = TF_TBL_TYPE_METER_INST,
 	.resource_sub_type =
@@ -1022,6 +1069,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* 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,
@@ -1046,6 +1094,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 3
 	},
 	{ /* act_tid: 5, , table: control.delete_check */
+	.description = "control.delete_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -1058,6 +1107,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* act_tid: 5, , 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 =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_METER_PROFILE_TBL_CACHE,
@@ -1081,6 +1131,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 5, , 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,
 	.execute_info = {
@@ -1101,6 +1152,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
 	{ /* act_tid: 5, , 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 =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_METER_TBL_CACHE,
@@ -1124,6 +1176,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 5, , 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,
 	.execute_info = {
@@ -1144,6 +1197,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
 	{ /* act_tid: 5, , table: control.update_check */
+	.description = "control.update_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
@@ -1156,6 +1210,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* act_tid: 5, , 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 =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_METER_TBL_CACHE,
@@ -1179,6 +1234,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 5, , 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,
 	.resource_sub_type =
@@ -1199,6 +1255,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_bit_size = 64
 	},
 	{ /* act_tid: 5, , 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,
 	.resource_sub_type =
@@ -1219,6 +1276,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* act_tid: 6, , 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,
@@ -1241,6 +1299,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 6, , table: control.flow_chain */
+	.description = "control.flow_chain",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1254,6 +1313,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* act_tid: 6, , 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,
@@ -1274,6 +1334,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 0
 	},
 	{ /* act_tid: 6, , table: control.metadata_cal */
+	.description = "control.metadata_cal",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1294,6 +1355,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_JUMP_META }
 	},
 	{ /* act_tid: 6, , 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,
@@ -1317,6 +1379,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -1340,6 +1403,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 = {
@@ -1352,6 +1416,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* act_tid: 6, , 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 =
@@ -1372,6 +1437,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -1393,6 +1459,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -1414,6 +1481,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -1435,6 +1503,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -1455,6 +1524,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -1475,6 +1545,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
 	.resource_sub_type =
@@ -1498,6 +1569,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 7, , table: control.mirror */
+	.description = "control.mirror",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1510,6 +1582,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -1530,6 +1603,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* act_tid: 7, , 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 =
@@ -1551,6 +1625,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 31
 	},
 	{ /* act_tid: 7, , 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 =
@@ -1572,6 +1647,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -1592,6 +1668,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 17
 	},
 	{ /* 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 =
@@ -1615,6 +1692,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 8, , table: control.mirror */
+	.description = "control.mirror",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1627,6 +1705,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -1647,6 +1726,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* act_tid: 8, , 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_GENERIC_TABLE_SOURCE_PROPERTY_CACHE,
@@ -1669,6 +1749,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 8, , table: control.sp_rec_v4 */
+	.description = "control.sp_rec_v4",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1682,6 +1763,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* act_tid: 8, , 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,
 	.resource_sub_type =
@@ -1705,6 +1787,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 3
 	},
 	{ /* act_tid: 8, , 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,
@@ -1728,6 +1811,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 8, , table: source_property_ipv6_cache.rd */
+	.description = "source_property_ipv6_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SOURCE_PROPERTY_IPV6_CACHE,
@@ -1750,6 +1834,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 8, , table: control.sp_rec_v6 */
+	.description = "control.sp_rec_v6",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1763,6 +1848,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* act_tid: 8, , 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,
 	.resource_sub_type =
@@ -1785,6 +1871,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 3
 	},
 	{ /* act_tid: 8, , table: source_property_ipv6_cache.wr */
+	.description = "source_property_ipv6_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SOURCE_PROPERTY_IPV6_CACHE,
@@ -1808,6 +1895,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 8, , table: mod_record.ing_l2write */
+	.description = "mod_record.ing_l2write",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
 	.resource_sub_type =
@@ -1829,6 +1917,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 18
 	},
 	{ /* act_tid: 8, , 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,
@@ -1851,6 +1940,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 8, , 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_IPV6_REC_CACHE,
@@ -1873,6 +1963,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 8, , table: control.vxlan_v6_encap */
+	.description = "control.vxlan_v6_encap",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -1886,6 +1977,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -1908,6 +2000,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 25
 	},
 	{ /* act_tid: 8, , 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,
 	.resource_sub_type =
@@ -1929,6 +2022,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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,
@@ -1952,6 +2046,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 8, , 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,
@@ -1975,6 +2070,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 8, , table: geneve_encap_rec_cache.rd */
+	.description = "geneve_encap_rec_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GENEVE_ENCAP_REC_CACHE,
@@ -1997,6 +2093,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 8, , table: control.geneve_encap */
+	.description = "control.geneve_encap",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2010,6 +2107,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* act_tid: 8, , 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,
 	.resource_sub_type =
@@ -2032,6 +2130,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 31
 	},
 	{ /* act_tid: 8, , 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 =
@@ -2053,6 +2152,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 29
 	},
 	{ /* act_tid: 8, , 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,
@@ -2076,6 +2176,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 2
 	},
 	{ /* act_tid: 8, , 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 =
@@ -2097,6 +2198,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 17
 	},
 	{ /* 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,
 	.resource_sub_type =
@@ -2120,6 +2222,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 9, , table: control.mirror */
+	.description = "control.mirror",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2132,6 +2235,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.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 =
@@ -2152,6 +2256,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* 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 =
@@ -2173,6 +2278,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 20
 	},
 	{ /* 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 =
@@ -2193,6 +2299,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 17
 	},
 	{ /* act_tid: 10, , table: control.delete_chk */
+	.description = "control.delete_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2205,6 +2312,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* act_tid: 10, , 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,
 	.resource_sub_type =
@@ -2229,6 +2337,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_nums = 1
 	},
 	{ /* act_tid: 10, , table: control.mirror_del_exist_chk */
+	.description = "control.mirror_del_exist_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2241,6 +2350,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* act_tid: 10, , table: control.mirror_ref_cnt_chk */
+	.description = "control.mirror_ref_cnt_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2261,6 +2371,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
 	{ /* act_tid: 10, , table: control.create */
+	.description = "control.create",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
@@ -2274,6 +2385,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* act_tid: 10, , table: mirror_tbl.alloc */
+	.description = "mirror_tbl.alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
 	.resource_sub_type =
@@ -2296,6 +2408,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* act_tid: 10, , 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 =
@@ -2318,6 +2431,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 1
 	},
 	{ /* act_tid: 10, , 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 =
@@ -2340,6 +2454,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.encap_num_fields = 20
 	},
 	{ /* act_tid: 10, , 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 =
@@ -2362,6 +2477,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 17
 	},
 	{ /* act_tid: 10, , table: mirror_tbl.wr */
+	.description = "mirror_tbl.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
 	.resource_sub_type =
@@ -2383,6 +2499,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.result_num_fields = 5
 	},
 	{ /* act_tid: 10, , 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,
 	.resource_sub_type =
diff --git a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c
index 4a56aa5751..30be90bbd8 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c
@@ -13,7 +13,7 @@  struct bnxt_ulp_mapper_tmpl_info ulp_thor_class_tmpl_list[] = {
 	/* class_tid: 1, ingress */
 	[1] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 51,
+	.num_tbls = 72,
 	.start_tbl_idx = 0,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
@@ -23,37 +23,38 @@  struct bnxt_ulp_mapper_tmpl_info ulp_thor_class_tmpl_list[] = {
 	/* class_tid: 2, egress */
 	[2] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 33,
-	.start_tbl_idx = 51,
+	.num_tbls = 46,
+	.start_tbl_idx = 72,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 1555,
+		.cond_start_idx = 1936,
 		.cond_nums = 0 }
 	},
 	/* class_tid: 3, ingress */
 	[3] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 17,
-	.start_tbl_idx = 84,
+	.num_tbls = 22,
+	.start_tbl_idx = 118,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 3087,
+		.cond_start_idx = 3817,
 		.cond_nums = 0 }
 	},
 	/* class_tid: 4, egress */
 	[4] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
 	.num_tbls = 35,
-	.start_tbl_idx = 101,
+	.start_tbl_idx = 140,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 3089,
+		.cond_start_idx = 3824,
 		.cond_nums = 0 }
 	}
 };
 
 struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	{ /* class_tid: 1, , table: port_table.rd */
+	.description = "port_table.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE,
@@ -75,7 +76,161 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.ident_start_idx = 0,
 	.ident_nums = 3
 	},
+	{ /* class_tid: 1, , table: control.vxlan_ip_check */
+	.description = "control.vxlan_ip_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.false_message = "invalid vxlan header combination",
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1023,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_LIST_OR,
+		.cond_start_idx = 0,
+		.cond_nums = 3 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* class_tid: 1, , table: tunnel_gparse_cache.custom_tunnel_rd */
+	.description = "tunnel_gparse_cache.custom_tunnel_rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_CACHE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 7,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 8,
+		.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 = 1,
+	.blob_key_bit_size = 8,
+	.key_bit_size = 8,
+	.key_num_fields = 1,
+	.ident_start_idx = 3,
+	.ident_nums = 2
+	},
+	{ /* class_tid: 1, , table: control.custom_tunnel */
+	.description = "control.custom_tunnel",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.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 = 15,
+		.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
+	},
+	{ /* class_tid: 1, , table: control.custom_tunnel_port_check_value */
+	.description = "control.custom_tunnel_port_check_value",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.false_message = "port does not match configured custom tunnel port",
+	.execute_info = {
+		.cond_true_goto  = 5,
+		.cond_false_goto = 1023,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 16,
+		.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_EQ,
+		.func_src1 = BNXT_ULP_FUNC_SRC_COMP_FIELD,
+		.func_opr1 = BNXT_ULP_CF_IDX_TUNNEL_PORT,
+		.func_src2 = BNXT_ULP_FUNC_SRC_REGFILE,
+		.func_opr2 = BNXT_ULP_RF_IDX_TUNNEL_PORT,
+		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
+	},
+	{ /* class_tid: 1, , table: cust_tunnel.configure_vxlan_port */
+	.description = "cust_tunnel.configure_vxlan_port",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GLOBAL_REGISTER_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 3,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_LIST_AND,
+		.cond_start_idx = 3,
+		.cond_nums = 1 },
+	.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 = 16,
+	.result_num_fields = 1
+	},
+	{ /* class_tid: 1, , table: cust_tunnel.configure_vxlan_ip_port */
+	.description = "cust_tunnel.configure_vxlan_ip_port",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GLOBAL_REGISTER_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN_IP,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 2,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_LIST_AND,
+		.cond_start_idx = 4,
+		.cond_nums = 1 },
+	.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 = 1,
+	.result_bit_size = 16,
+	.result_num_fields = 1
+	},
+	{ /* class_tid: 1, , table: cust_tunnel.configure_geneve_port */
+	.description = "cust_tunnel.configure_geneve_port",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GLOBAL_REGISTER_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_GENEVE,
+	.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 = 21,
+		.cond_nums = 1 },
+	.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 = 2,
+	.result_bit_size = 16,
+	.result_num_fields = 1
+	},
+	{ /* class_tid: 1, , table: tunnel_gparse_cache.custom_tunnel_wr */
+	.description = "tunnel_gparse_cache.custom_tunnel_wr",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_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 = 22,
+		.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 = 2,
+	.blob_key_bit_size = 8,
+	.key_bit_size = 8,
+	.key_num_fields = 1,
+	.result_start_idx = 3,
+	.result_bit_size = 80,
+	.result_num_fields = 3
+	},
 	{ /* class_tid: 1, , table: l2_cntxt_tcam_cache.rd */
+	.description = "l2_cntxt_tcam_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -84,32 +239,34 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 0,
+		.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_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 = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.ident_start_idx = 3,
+	.ident_start_idx = 5,
 	.ident_nums = 3
 	},
 	{ /* class_tid: 1, , table: control.check_f1_f2_flow */
+	.description = "control.check_f1_f2_flow",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 6,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 0,
+		.cond_start_idx = 27,
 		.cond_nums = 2 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: tunnel_cache.f1_f2_rd */
+	.description = "tunnel_cache.f1_f2_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_CACHE,
@@ -118,33 +275,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 2,
+		.cond_start_idx = 29,
 		.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 = 2,
+	.key_start_idx = 4,
 	.blob_key_bit_size = 19,
 	.key_bit_size = 19,
 	.key_num_fields = 2,
-	.ident_start_idx = 6,
+	.ident_start_idx = 8,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: control.tunnel_cache_check */
+	.description = "control.tunnel_cache_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.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 = 2,
+		.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
 	},
 	{ /* class_tid: 1, , table: l2_cntxt_tcam.f1_f2_alloc_l2_cntxt */
+	.description = "l2_cntxt_tcam.f1_f2_alloc_l2_cntxt",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
 	.direction = TF_DIR_RX,
@@ -152,7 +311,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_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 = 30,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_IDENT,
 	.tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
@@ -161,10 +320,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 0,
-	.ident_start_idx = 7,
+	.ident_start_idx = 9,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: tunnel_cache.f1_f2_wr */
+	.description = "tunnel_cache.f1_f2_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_CACHE,
@@ -173,40 +333,42 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_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 = 30,
 		.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 = 4,
+	.key_start_idx = 6,
 	.blob_key_bit_size = 19,
 	.key_bit_size = 19,
 	.key_num_fields = 2,
-	.result_start_idx = 0,
+	.result_start_idx = 6,
 	.result_bit_size = 52,
 	.result_num_fields = 3
 	},
 	{ /* class_tid: 1, , table: control.check_f2_flow */
+	.description = "control.check_f2_flow",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
-		.cond_true_goto  = 18,
+		.cond_true_goto  = 27,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 3,
+		.cond_start_idx = 30,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: control.dmac_calculation */
+	.description = "control.dmac_calculation",
 	.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_start_idx = 31,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -214,22 +376,192 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.func_opc = BNXT_ULP_FUNC_OPC_COND_LIST,
 		.func_oper_size = 48,
 		.func_src1 = BNXT_ULP_FUNC_SRC_KEY_EXT_LIST,
-		.func_opr1 = 0,
+		.func_opr1 = 2,
 		.func_dst_opr = BNXT_ULP_RF_IDX_O_DMAC }
 	},
+	{ /* class_tid: 1, , table: control.check_tunnel_recycle */
+	.description = "control.check_tunnel_recycle",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 9,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_LIST_AND,
+		.cond_start_idx = 5,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* class_tid: 1, , table: control.multi_tunnel_check */
+	.description = "control.multi_tunnel_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.false_message = "reject multi tunnel flow if group id or partial mask is specified",
+	.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 = 2 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* class_tid: 1, , table: multi_flow_tunnel_cache.rd */
+	.description = "multi_flow_tunnel_cache.rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_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 = 40,
+		.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 = 8,
+	.blob_key_bit_size = 447,
+	.key_bit_size = 447,
+	.key_num_fields = 9,
+	.ident_start_idx = 10,
+	.ident_nums = 1
+	},
+	{ /* class_tid: 1, , table: control.multi_flow_cache_check */
+	.description = "control.multi_flow_cache_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 5,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 64,
+		.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
+	},
+	{ /* class_tid: 1, , table: jump_index_table.multi_flow_alloc */
+	.description = "jump_index_table.multi_flow_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 = 65,
+		.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 = 9,
+	.result_bit_size = 0,
+	.result_num_fields = 0
+	},
+	{ /* class_tid: 1, , table: control.multi_flow_metadata_cal */
+	.description = "control.multi_flow_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 = 65,
+		.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_THOR_SYM_CHAIN_META_VAL,
+		.func_dst_opr = BNXT_ULP_RF_IDX_JUMP_META }
+	},
+	{ /* class_tid: 1, , table: control.outer_present_mode_1 */
+	.description = "control.outer_present_mode_1",
+	.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 = 65,
+		.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_COPY_SRC1_TO_RF,
+		.func_oper_size = 8,
+		.func_src1 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr1 = 1,
+		.func_dst_opr = BNXT_ULP_RF_IDX_OUTER_ADD }
+	},
+	{ /* class_tid: 1, , table: multi_flow_tunnel_cache.wr */
+	.description = "multi_flow_tunnel_cache.wr",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_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 = 65,
+		.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 = 447,
+	.key_bit_size = 447,
+	.key_num_fields = 9,
+	.result_start_idx = 9,
+	.result_bit_size = 48,
+	.result_num_fields = 2
+	},
+	{ /* class_tid: 1, , table: control.multi_flow_outer_loop_bit */
+	.description = "control.multi_flow_outer_loop_bit",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 7,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 93,
+		.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_COPY_SRC1_TO_RF,
+		.func_oper_size = 8,
+		.func_src1 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr1 = 1,
+		.func_dst_opr = BNXT_ULP_RF_IDX_OUTER_LOOP }
+	},
 	{ /* class_tid: 1, , table: control.group_id_check */
+	.description = "control.group_id_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 = 8,
+		.cond_start_idx = 93,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: flow_chain_cache.group_check */
+	.description = "flow_chain_cache.group_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_CACHE,
@@ -238,33 +570,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 9,
+		.cond_start_idx = 94,
 		.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 = 6,
+	.key_start_idx = 26,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 8,
+	.ident_start_idx = 11,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: control.flow_chain_group_id */
+	.description = "control.flow_chain_group_id",
 	.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 = 9,
+		.cond_start_idx = 94,
 		.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
 	},
 	{ /* class_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,
@@ -273,25 +607,26 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 10,
+		.cond_start_idx = 95,
 		.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 = 3,
+	.result_start_idx = 11,
 	.result_bit_size = 0,
 	.result_num_fields = 0
 	},
 	{ /* class_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 = 10,
+		.cond_start_idx = 95,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -305,6 +640,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_JUMP_META }
 	},
 	{ /* class_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,
@@ -313,21 +649,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 10,
+		.cond_start_idx = 95,
 		.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 = 7,
+	.key_start_idx = 27,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.result_start_idx = 3,
+	.result_start_idx = 11,
 	.result_bit_size = 48,
 	.result_num_fields = 2
 	},
-	{ /* class_tid: 1, , table: flow_chain_l2_cntxt.group_check */
+	{ /* class_tid: 1, , table: flow_chain_l2_cntxt.chaining_check */
+	.description = "flow_chain_l2_cntxt.chaining_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_L2_CNTXT,
@@ -335,34 +672,36 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 4,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 10,
-		.cond_nums = 1 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 95,
+		.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 = 8,
+	.key_start_idx = 28,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.ident_start_idx = 9,
+	.ident_start_idx = 12,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: control.flow_chain_group_l2_cntxt_check */
+	.description = "control.flow_chain_group_l2_cntxt_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 8,
+		.cond_false_goto = 3,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 11,
+		.cond_start_idx = 97,
 		.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
 	},
 	{ /* class_tid: 1, , table: l2_cntxt_tcam.chain_entry */
+	.description = "l2_cntxt_tcam.chain_entry",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
 	.direction = TF_DIR_RX,
@@ -370,7 +709,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 12,
+		.cond_start_idx = 98,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
@@ -379,40 +718,42 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 0,
-	.key_start_idx = 9,
+	.key_start_idx = 29,
 	.blob_key_bit_size = 213,
 	.key_bit_size = 213,
 	.key_num_fields = 21,
-	.result_start_idx = 5,
+	.result_start_idx = 13,
 	.result_bit_size = 43,
 	.result_num_fields = 6,
-	.ident_start_idx = 10,
+	.ident_start_idx = 13,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: flow_chain_l2_cntxt.write */
+	.description = "flow_chain_l2_cntxt.write",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_L2_CNTXT,
 	.direction = TF_DIR_RX,
 	.execute_info = {
-		.cond_true_goto  = 6,
+		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 14,
+		.cond_start_idx = 100,
 		.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 = 30,
+	.key_start_idx = 50,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.result_start_idx = 11,
+	.result_start_idx = 19,
 	.result_bit_size = 42,
 	.result_num_fields = 2
 	},
 	{ /* class_tid: 1, , table: mac_addr_cache.rd */
+	.description = "mac_addr_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MAC_ADDR_CACHE,
@@ -421,33 +762,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 5,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 14,
-		.cond_nums = 1 },
+		.cond_start_idx = 100,
+		.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 = 31,
+	.key_start_idx = 51,
 	.blob_key_bit_size = 110,
 	.key_bit_size = 110,
 	.key_num_fields = 8,
-	.ident_start_idx = 11,
+	.ident_start_idx = 14,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: control.mac_addr_cache_miss */
+	.description = "control.mac_addr_cache_miss",
 	.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 = 17,
+		.cond_start_idx = 105,
 		.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
 	},
 	{ /* class_tid: 1, , table: l2_cntxt_tcam.allocate_l2_context */
+	.description = "l2_cntxt_tcam.allocate_l2_context",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
 	.direction = TF_DIR_RX,
@@ -455,7 +798,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 18,
+		.cond_start_idx = 106,
 		.cond_nums = 2 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_IDENT,
 	.tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
@@ -464,10 +807,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 0,
-	.ident_start_idx = 12,
+	.ident_start_idx = 15,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: l2_cntxt_tcam.ingress_entry */
+	.description = "l2_cntxt_tcam.ingress_entry",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
 	.direction = TF_DIR_RX,
@@ -475,7 +819,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_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 = 108,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
@@ -484,17 +828,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 0,
-	.key_start_idx = 39,
+	.key_start_idx = 59,
 	.blob_key_bit_size = 213,
 	.key_bit_size = 213,
 	.key_num_fields = 21,
-	.result_start_idx = 13,
+	.result_start_idx = 21,
 	.result_bit_size = 43,
 	.result_num_fields = 6,
-	.ident_start_idx = 13,
+	.ident_start_idx = 16,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 1, , table: mac_addr_cache.wr */
+	.description = "mac_addr_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MAC_ADDR_CACHE,
@@ -503,66 +848,70 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_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 = 110,
 		.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 = 60,
+	.key_start_idx = 80,
 	.blob_key_bit_size = 110,
 	.key_bit_size = 110,
 	.key_num_fields = 8,
-	.result_start_idx = 19,
+	.result_start_idx = 27,
 	.result_bit_size = 70,
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 1, , table: control.check_f1_flow */
+	.description = "control.check_f1_flow",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 24,
+		.cond_start_idx = 112,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* class_tid: 1, , table: control.tunnel_ipv6_sip_check */
+	{ /* class_tid: 1, , table: control.l2_only_check */
+	.description = "control.l2_only_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
-	.true_message = "reject ipv6 tunnel flow with tunnel source ip",
+	.true_message = "Reject due to missing Ethertype for L2 flows",
 	.execute_info = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_LIST_OR,
-		.cond_start_idx = 0,
-		.cond_nums = 1 },
+		.cond_start_idx = 6,
+		.cond_nums = 2 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* class_tid: 1, , table: control.l2_only_check */
+	{ /* class_tid: 1, , table: control.tunnel_ipv6_sip_check */
+	.description = "control.tunnel_ipv6_sip_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
-	.true_message = "Reject due to missing Ethertype for L2 flows",
+	.true_message = "reject ipv6 tunnel flow with tunnel source ip",
 	.execute_info = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_LIST_OR,
-		.cond_start_idx = 1,
-		.cond_nums = 2 },
+		.cond_start_idx = 8,
+		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: control.terminating_flow */
+	.description = "control.terminating_flow",
 	.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 = 38,
+		.cond_start_idx = 127,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -570,10 +919,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.func_opc = BNXT_ULP_FUNC_OPC_COND_LIST,
 		.func_oper_size = 8,
 		.func_src1 = BNXT_ULP_FUNC_SRC_KEY_EXT_LIST,
-		.func_opr1 = 3,
+		.func_opr1 = 5,
 		.func_dst_opr = BNXT_ULP_RF_IDX_TERM_FLOW }
 	},
 	{ /* class_tid: 1, , table: proto_header_cache.rd */
+	.description = "proto_header_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROTO_HEADER,
@@ -582,32 +932,34 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 46,
+		.cond_start_idx = 138,
 		.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 = 68,
+	.key_start_idx = 88,
 	.blob_key_bit_size = 75,
 	.key_bit_size = 75,
 	.key_num_fields = 3,
-	.ident_start_idx = 13,
+	.ident_start_idx = 16,
 	.ident_nums = 7
 	},
 	{ /* class_tid: 1, , table: control.proto_header_cache_miss */
+	.description = "control.proto_header_cache_miss",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 13,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 47,
+		.cond_start_idx = 140,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: hdr_overlap_cache.overlap_check */
+	.description = "hdr_overlap_cache.overlap_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_HDR_OVERLAP,
@@ -616,36 +968,38 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 48,
+		.cond_start_idx = 141,
 		.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,
-	.key_start_idx = 71,
+	.key_start_idx = 91,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 2,
-	.partial_key_start_idx = 73,
+	.partial_key_start_idx = 93,
 	.partial_key_num_fields = 1,
 	.partial_key_bit_size = 64,
-	.ident_start_idx = 20,
+	.ident_start_idx = 23,
 	.ident_nums = 2
 	},
 	{ /* class_tid: 1, , table: control.overlap_miss */
+	.description = "control.overlap_miss",
 	.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 = 49,
+		.cond_start_idx = 143,
 		.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
 	},
 	{ /* class_tid: 1, , table: profile_tcam.allocate_wc_profile */
+	.description = "profile_tcam.allocate_wc_profile",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.direction = TF_DIR_RX,
@@ -653,7 +1007,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 50,
+		.cond_start_idx = 144,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_IDENT,
 	.tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
@@ -662,10 +1016,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 0,
-	.ident_start_idx = 22,
+	.ident_start_idx = 25,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: fkb_select.wc_gen_template */
+	.description = "fkb_select.wc_gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_WC_FKB,
 	.direction = TF_DIR_RX,
@@ -673,18 +1028,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 50,
+		.cond_start_idx = 144,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_WC_KEY_ID_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
-	.result_start_idx = 24,
+	.result_start_idx = 32,
 	.result_bit_size = 106,
 	.result_num_fields = 106
 	},
 	{ /* class_tid: 1, , table: hdr_overlap_cache.overlap_wr */
+	.description = "hdr_overlap_cache.overlap_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_HDR_OVERLAP,
@@ -693,37 +1049,39 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 259,
+		.cond_start_idx = 398,
 		.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 = 74,
+	.key_start_idx = 94,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 2,
-	.partial_key_start_idx = 76,
+	.partial_key_start_idx = 96,
 	.partial_key_num_fields = 1,
 	.partial_key_bit_size = 64,
-	.result_start_idx = 130,
+	.result_start_idx = 138,
 	.result_bit_size = 48,
 	.result_num_fields = 3
 	},
 	{ /* class_tid: 1, , table: control.proto_header_rid_alloc */
+	.description = "control.proto_header_rid_alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 260,
+		.cond_start_idx = 400,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 1, , table: fkb_select.em_gen_template_alloc */
+	.description = "fkb_select.em_gen_template_alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_EM_FKB,
 	.direction = TF_DIR_RX,
@@ -731,18 +1089,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 260,
+		.cond_start_idx = 400,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.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_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
-	.result_start_idx = 133,
+	.result_start_idx = 141,
 	.result_bit_size = 106,
 	.result_num_fields = 106
 	},
 	{ /* class_tid: 1, , table: em_key_recipe.alloc_only */
+	.description = "em_key_recipe.alloc_only",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
@@ -751,25 +1110,26 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 261,
+		.cond_start_idx = 401,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
-	.result_start_idx = 239,
+	.result_start_idx = 247,
 	.result_bit_size = 0,
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 1, , table: control.profile_tcam_priority */
+	.description = "control.profile_tcam_priority",
 	.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 = 261,
+		.cond_start_idx = 401,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -777,10 +1137,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.func_opc = BNXT_ULP_FUNC_OPC_COND_LIST,
 		.func_oper_size = 8,
 		.func_src1 = BNXT_ULP_FUNC_SRC_KEY_EXT_LIST,
-		.func_opr1 = 42,
+		.func_opr1 = 48,
 		.func_dst_opr = BNXT_ULP_RF_IDX_PROF_TCAM_PRIORITY }
 	},
 	{ /* class_tid: 1, , table: profile_tcam.gen_template */
+	.description = "profile_tcam.gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.direction = TF_DIR_RX,
@@ -788,7 +1149,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 277,
+		.cond_start_idx = 417,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
@@ -799,17 +1160,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_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,
-	.key_start_idx = 77,
+	.key_start_idx = 97,
 	.blob_key_bit_size = 94,
 	.key_bit_size = 94,
 	.key_num_fields = 43,
-	.result_start_idx = 239,
+	.result_start_idx = 247,
 	.result_bit_size = 33,
 	.result_num_fields = 8,
-	.ident_start_idx = 23,
+	.ident_start_idx = 26,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: wm_key_recipe.0 */
+	.description = "wm_key_recipe.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_WM,
@@ -818,22 +1180,23 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 521,
+		.cond_start_idx = 662,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
-	.key_start_idx = 120,
+	.key_start_idx = 140,
 	.blob_key_bit_size = 0,
 	.key_bit_size = 0,
 	.key_num_fields = 33,
-	.result_start_idx = 247,
+	.result_start_idx = 255,
 	.result_bit_size = 0,
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 1, , table: proto_header_cache.wr */
+	.description = "proto_header_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROTO_HEADER,
@@ -842,56 +1205,59 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 939,
+		.cond_start_idx = 1178,
 		.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 = 153,
+	.key_start_idx = 173,
 	.blob_key_bit_size = 75,
 	.key_bit_size = 75,
 	.key_num_fields = 3,
-	.result_start_idx = 247,
+	.result_start_idx = 255,
 	.result_bit_size = 106,
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 1, , table: em_flow_conflict_cache.rd */
+	.description = "em_flow_conflict_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_EM_FLOW_CONFLICT,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 8,
+		.cond_false_goto = 9,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 940,
-		.cond_nums = 2 },
+		.cond_start_idx = 1180,
+		.cond_nums = 3 },
 	.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 = 156,
-	.blob_key_bit_size = 73,
-	.key_bit_size = 73,
-	.key_num_fields = 3,
-	.ident_start_idx = 24,
+	.key_start_idx = 176,
+	.blob_key_bit_size = 77,
+	.key_bit_size = 77,
+	.key_num_fields = 4,
+	.ident_start_idx = 27,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 1, , table: control.em_flow_conflict_cache_miss */
+	.description = "control.em_flow_conflict_cache_miss",
 	.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 = 942,
+		.cond_start_idx = 1185,
 		.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
 	},
 	{ /* class_tid: 1, , table: fkb_select.em_gen_template */
+	.description = "fkb_select.em_gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_EM_FKB,
 	.direction = TF_DIR_RX,
@@ -899,17 +1265,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 943,
+		.cond_start_idx = 1186,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.result_start_idx = 255,
+	.result_start_idx = 263,
 	.result_bit_size = 106,
 	.result_num_fields = 106
 	},
 	{ /* class_tid: 1, , table: em_key_recipe.0 */
+	.description = "em_key_recipe.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
@@ -918,51 +1285,53 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1145,
+		.cond_start_idx = 1432,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.key_start_idx = 159,
+	.key_start_idx = 180,
 	.blob_key_bit_size = 0,
 	.key_bit_size = 0,
 	.key_num_fields = 33,
-	.result_start_idx = 361,
+	.result_start_idx = 369,
 	.result_bit_size = 0,
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 1, , table: em_flow_conflict_cache.wr */
+	.description = "em_flow_conflict_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_EM_FLOW_CONFLICT,
 	.direction = TF_DIR_RX,
 	.execute_info = {
-		.cond_true_goto  = 2,
+		.cond_true_goto  = 3,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1549,
+		.cond_start_idx = 1924,
 		.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 = 192,
-	.blob_key_bit_size = 73,
-	.key_bit_size = 73,
-	.key_num_fields = 3,
-	.result_start_idx = 361,
+	.key_start_idx = 213,
+	.blob_key_bit_size = 77,
+	.key_bit_size = 77,
+	.key_num_fields = 4,
+	.result_start_idx = 369,
 	.result_bit_size = 96,
 	.result_num_fields = 2
 	},
 	{ /* class_tid: 1, , table: control.field_sig_validation */
+	.description = "control.field_sig_validation",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
-		.cond_true_goto  = 3,
+		.cond_true_goto  = 4,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1549,
+		.cond_start_idx = 1926,
 		.cond_nums = 2 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -974,7 +1343,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.func_opr2 = BNXT_ULP_CF_IDX_FLOW_SIG_ID,
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
+	{ /* class_tid: 1, , table: control.outer_loop_add_check */
+	.description = "control.outer_loop_add_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 5,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 1928,
+		.cond_nums = 2 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
 	{ /* class_tid: 1, , table: em.ingress_generic_template */
+	.description = "em.ingress_generic_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
 	.resource_type = TF_MEM_INTERNAL,
 	.direction = TF_DIR_RX,
@@ -982,39 +1365,41 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1551,
-		.cond_nums = 3 },
+		.cond_start_idx = 1930,
+		.cond_nums = 4 },
 	.tbl_opcode = BNXT_ULP_EM_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_EM_INSERT_FAIL,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_DYN_KEY,
 	.key_recipe_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-	.result_start_idx = 363,
+	.result_start_idx = 371,
 	.result_bit_size = 0,
 	.result_num_fields = 6
 	},
 	{ /* class_tid: 1, , table: control.em_add_check */
+	.description = "control.em_add_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 0,
+		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1554,
+		.cond_start_idx = 1934,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 1, , table: wm.ingress_generic_template */
+	.description = "wm.ingress_generic_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_WC_TCAM,
 	.direction = TF_DIR_RX,
 	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1555,
+		.cond_start_idx = 1935,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
@@ -1024,11 +1409,63 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.pri_opcode  = BNXT_ULP_PRI_OPC_APP_PRI,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-	.result_start_idx = 369,
+	.result_start_idx = 377,
 	.result_bit_size = 38,
 	.result_num_fields = 5
 	},
+	{ /* class_tid: 1, , table: control.outer_loop_check */
+	.description = "control.outer_loop_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.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 = 1935,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* class_tid: 1, , table: control.reset_outer_loop */
+	.description = "control.reset_outer_loop",
+	.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 = 1936,
+		.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_COPY_SRC1_TO_RF,
+		.func_oper_size = 16,
+		.func_src1 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr1 = 0,
+		.func_dst_opr = BNXT_ULP_RF_IDX_OUTER_LOOP }
+	},
+	{ /* class_tid: 1, , table: control.inner_loop_cal */
+	.description = "control.inner_loop_cal",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = -27,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 1936,
+		.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_COPY_SRC1_TO_RF,
+		.func_oper_size = 16,
+		.func_src1 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr1 = 1,
+		.func_dst_opr = BNXT_ULP_RF_IDX_INNER_LOOP }
+	},
 	{ /* class_tid: 2, , table: l2_cntxt_tcam_cache.rd */
+	.description = "l2_cntxt_tcam_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -1037,20 +1474,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1555,
+		.cond_start_idx = 1936,
 		.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_PUSH_FID,
-	.key_start_idx = 195,
+	.key_start_idx = 217,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.ident_start_idx = 25,
+	.ident_start_idx = 28,
 	.ident_nums = 2
 	},
 	{ /* class_tid: 2, , table: control.l2_only_check */
+	.description = "control.l2_only_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.true_message = "Reject due to missing Ethertype for L2 flows",
@@ -1058,12 +1496,13 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_LIST_OR,
-		.cond_start_idx = 3,
+		.cond_start_idx = 9,
 		.cond_nums = 2 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 2, , table: control.tunnel_ipv6_sip_check */
+	.description = "control.tunnel_ipv6_sip_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.true_message = "reject ipv6 tunnel flow with tunnel source ip or source mac",
@@ -1071,19 +1510,188 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_LIST_OR,
-		.cond_start_idx = 5,
+		.cond_start_idx = 11,
+		.cond_nums = 2 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* class_tid: 2, , table: control.check_tunnel_recycle */
+	.description = "control.check_tunnel_recycle",
+	.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_LIST_AND,
+		.cond_start_idx = 13,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* class_tid: 2, , table: control.multi_tunnel_check */
+	.description = "control.multi_tunnel_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.false_message = "reject multi tunnel flow if group id or partial mask is specified",
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1023,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 1956,
 		.cond_nums = 2 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
+	{ /* class_tid: 2, , table: multi_flow_tunnel_cache.rd */
+	.description = "multi_flow_tunnel_cache.rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_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 = 1958,
+		.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 = 218,
+	.blob_key_bit_size = 447,
+	.key_bit_size = 447,
+	.key_num_fields = 9,
+	.ident_start_idx = 30,
+	.ident_nums = 1
+	},
+	{ /* class_tid: 2, , table: control.multi_flow_cache_check */
+	.description = "control.multi_flow_cache_check",
+	.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 = 1982,
+		.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
+	},
+	{ /* class_tid: 2, , table: jump_index_table.multi_flow_alloc */
+	.description = "jump_index_table.multi_flow_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 = 1983,
+		.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 = 382,
+	.result_bit_size = 0,
+	.result_num_fields = 0
+	},
+	{ /* class_tid: 2, , table: control.multi_flow_metadata_cal */
+	.description = "control.multi_flow_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 = 1983,
+		.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_THOR_SYM_CHAIN_META_VAL,
+		.func_dst_opr = BNXT_ULP_RF_IDX_JUMP_META }
+	},
+	{ /* class_tid: 2, , table: control.outer_present_mode_1 */
+	.description = "control.outer_present_mode_1",
+	.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 = 1983,
+		.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_COPY_SRC1_TO_RF,
+		.func_oper_size = 8,
+		.func_src1 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr1 = 1,
+		.func_dst_opr = BNXT_ULP_RF_IDX_OUTER_ADD }
+	},
+	{ /* class_tid: 2, , table: multi_flow_tunnel_cache.wr */
+	.description = "multi_flow_tunnel_cache.wr",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MULTI_FLOW_TUNNEL_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 = 1983,
+		.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 = 227,
+	.blob_key_bit_size = 447,
+	.key_bit_size = 447,
+	.key_num_fields = 9,
+	.result_start_idx = 382,
+	.result_bit_size = 48,
+	.result_num_fields = 2
+	},
+	{ /* class_tid: 2, , table: control.multi_flow_outer_loop_bit */
+	.description = "control.multi_flow_outer_loop_bit",
+	.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 = 2011,
+		.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_COPY_SRC1_TO_RF,
+		.func_oper_size = 8,
+		.func_src1 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr1 = 1,
+		.func_dst_opr = BNXT_ULP_RF_IDX_OUTER_LOOP }
+	},
 	{ /* class_tid: 2, , table: control.terminating_flow */
+	.description = "control.terminating_flow",
 	.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 = 1573,
+		.cond_start_idx = 2011,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1091,22 +1699,24 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.func_opc = BNXT_ULP_FUNC_OPC_COND_LIST,
 		.func_oper_size = 8,
 		.func_src1 = BNXT_ULP_FUNC_SRC_KEY_EXT_LIST,
-		.func_opr1 = 308,
+		.func_opr1 = 316,
 		.func_dst_opr = BNXT_ULP_RF_IDX_TERM_FLOW }
 	},
 	{ /* class_tid: 2, , table: control.group_id_check */
+	.description = "control.group_id_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 6,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1581,
+		.cond_start_idx = 2019,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 2, , table: flow_chain_cache.group_check */
+	.description = "flow_chain_cache.group_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_CACHE,
@@ -1115,33 +1725,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1582,
+		.cond_start_idx = 2020,
 		.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 = 196,
+	.key_start_idx = 236,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 27,
+	.ident_start_idx = 31,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 2, , table: control.flow_chain_group_id */
+	.description = "control.flow_chain_group_id",
 	.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 = 1582,
+		.cond_start_idx = 2020,
 		.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
 	},
 	{ /* class_tid: 2, , 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,
@@ -1150,25 +1762,26 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1583,
+		.cond_start_idx = 2021,
 		.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 = 374,
+	.result_start_idx = 384,
 	.result_bit_size = 0,
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 2, , 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 = 1583,
+		.cond_start_idx = 2021,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1182,6 +1795,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.func_dst_opr = BNXT_ULP_RF_IDX_JUMP_META }
 	},
 	{ /* class_tid: 2, , 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,
@@ -1190,21 +1804,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1583,
+		.cond_start_idx = 2021,
 		.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 = 197,
+	.key_start_idx = 237,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.result_start_idx = 374,
+	.result_start_idx = 384,
 	.result_bit_size = 48,
 	.result_num_fields = 2
 	},
 	{ /* class_tid: 2, , table: proto_header_cache.rd */
+	.description = "proto_header_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROTO_HEADER,
@@ -1213,32 +1828,34 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1583,
+		.cond_start_idx = 2021,
 		.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 = 198,
+	.key_start_idx = 238,
 	.blob_key_bit_size = 75,
 	.key_bit_size = 75,
 	.key_num_fields = 3,
-	.ident_start_idx = 28,
+	.ident_start_idx = 32,
 	.ident_nums = 7
 	},
 	{ /* class_tid: 2, , table: control.proto_header_cache_miss */
+	.description = "control.proto_header_cache_miss",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 13,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1584,
+		.cond_start_idx = 2023,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 2, , table: hdr_overlap_cache.overlap_check */
+	.description = "hdr_overlap_cache.overlap_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_HDR_OVERLAP,
@@ -1247,36 +1864,38 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1585,
+		.cond_start_idx = 2024,
 		.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,
-	.key_start_idx = 201,
+	.key_start_idx = 241,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 2,
-	.partial_key_start_idx = 203,
+	.partial_key_start_idx = 243,
 	.partial_key_num_fields = 1,
 	.partial_key_bit_size = 64,
-	.ident_start_idx = 35,
+	.ident_start_idx = 39,
 	.ident_nums = 2
 	},
 	{ /* class_tid: 2, , table: control.overlap_miss */
+	.description = "control.overlap_miss",
 	.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 = 1586,
+		.cond_start_idx = 2026,
 		.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
 	},
 	{ /* class_tid: 2, , table: profile_tcam.allocate_wc_profile */
+	.description = "profile_tcam.allocate_wc_profile",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.direction = TF_DIR_TX,
@@ -1284,7 +1903,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1587,
+		.cond_start_idx = 2027,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_IDENT,
 	.tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
@@ -1293,10 +1912,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 0,
-	.ident_start_idx = 37,
+	.ident_start_idx = 41,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 2, , table: fkb_select.wc_gen_template */
+	.description = "fkb_select.wc_gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_WC_FKB,
 	.direction = TF_DIR_TX,
@@ -1304,18 +1924,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1587,
+		.cond_start_idx = 2027,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_WC_KEY_ID_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
-	.result_start_idx = 376,
+	.result_start_idx = 386,
 	.result_bit_size = 106,
 	.result_num_fields = 106
 	},
 	{ /* class_tid: 2, , table: hdr_overlap_cache.overlap_wr */
+	.description = "hdr_overlap_cache.overlap_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_HDR_OVERLAP,
@@ -1324,37 +1945,39 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1798,
+		.cond_start_idx = 2284,
 		.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 = 204,
+	.key_start_idx = 244,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 2,
-	.partial_key_start_idx = 206,
+	.partial_key_start_idx = 246,
 	.partial_key_num_fields = 1,
 	.partial_key_bit_size = 64,
-	.result_start_idx = 482,
+	.result_start_idx = 492,
 	.result_bit_size = 48,
 	.result_num_fields = 3
 	},
 	{ /* class_tid: 2, , table: control.proto_header_rid_alloc */
+	.description = "control.proto_header_rid_alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1799,
+		.cond_start_idx = 2286,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
 	{ /* class_tid: 2, , table: fkb_select.em_gen_template_alloc */
+	.description = "fkb_select.em_gen_template_alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_EM_FKB,
 	.direction = TF_DIR_TX,
@@ -1362,18 +1985,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1799,
+		.cond_start_idx = 2286,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.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_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
-	.result_start_idx = 485,
+	.result_start_idx = 495,
 	.result_bit_size = 106,
 	.result_num_fields = 106
 	},
 	{ /* class_tid: 2, , table: em_key_recipe.alloc_only */
+	.description = "em_key_recipe.alloc_only",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
@@ -1382,25 +2006,26 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1800,
+		.cond_start_idx = 2287,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
-	.result_start_idx = 591,
+	.result_start_idx = 601,
 	.result_bit_size = 0,
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 2, , table: control.profile_tcam_priority */
+	.description = "control.profile_tcam_priority",
 	.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 = 1800,
+		.cond_start_idx = 2287,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1408,10 +2033,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.func_opc = BNXT_ULP_FUNC_OPC_COND_LIST,
 		.func_oper_size = 8,
 		.func_src1 = BNXT_ULP_FUNC_SRC_KEY_EXT_LIST,
-		.func_opr1 = 348,
+		.func_opr1 = 359,
 		.func_dst_opr = BNXT_ULP_RF_IDX_PROF_TCAM_PRIORITY }
 	},
 	{ /* class_tid: 2, , table: profile_tcam.gen_template */
+	.description = "profile_tcam.gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.direction = TF_DIR_TX,
@@ -1419,7 +2045,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 1816,
+		.cond_start_idx = 2303,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
@@ -1430,17 +2056,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_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,
-	.key_start_idx = 207,
+	.key_start_idx = 247,
 	.blob_key_bit_size = 94,
 	.key_bit_size = 94,
 	.key_num_fields = 43,
-	.result_start_idx = 591,
+	.result_start_idx = 601,
 	.result_bit_size = 33,
 	.result_num_fields = 8,
-	.ident_start_idx = 38,
+	.ident_start_idx = 42,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 2, , table: wm_key_recipe.0 */
+	.description = "wm_key_recipe.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_WM,
@@ -1449,22 +2076,23 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 2058,
+		.cond_start_idx = 2546,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
-	.key_start_idx = 250,
+	.key_start_idx = 290,
 	.blob_key_bit_size = 0,
 	.key_bit_size = 0,
 	.key_num_fields = 33,
-	.result_start_idx = 599,
+	.result_start_idx = 609,
 	.result_bit_size = 0,
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 2, , table: proto_header_cache.wr */
+	.description = "proto_header_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROTO_HEADER,
@@ -1473,56 +2101,59 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 2480,
+		.cond_start_idx = 3068,
 		.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 = 283,
+	.key_start_idx = 323,
 	.blob_key_bit_size = 75,
 	.key_bit_size = 75,
 	.key_num_fields = 3,
-	.result_start_idx = 599,
+	.result_start_idx = 609,
 	.result_bit_size = 106,
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 2, , table: em_flow_conflict_cache.rd */
+	.description = "em_flow_conflict_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_EM_FLOW_CONFLICT,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 8,
+		.cond_false_goto = 9,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 2481,
-		.cond_nums = 2 },
+		.cond_start_idx = 3070,
+		.cond_nums = 3 },
 	.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 = 286,
-	.blob_key_bit_size = 73,
-	.key_bit_size = 73,
-	.key_num_fields = 3,
-	.ident_start_idx = 39,
+	.key_start_idx = 326,
+	.blob_key_bit_size = 77,
+	.key_bit_size = 77,
+	.key_num_fields = 4,
+	.ident_start_idx = 43,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 2, , table: control.em_flow_conflict_cache_miss */
+	.description = "control.em_flow_conflict_cache_miss",
 	.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 = 2483,
+		.cond_start_idx = 3075,
 		.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
 	},
 	{ /* class_tid: 2, , table: fkb_select.em_gen_template */
+	.description = "fkb_select.em_gen_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_EM_FKB,
 	.direction = TF_DIR_TX,
@@ -1530,17 +2161,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 2484,
+		.cond_start_idx = 3076,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.result_start_idx = 607,
+	.result_start_idx = 617,
 	.result_bit_size = 106,
 	.result_num_fields = 106
 	},
 	{ /* class_tid: 2, , table: em_key_recipe.0 */
+	.description = "em_key_recipe.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
@@ -1549,51 +2181,53 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 2683,
+		.cond_start_idx = 3319,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.key_start_idx = 289,
+	.key_start_idx = 330,
 	.blob_key_bit_size = 0,
 	.key_bit_size = 0,
 	.key_num_fields = 33,
-	.result_start_idx = 713,
+	.result_start_idx = 723,
 	.result_bit_size = 0,
 	.result_num_fields = 0
 	},
 	{ /* class_tid: 2, , table: em_flow_conflict_cache.wr */
+	.description = "em_flow_conflict_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_EM_FLOW_CONFLICT,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 2,
+		.cond_true_goto  = 3,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3081,
+		.cond_start_idx = 3805,
 		.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 = 322,
-	.blob_key_bit_size = 73,
-	.key_bit_size = 73,
-	.key_num_fields = 3,
-	.result_start_idx = 713,
+	.key_start_idx = 363,
+	.blob_key_bit_size = 77,
+	.key_bit_size = 77,
+	.key_num_fields = 4,
+	.result_start_idx = 723,
 	.result_bit_size = 96,
 	.result_num_fields = 2
 	},
 	{ /* class_tid: 2, , table: control.field_sig_validation */
+	.description = "control.field_sig_validation",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 3,
+		.cond_true_goto  = 4,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 3081,
+		.cond_start_idx = 3807,
 		.cond_nums = 2 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1605,7 +2239,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.func_opr2 = BNXT_ULP_CF_IDX_FLOW_SIG_ID,
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
+	{ /* class_tid: 2, , table: control.outer_loop_add_check */
+	.description = "control.outer_loop_add_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.execute_info = {
+		.cond_true_goto  = 5,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 3809,
+		.cond_nums = 2 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
 	{ /* class_tid: 2, , table: em.egress_generic_template */
+	.description = "em.egress_generic_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
 	.resource_type = TF_MEM_INTERNAL,
 	.direction = TF_DIR_TX,
@@ -1613,39 +2261,41 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 3083,
-		.cond_nums = 3 },
+		.cond_start_idx = 3811,
+		.cond_nums = 4 },
 	.tbl_opcode = BNXT_ULP_EM_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_EM_INSERT_FAIL,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_DYN_KEY,
 	.key_recipe_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-	.result_start_idx = 715,
+	.result_start_idx = 725,
 	.result_bit_size = 0,
 	.result_num_fields = 6
 	},
 	{ /* class_tid: 2, , table: control.em_add_check */
+	.description = "control.em_add_check",
 	.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 = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 3086,
+		.cond_start_idx = 3815,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
 	{ /* class_tid: 2, , table: wm.egress_generic_template */
+	.description = "wm.egress_generic_template",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_WC_TCAM,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3087,
+		.cond_start_idx = 3816,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
@@ -1655,11 +2305,63 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.pri_opcode  = BNXT_ULP_PRI_OPC_APP_PRI,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-	.result_start_idx = 721,
+	.result_start_idx = 731,
 	.result_bit_size = 38,
 	.result_num_fields = 5
 	},
+	{ /* class_tid: 2, , table: control.outer_loop_check */
+	.description = "control.outer_loop_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 3816,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* class_tid: 2, , table: control.reset_outer_loop */
+	.description = "control.reset_outer_loop",
+	.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 = 3817,
+		.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_COPY_SRC1_TO_RF,
+		.func_oper_size = 16,
+		.func_src1 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr1 = 0,
+		.func_dst_opr = BNXT_ULP_RF_IDX_OUTER_LOOP }
+	},
+	{ /* class_tid: 2, , table: control.inner_loop_cal */
+	.description = "control.inner_loop_cal",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.execute_info = {
+		.cond_true_goto  = -26,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 3817,
+		.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_COPY_SRC1_TO_RF,
+		.func_oper_size = 16,
+		.func_src1 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr1 = 1,
+		.func_dst_opr = BNXT_ULP_RF_IDX_INNER_LOOP }
+	},
 	{ /* class_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 =
@@ -1669,18 +2371,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3087,
+		.cond_start_idx = 3817,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_DEFAULT_AREC_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 = 726,
+	.result_start_idx = 736,
 	.result_bit_size = 128,
 	.result_num_fields = 17
 	},
 	{ /* class_tid: 3, , table: port_table.ing_wr_0 */
+	.description = "port_table.ing_wr_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE,
@@ -1689,21 +2392,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3087,
+		.cond_start_idx = 3817,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.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 = 325,
+	.key_start_idx = 367,
 	.blob_key_bit_size = 10,
 	.key_bit_size = 10,
 	.key_num_fields = 1,
-	.result_start_idx = 743,
+	.result_start_idx = 753,
 	.result_bit_size = 179,
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam_cache.ing_rd */
+	.description = "l2_cntxt_tcam_cache.ing_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -1712,33 +2416,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3087,
+		.cond_start_idx = 3817,
 		.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_PUSH_FID,
-	.key_start_idx = 326,
+	.key_start_idx = 368,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.ident_start_idx = 40,
+	.ident_start_idx = 44,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 3, , table: control.ing_0 */
+	.description = "control.ing_0",
 	.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 = 3087,
+		.cond_start_idx = 3817,
 		.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
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam.ing_0 */
+	.description = "l2_cntxt_tcam.ing_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.direction = TF_DIR_RX,
@@ -1746,7 +2452,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3088,
+		.cond_start_idx = 3818,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
@@ -1757,17 +2463,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.pri_operand = 0,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
-	.key_start_idx = 327,
+	.key_start_idx = 369,
 	.blob_key_bit_size = 213,
 	.key_bit_size = 213,
 	.key_num_fields = 21,
-	.result_start_idx = 751,
+	.result_start_idx = 761,
 	.result_bit_size = 43,
 	.result_num_fields = 6,
-	.ident_start_idx = 41,
+	.ident_start_idx = 45,
 	.ident_nums = 2
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam_cache.ing_wr */
+	.description = "l2_cntxt_tcam_cache.ing_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -1776,21 +2483,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3088,
+		.cond_start_idx = 3818,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.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 = 348,
+	.key_start_idx = 390,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.result_start_idx = 757,
+	.result_start_idx = 767,
 	.result_bit_size = 70,
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 3, , table: profile_tcam.prof_func_catch_all */
+	.description = "profile_tcam.prof_func_catch_all",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.direction = TF_DIR_RX,
@@ -1798,7 +2506,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3088,
+		.cond_start_idx = 3818,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
@@ -1808,17 +2516,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.pri_operand = 5,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
-	.key_start_idx = 349,
+	.key_start_idx = 391,
 	.blob_key_bit_size = 94,
 	.key_bit_size = 94,
 	.key_num_fields = 43,
-	.result_start_idx = 762,
+	.result_start_idx = 772,
 	.result_bit_size = 33,
 	.result_num_fields = 8,
-	.ident_start_idx = 43,
+	.ident_start_idx = 47,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 3, , table: parif_def_arec_ptr.ing_0 */
+	.description = "parif_def_arec_ptr.ing_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
 	.resource_type = TF_IF_TBL_TYPE_PROF_PARIF_DFLT_ACT_REC_PTR,
 	.direction = TF_DIR_RX,
@@ -1826,17 +2535,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3088,
+		.cond_start_idx = 3818,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
 	.tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.result_start_idx = 770,
+	.result_start_idx = 780,
 	.result_bit_size = 32,
 	.result_num_fields = 1
 	},
 	{ /* class_tid: 3, , table: parif_def_err_arec_ptr.ing_0 */
+	.description = "parif_def_err_arec_ptr.ing_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
 	.resource_type = TF_IF_TBL_TYPE_PROF_PARIF_ERR_ACT_REC_PTR,
 	.direction = TF_DIR_RX,
@@ -1844,17 +2554,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3088,
+		.cond_start_idx = 3818,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
 	.tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.result_start_idx = 771,
+	.result_start_idx = 781,
 	.result_bit_size = 32,
 	.result_num_fields = 1
 	},
 	{ /* class_tid: 3, , table: int_full_act_record.egr_0 */
+	.description = "int_full_act_record.egr_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
 	.resource_sub_type =
@@ -1864,19 +2575,20 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3088,
+		.cond_start_idx = 3818,
 		.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 = 772,
+	.result_start_idx = 782,
 	.result_bit_size = 128,
 	.result_num_fields = 17,
 	.encap_num_fields = 0
 	},
 	{ /* class_tid: 3, , table: port_table.egr_wr_0 */
+	.description = "port_table.egr_wr_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE,
@@ -1885,21 +2597,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3088,
+		.cond_start_idx = 3818,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.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 = 392,
+	.key_start_idx = 434,
 	.blob_key_bit_size = 10,
 	.key_bit_size = 10,
 	.key_num_fields = 1,
-	.result_start_idx = 789,
+	.result_start_idx = 799,
 	.result_bit_size = 179,
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 3, , table: ilt_tbl.egr */
+	.description = "ilt_tbl.egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
 	.resource_type = TF_IF_TBL_TYPE_ILT,
 	.direction = TF_DIR_TX,
@@ -1907,17 +2620,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3088,
+		.cond_start_idx = 3818,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
 	.tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_SVIF,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 797,
+	.result_start_idx = 807,
 	.result_bit_size = 64,
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam_cache.non_vfr_egr_rd */
+	.description = "l2_cntxt_tcam_cache.non_vfr_egr_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -1926,33 +2640,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3088,
+		.cond_start_idx = 3818,
 		.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_PUSH_FID,
-	.key_start_idx = 393,
+	.key_start_idx = 435,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.ident_start_idx = 43,
+	.ident_start_idx = 47,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 3, , table: control.non_vfr_egr_2 */
+	.description = "control.non_vfr_egr_2",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.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 = 3088,
+		.cond_start_idx = 3818,
 		.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
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam.non_vfr_egr_0 */
+	.description = "l2_cntxt_tcam.non_vfr_egr_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.direction = TF_DIR_TX,
@@ -1960,7 +2676,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3089,
+		.cond_start_idx = 3819,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
@@ -1969,17 +2685,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
-	.key_start_idx = 394,
+	.key_start_idx = 436,
 	.blob_key_bit_size = 213,
 	.key_bit_size = 213,
 	.key_num_fields = 21,
-	.result_start_idx = 805,
+	.result_start_idx = 815,
 	.result_bit_size = 43,
 	.result_num_fields = 6,
-	.ident_start_idx = 43,
+	.ident_start_idx = 47,
 	.ident_nums = 2
 	},
 	{ /* class_tid: 3, , table: profile_tcam.non_vfr_prof_func_egr_catch_all */
+	.description = "profile_tcam.non_vfr_prof_func_egr_catch_all",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.direction = TF_DIR_TX,
@@ -1987,7 +2704,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3089,
+		.cond_start_idx = 3819,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
@@ -1997,40 +2714,141 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.pri_operand = 5,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
-	.key_start_idx = 415,
+	.key_start_idx = 457,
 	.blob_key_bit_size = 94,
 	.key_bit_size = 94,
 	.key_num_fields = 43,
-	.result_start_idx = 811,
+	.result_start_idx = 821,
 	.result_bit_size = 33,
 	.result_num_fields = 8,
-	.ident_start_idx = 45,
+	.ident_start_idx = 49,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 3, , table: l2_cntxt_tcam_cache.non_vfr_egr_wr */
+	.description = "l2_cntxt_tcam_cache.non_vfr_egr_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3089,
+		.cond_start_idx = 3819,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.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 = 458,
+	.key_start_idx = 500,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.result_start_idx = 819,
+	.result_start_idx = 829,
 	.result_bit_size = 70,
 	.result_num_fields = 5
 	},
+	{ /* class_tid: 3, , table: tunnel_gparse_cache.def_cust_tun_rd */
+	.description = "tunnel_gparse_cache.def_cust_tun_rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_CACHE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_LIST_OR,
+		.cond_start_idx = 14,
+		.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 = 501,
+	.blob_key_bit_size = 8,
+	.key_bit_size = 8,
+	.key_num_fields = 1,
+	.ident_start_idx = 49,
+	.ident_nums = 2
+	},
+	{ /* class_tid: 3, , table: control.default_custom_tunnel */
+	.description = "control.default_custom_tunnel",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.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 = 3821,
+		.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
+	},
+	{ /* class_tid: 3, , table: cust_tunnel.def_conf_vxlan_port */
+	.description = "cust_tunnel.def_conf_vxlan_port",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GLOBAL_REGISTER_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN,
+	.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 = 3822,
+		.cond_nums = 1 },
+	.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 = 834,
+	.result_bit_size = 16,
+	.result_num_fields = 1
+	},
+	{ /* class_tid: 3, , table: cust_tunnel.def_conf_vxlan_ip_port */
+	.description = "cust_tunnel.def_conf_vxlan_ip_port",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GLOBAL_REGISTER_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GLOBAL_REGISTER_CUST_VXLAN_IP,
+	.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 = 3823,
+		.cond_nums = 1 },
+	.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 = 835,
+	.result_bit_size = 16,
+	.result_num_fields = 1
+	},
+	{ /* class_tid: 3, , table: tunnel_gparse_cache.def_cust_tun_wr */
+	.description = "tunnel_gparse_cache.def_cust_tun_wr",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_TUNNEL_GPARSE_CACHE,
+	.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 = 3824,
+		.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 = 502,
+	.blob_key_bit_size = 8,
+	.key_bit_size = 8,
+	.key_num_fields = 1,
+	.result_start_idx = 836,
+	.result_bit_size = 80,
+	.result_num_fields = 3
+	},
 	{ /* class_tid: 4, , table: profile_tcam_cache.vfr_glb_act_rec_rd */
+	.description = "profile_tcam_cache.vfr_glb_act_rec_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.resource_sub_type =
@@ -2040,33 +2858,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3089,
+		.cond_start_idx = 3824,
 		.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_PUSH_FID,
-	.key_start_idx = 459,
+	.key_start_idx = 503,
 	.blob_key_bit_size = 15,
 	.key_bit_size = 15,
 	.key_num_fields = 3,
-	.ident_start_idx = 45,
+	.ident_start_idx = 51,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 4, , table: control.prof_tcam_cache.vfr_glb_act_rec_rd.0 */
+	.description = "control.prof_tcam_cache.vfr_glb_act_rec_rd.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 6,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 3089,
+		.cond_start_idx = 3824,
 		.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
 	},
 	{ /* class_tid: 4, , table: mod_record.vf_2_vfr_egr */
+	.description = "mod_record.vf_2_vfr_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
 	.resource_sub_type =
@@ -2076,18 +2896,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3090,
+		.cond_start_idx = 3825,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
 	.tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_MODIFY_PTR,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.result_start_idx = 824,
+	.result_start_idx = 839,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 20
 	},
 	{ /* class_tid: 4, , table: int_full_act_record.vf_2_vfr_loopback */
+	.description = "int_full_act_record.vf_2_vfr_loopback",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
 	.resource_sub_type =
@@ -2097,19 +2918,20 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3090,
+		.cond_start_idx = 3825,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
 	.tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR,
 	.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 = 844,
+	.result_start_idx = 859,
 	.result_bit_size = 128,
 	.result_num_fields = 17,
 	.encap_num_fields = 0
 	},
 	{ /* class_tid: 4, , table: parif_def_arec_ptr.vf_egr */
+	.description = "parif_def_arec_ptr.vf_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
 	.resource_type = TF_IF_TBL_TYPE_PROF_PARIF_DFLT_ACT_REC_PTR,
 	.direction = TF_DIR_TX,
@@ -2117,18 +2939,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3090,
+		.cond_start_idx = 3825,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_CONST,
 	.tbl_operand = ULP_THOR_SYM_LOOPBACK_PARIF,
 	.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 = 861,
+	.result_start_idx = 876,
 	.result_bit_size = 32,
 	.result_num_fields = 1
 	},
 	{ /* class_tid: 4, , table: parif_def_err_arec_ptr.vf_egr */
+	.description = "parif_def_err_arec_ptr.vf_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
 	.resource_type = TF_IF_TBL_TYPE_PROF_PARIF_ERR_ACT_REC_PTR,
 	.direction = TF_DIR_TX,
@@ -2136,18 +2959,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3090,
+		.cond_start_idx = 3825,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_CONST,
 	.tbl_operand = ULP_THOR_SYM_LOOPBACK_PARIF,
 	.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 = 862,
+	.result_start_idx = 877,
 	.result_bit_size = 32,
 	.result_num_fields = 1
 	},
 	{ /* class_tid: 4, , table: profile_tcam_cache.vfr_glb_act_rec_wr */
+	.description = "profile_tcam_cache.vfr_glb_act_rec_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.resource_sub_type =
@@ -2157,21 +2981,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3090,
+		.cond_start_idx = 3825,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.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 = 462,
+	.key_start_idx = 506,
 	.blob_key_bit_size = 15,
 	.key_bit_size = 15,
 	.key_num_fields = 3,
-	.result_start_idx = 863,
+	.result_start_idx = 878,
 	.result_bit_size = 138,
 	.result_num_fields = 7
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam_cache.vf_rd_egr */
+	.description = "l2_cntxt_tcam_cache.vf_rd_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -2180,33 +3005,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3090,
+		.cond_start_idx = 3825,
 		.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_PUSH_FID,
-	.key_start_idx = 465,
+	.key_start_idx = 509,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.ident_start_idx = 45,
+	.ident_start_idx = 51,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 4, , table: control.vf_2_vfr.0 */
+	.description = "control.vf_2_vfr.0",
 	.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 = 3090,
+		.cond_start_idx = 3825,
 		.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
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam_cache.get_drv_func_prof_func */
+	.description = "l2_cntxt_tcam_cache.get_drv_func_prof_func",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -2215,20 +3042,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3091,
+		.cond_start_idx = 3826,
 		.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,
-	.key_start_idx = 466,
+	.key_start_idx = 510,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.ident_start_idx = 45,
+	.ident_start_idx = 51,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam.vf_egr */
+	.description = "l2_cntxt_tcam.vf_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.direction = TF_DIR_TX,
@@ -2236,7 +3064,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3091,
+		.cond_start_idx = 3826,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
@@ -2245,17 +3073,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 0,
-	.key_start_idx = 467,
+	.key_start_idx = 511,
 	.blob_key_bit_size = 213,
 	.key_bit_size = 213,
 	.key_num_fields = 21,
-	.result_start_idx = 870,
+	.result_start_idx = 885,
 	.result_bit_size = 43,
 	.result_num_fields = 6,
-	.ident_start_idx = 46,
+	.ident_start_idx = 52,
 	.ident_nums = 1
 	},
 	{ /* class_tid: 4, , table: profile_tcam.prof_func_catch_all */
+	.description = "profile_tcam.prof_func_catch_all",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.direction = TF_DIR_TX,
@@ -2263,7 +3092,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3091,
+		.cond_start_idx = 3826,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
@@ -2274,17 +3103,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.pri_operand = 5,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
-	.key_start_idx = 488,
+	.key_start_idx = 532,
 	.blob_key_bit_size = 94,
 	.key_bit_size = 94,
 	.key_num_fields = 43,
-	.result_start_idx = 876,
+	.result_start_idx = 891,
 	.result_bit_size = 33,
 	.result_num_fields = 8,
-	.ident_start_idx = 47,
+	.ident_start_idx = 53,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam_cache.vf_egr_wr */
+	.description = "l2_cntxt_tcam_cache.vf_egr_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -2293,21 +3123,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3091,
+		.cond_start_idx = 3826,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.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 = 531,
+	.key_start_idx = 575,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.result_start_idx = 884,
+	.result_start_idx = 899,
 	.result_bit_size = 70,
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 4, , table: int_full_act_record.vf_2_vfr_ing */
+	.description = "int_full_act_record.vf_2_vfr_ing",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
 	.resource_sub_type =
@@ -2317,18 +3148,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3091,
+		.cond_start_idx = 3826,
 		.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_PUSH_AND_SET_VFR_FLAG,
-	.result_start_idx = 889,
+	.result_start_idx = 904,
 	.result_bit_size = 128,
 	.result_num_fields = 17
 	},
 	{ /* class_tid: 4, , table: profile_tcam_cache.vfr_rd */
+	.description = "profile_tcam_cache.vfr_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.resource_sub_type =
@@ -2338,33 +3170,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3091,
+		.cond_start_idx = 3826,
 		.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_PUSH_FID,
-	.key_start_idx = 532,
+	.key_start_idx = 576,
 	.blob_key_bit_size = 15,
 	.key_bit_size = 15,
 	.key_num_fields = 3,
-	.ident_start_idx = 47,
+	.ident_start_idx = 53,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 4, , table: control.prof_tcam_cache.vfr.0 */
+	.description = "control.prof_tcam_cache.vfr.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 10,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 3091,
+		.cond_start_idx = 3826,
 		.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
 	},
 	{ /* class_tid: 4, , table: int_full_act_record.drop_action */
+	.description = "int_full_act_record.drop_action",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
 	.resource_sub_type =
@@ -2374,19 +3208,20 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
 	.tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_DROP_AREC_PTR,
 	.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 = 906,
+	.result_start_idx = 921,
 	.result_bit_size = 128,
 	.result_num_fields = 17,
 	.encap_num_fields = 0
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam.vf_2_vfr_ing.0 */
+	.description = "l2_cntxt_tcam.vf_2_vfr_ing.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
 	.direction = TF_DIR_RX,
@@ -2394,7 +3229,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
@@ -2405,17 +3240,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.pri_operand = 0,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
-	.key_start_idx = 535,
+	.key_start_idx = 579,
 	.blob_key_bit_size = 213,
 	.key_bit_size = 213,
 	.key_num_fields = 21,
-	.result_start_idx = 923,
+	.result_start_idx = 938,
 	.result_bit_size = 43,
 	.result_num_fields = 6,
-	.ident_start_idx = 47,
+	.ident_start_idx = 53,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam.vfr_2_vf_ing.0 */
+	.description = "l2_cntxt_tcam.vfr_2_vf_ing.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
 	.direction = TF_DIR_RX,
@@ -2423,7 +3259,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
@@ -2434,17 +3270,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.pri_operand = 0,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
-	.key_start_idx = 556,
+	.key_start_idx = 600,
 	.blob_key_bit_size = 213,
 	.key_bit_size = 213,
 	.key_num_fields = 21,
-	.result_start_idx = 929,
+	.result_start_idx = 944,
 	.result_bit_size = 43,
 	.result_num_fields = 6,
-	.ident_start_idx = 47,
+	.ident_start_idx = 53,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 4, , table: fkb_select.vfr_em */
+	.description = "fkb_select.vfr_em",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_EM_FKB,
 	.direction = TF_DIR_RX,
@@ -2452,17 +3289,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
 	.tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_VFR_EM_KEY_ID_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.result_start_idx = 935,
+	.result_start_idx = 950,
 	.result_bit_size = 106,
 	.result_num_fields = 106
 	},
 	{ /* class_tid: 4, , table: fkb_select.vf_em */
+	.description = "fkb_select.vf_em",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_EM_FKB,
 	.direction = TF_DIR_RX,
@@ -2470,17 +3308,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
 	.tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_VFR_EM_KEY_ID_1,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.result_start_idx = 1041,
+	.result_start_idx = 1056,
 	.result_bit_size = 106,
 	.result_num_fields = 106
 	},
 	{ /* class_tid: 4, , table: profile_tcam.vf_2_vfr.0 */
+	.description = "profile_tcam.vf_2_vfr.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.direction = TF_DIR_RX,
@@ -2488,7 +3327,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
@@ -2499,15 +3338,16 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.pri_operand = 0,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
-	.key_start_idx = 577,
+	.key_start_idx = 621,
 	.blob_key_bit_size = 94,
 	.key_bit_size = 94,
 	.key_num_fields = 43,
-	.result_start_idx = 1147,
+	.result_start_idx = 1162,
 	.result_bit_size = 33,
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 4, , table: profile_tcam.vfr_2_vf.0 */
+	.description = "profile_tcam.vfr_2_vf.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.direction = TF_DIR_RX,
@@ -2515,7 +3355,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
@@ -2526,15 +3366,16 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 	.pri_operand = 0,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
-	.key_start_idx = 620,
+	.key_start_idx = 664,
 	.blob_key_bit_size = 94,
 	.key_bit_size = 94,
 	.key_num_fields = 43,
-	.result_start_idx = 1155,
+	.result_start_idx = 1170,
 	.result_bit_size = 33,
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 4, , table: profile_tcam_cache.vfr_wr */
+	.description = "profile_tcam_cache.vfr_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
 	.resource_sub_type =
@@ -2544,21 +3385,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.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 = 663,
+	.key_start_idx = 707,
 	.blob_key_bit_size = 15,
 	.key_bit_size = 15,
 	.key_num_fields = 3,
-	.result_start_idx = 1163,
+	.result_start_idx = 1178,
 	.result_bit_size = 138,
 	.result_num_fields = 7
 	},
 	{ /* class_tid: 4, , table: ilt_tbl.vfr_ing */
+	.description = "ilt_tbl.vfr_ing",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
 	.resource_type = TF_IF_TBL_TYPE_ILT,
 	.direction = TF_DIR_RX,
@@ -2566,17 +3408,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
 	.tbl_operand = BNXT_ULP_CF_IDX_VF_FUNC_SVIF,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 1170,
+	.result_start_idx = 1185,
 	.result_bit_size = 64,
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 4, , table: em.vf_2_vfr.0 */
+	.description = "em.vf_2_vfr.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
 	.resource_type = TF_MEM_INTERNAL,
 	.direction = TF_DIR_RX,
@@ -2584,20 +3427,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
-	.key_start_idx = 666,
+	.key_start_idx = 710,
 	.blob_key_bit_size = 0,
 	.key_bit_size = 0,
 	.key_num_fields = 3,
-	.result_start_idx = 1178,
+	.result_start_idx = 1193,
 	.result_bit_size = 0,
 	.result_num_fields = 6
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam_cache.rd_egr0 */
+	.description = "l2_cntxt_tcam_cache.rd_egr0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.resource_sub_type =
@@ -2607,33 +3451,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3092,
+		.cond_start_idx = 3827,
 		.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_PUSH_FID,
-	.key_start_idx = 669,
+	.key_start_idx = 713,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.ident_start_idx = 47,
+	.ident_start_idx = 53,
 	.ident_nums = 0
 	},
 	{ /* class_tid: 4, , table: control.0 */
+	.description = "control.0",
 	.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 = 3092,
+		.cond_start_idx = 3827,
 		.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
 	},
 	{ /* class_tid: 4, , table: ilt_tbl.vfr_egr */
+	.description = "ilt_tbl.vfr_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
 	.resource_type = TF_IF_TBL_TYPE_ILT,
 	.direction = TF_DIR_TX,
@@ -2641,18 +3487,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3093,
+		.cond_start_idx = 3828,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
 	.tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_SVIF,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
-	.result_start_idx = 1184,
+	.result_start_idx = 1199,
 	.result_bit_size = 64,
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 4, , table: l2_cntxt_tcam_cache.vfr_wr_egr0 */
+	.description = "l2_cntxt_tcam_cache.vfr_wr_egr0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
@@ -2661,21 +3508,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3093,
+		.cond_start_idx = 3828,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.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 = 670,
+	.key_start_idx = 714,
 	.blob_key_bit_size = 11,
 	.key_bit_size = 11,
 	.key_num_fields = 1,
-	.result_start_idx = 1192,
+	.result_start_idx = 1207,
 	.result_bit_size = 70,
 	.result_num_fields = 5
 	},
 	{ /* class_tid: 4, , table: ilt_tbl.vf_egr */
+	.description = "ilt_tbl.vf_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
 	.resource_type = TF_IF_TBL_TYPE_ILT,
 	.direction = TF_DIR_TX,
@@ -2683,17 +3531,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3093,
+		.cond_start_idx = 3828,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
 	.tbl_operand = BNXT_ULP_CF_IDX_VF_FUNC_SVIF,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 1197,
+	.result_start_idx = 1212,
 	.result_bit_size = 64,
 	.result_num_fields = 8
 	},
 	{ /* class_tid: 4, , table: mod_record.vfr_2_vf_egr */
+	.description = "mod_record.vfr_2_vf_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
 	.resource_sub_type =
@@ -2703,18 +3552,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3093,
+		.cond_start_idx = 3828,
 		.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 = 1205,
+	.result_start_idx = 1220,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 20
 	},
 	{ /* class_tid: 4, , table: int_full_act_record.vfr_egr */
+	.description = "int_full_act_record.vfr_egr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
 	.resource_sub_type =
@@ -2724,18 +3574,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3093,
+		.cond_start_idx = 3828,
 		.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 = 1225,
+	.result_start_idx = 1240,
 	.result_bit_size = 128,
 	.result_num_fields = 17
 	},
 	{ /* class_tid: 4, , table: int_full_act_record.vfr_2_vf.ing0 */
+	.description = "int_full_act_record.vfr_2_vf.ing0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
 	.resource_sub_type =
@@ -2745,18 +3596,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3093,
+		.cond_start_idx = 3828,
 		.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 = 1242,
+	.result_start_idx = 1257,
 	.result_bit_size = 128,
 	.result_num_fields = 17
 	},
 	{ /* class_tid: 4, , table: em.vfr_2_vf.0 */
+	.description = "em.vfr_2_vf.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
 	.resource_type = TF_MEM_INTERNAL,
 	.direction = TF_DIR_RX,
@@ -2764,68 +3616,237 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3093,
+		.cond_start_idx = 3828,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-	.key_start_idx = 671,
+	.key_start_idx = 715,
 	.blob_key_bit_size = 0,
 	.key_bit_size = 0,
 	.key_num_fields = 2,
-	.result_start_idx = 1259,
+	.result_start_idx = 1274,
 	.result_bit_size = 0,
 	.result_num_fields = 6
 	}
 };
 
 struct bnxt_ulp_mapper_cond_list_info ulp_thor_class_cond_oper_list[] = {
-	/* cond_execute: class_tid: 1, control.tunnel_ipv6_sip_check:25*/
+	/* cond_execute: class_tid: 1, control.vxlan_ip_check:0*/
+	{
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 0,
+		.cond_nums = 3
+	},
+	/* cond_execute: class_tid: 1, control.vxlan_ip_check:0*/
+	{
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 3,
+		.cond_nums = 2
+	},
+	/* cond_execute: class_tid: 1, control.vxlan_ip_check:0*/
+	{
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 5,
+		.cond_nums = 3
+	},
+	/* cond_execute: class_tid: 1, cust_tunnel.configure_vxlan_port:17*/
+	{
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 17,
+		.cond_nums = 2
+	},
+	/* cond_execute: class_tid: 1, cust_tunnel.configure_vxlan_ip_port:19*/
+	{
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 19,
+		.cond_nums = 2
+	},
+	/* cond_execute: class_tid: 1, control.check_tunnel_recycle:35*/
 	{
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 25,
+		.cond_start_idx = 35,
 		.cond_nums = 3
 	},
-	/* cond_execute: class_tid: 1, control.l2_only_check:28*/
+	/* cond_execute: class_tid: 1, control.l2_only_check:113*/
 	{
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 28,
+		.cond_start_idx = 113,
 		.cond_nums = 5
 	},
-	/* cond_execute: class_tid: 1, control.l2_only_check:28*/
+	/* cond_execute: class_tid: 1, control.l2_only_check:113*/
 	{
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 33,
+		.cond_start_idx = 118,
 		.cond_nums = 5
 	},
-	/* cond_execute: class_tid: 2, control.l2_only_check:1555*/
+	/* cond_execute: class_tid: 1, control.tunnel_ipv6_sip_check:123*/
 	{
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1555,
+		.cond_start_idx = 123,
+		.cond_nums = 4
+	},
+	/* cond_execute: class_tid: 2, control.l2_only_check:1936*/
+	{
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 1936,
 		.cond_nums = 5
 	},
-	/* cond_execute: class_tid: 2, control.l2_only_check:1555*/
+	/* cond_execute: class_tid: 2, control.l2_only_check:1936*/
 	{
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1560,
+		.cond_start_idx = 1941,
 		.cond_nums = 5
 	},
-	/* cond_execute: class_tid: 2, control.tunnel_ipv6_sip_check:1565*/
+	/* cond_execute: class_tid: 2, control.tunnel_ipv6_sip_check:1946*/
 	{
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1565,
+		.cond_start_idx = 1946,
 		.cond_nums = 4
 	},
-	/* cond_execute: class_tid: 2, control.tunnel_ipv6_sip_check:1565*/
+	/* cond_execute: class_tid: 2, control.tunnel_ipv6_sip_check:1946*/
 	{
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1569,
+		.cond_start_idx = 1950,
 		.cond_nums = 4
+	},
+	/* cond_execute: class_tid: 2, control.check_tunnel_recycle:1954*/
+	{
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 1954,
+		.cond_nums = 2
+	},
+	/* cond_execute: class_tid: 3, tunnel_gparse_cache.def_cust_tun_rd:3819*/
+	{
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 3819,
+		.cond_nums = 2
 	}
 };
 
 struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
-	/* cond_execute: class_tid: 1, control.check_f1_f2_flow:0*/
+	/* cond_execute: class_tid: 1, control.vxlan_ip_check:0*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_F1
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_F2
+	},
+	/* cond_execute: class_tid: 1, control.vxlan_ip_check:0*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
+	},
+	/* cond_execute: class_tid: 1, control.vxlan_ip_check:0*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
+	},
+	/* cond_execute: class_tid: 1, tunnel_gparse_cache.custom_tunnel_rd:8*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
+	},
+	/* field_cond: class_tid: 1, tunnel_gparse_cache.custom_tunnel_rd:10*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
+	},
+	/* field_cond: class_tid: 1, tunnel_gparse_cache.custom_tunnel_rd:12*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
+	},
+	/* cond_execute: class_tid: 1, control.custom_tunnel:15*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	},
+	/* cond_execute: class_tid: 1, control.custom_tunnel_port_check_value:16*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_CC
+	},
+	/* cond_execute: class_tid: 1, cust_tunnel.configure_vxlan_port:17*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_DYNAMIC_VXLAN_PORT
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
+	},
+	/* cond_execute: class_tid: 1, cust_tunnel.configure_vxlan_ip_port:19*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_DYNAMIC_VXLAN_PORT
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
+	},
+	/* cond_execute: class_tid: 1, cust_tunnel.configure_geneve_port:21*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_DYNAMIC_GENEVE_PORT
+	},
+	/* field_cond: class_tid: 1, tunnel_gparse_cache.custom_tunnel_wr:22*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
+	},
+	/* field_cond: class_tid: 1, tunnel_gparse_cache.custom_tunnel_wr:24*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
+	},
+	/* cond_execute: class_tid: 1, control.check_f1_f2_flow:27*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_F1
@@ -2834,17 +3855,17 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_F2
 	},
-	/* cond_execute: class_tid: 1, control.tunnel_cache_check:2*/
+	/* cond_execute: class_tid: 1, control.tunnel_cache_check:29*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: class_tid: 1, control.check_f2_flow:3*/
+	/* cond_execute: class_tid: 1, control.check_f2_flow:30*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_F2
 	},
-	/* field_cond: class_tid: 1, control.dmac_calculation:4*/
+	/* field_cond: class_tid: 1, control.dmac_calculation:31*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
@@ -2853,67 +3874,340 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, control.dmac_calculation:6*/
+	/* field_cond: class_tid: 1, control.dmac_calculation:33*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_FEATURE_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_FEATURE_BIT_PORT_DMAC
 	},
-	/* field_cond: class_tid: 1, control.dmac_calculation:7*/
+	/* field_cond: class_tid: 1, control.dmac_calculation:34*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_FEATURE_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_FEATURE_BIT_PARENT_DMAC
 	},
-	/* cond_execute: class_tid: 1, control.group_id_check:8*/
+	/* cond_execute: class_tid: 1, control.check_tunnel_recycle:35*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FEATURE_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_FEATURE_BIT_MULTI_TUNNEL_FLOW
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_F1
+	},
+	/* cond_execute: class_tid: 1, control.multi_tunnel_check:38*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
+	.cond_operand = BNXT_ULP_CF_IDX_OUTER_EM_ONLY
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:40*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:42*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:44*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:46*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:48*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:50*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:52*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:54*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:56*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:58*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:60*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.rd:62*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
+	},
+	/* cond_execute: class_tid: 1, control.multi_flow_cache_check:64*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:65*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:67*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:69*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:71*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:73*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:75*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:77*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:79*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:81*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:83*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:85*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:87*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:89*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
+	},
+	/* field_cond: class_tid: 1, multi_flow_tunnel_cache.wr:91*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
+	},
+	/* cond_execute: class_tid: 1, control.group_id_check:93*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* cond_execute: class_tid: 1, control.flow_chain_group_id:9*/
+	/* cond_execute: class_tid: 1, control.flow_chain_group_id:94*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: class_tid: 1, flow_chain_l2_cntxt.group_check:10*/
+	/* cond_execute: class_tid: 1, flow_chain_l2_cntxt.chaining_check:95*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* cond_execute: class_tid: 1, control.flow_chain_group_l2_cntxt_check:11*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	/* cond_execute: class_tid: 1, control.flow_chain_group_l2_cntxt_check:97*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* field_cond: class_tid: 1, l2_cntxt_tcam.chain_entry:12*/
+	/* field_cond: class_tid: 1, l2_cntxt_tcam.chain_entry:98*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, l2_cntxt_tcam.chain_entry:13*/
+	/* field_cond: class_tid: 1, l2_cntxt_tcam.chain_entry:99*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* cond_execute: class_tid: 1, mac_addr_cache.rd:14*/
+	/* cond_execute: class_tid: 1, mac_addr_cache.rd:100*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_O_DMAC
 	},
-	/* field_cond: class_tid: 1, mac_addr_cache.rd:15*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
+	},
+	/* field_cond: class_tid: 1, mac_addr_cache.rd:102*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, mac_addr_cache.rd:16*/
+	/* field_cond: class_tid: 1, mac_addr_cache.rd:103*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_METADATA
 	},
-	/* cond_execute: class_tid: 1, control.mac_addr_cache_miss:17*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* cond_execute: class_tid: 1, control.mac_addr_cache_miss:105*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: class_tid: 1, l2_cntxt_tcam.allocate_l2_context:18*/
+	/* cond_execute: class_tid: 1, l2_cntxt_tcam.allocate_l2_context:106*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_F1
@@ -2922,45 +4216,32 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_F2
 	},
-	/* field_cond: class_tid: 1, l2_cntxt_tcam.ingress_entry:20*/
+	/* field_cond: class_tid: 1, l2_cntxt_tcam.ingress_entry:108*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, l2_cntxt_tcam.ingress_entry:21*/
+	/* field_cond: class_tid: 1, l2_cntxt_tcam.ingress_entry:109*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, mac_addr_cache.wr:22*/
+	/* field_cond: class_tid: 1, mac_addr_cache.wr:110*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, mac_addr_cache.wr:23*/
+	/* field_cond: class_tid: 1, mac_addr_cache.wr:111*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_METADATA
 	},
-	/* cond_execute: class_tid: 1, control.check_f1_flow:24*/
+	/* cond_execute: class_tid: 1, control.check_f1_flow:112*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_F1
 	},
-	/* cond_execute: class_tid: 1, control.tunnel_ipv6_sip_check:25*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
-	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
-	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
-	},
-	/* cond_execute: class_tid: 1, control.l2_only_check:28*/
+	/* cond_execute: class_tid: 1, control.l2_only_check:113*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -2981,7 +4262,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* cond_execute: class_tid: 1, control.l2_only_check:28*/
+	/* cond_execute: class_tid: 1, control.l2_only_check:113*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3002,7 +4283,28 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, control.terminating_flow:38*/
+	/* cond_execute: class_tid: 1, control.tunnel_ipv6_sip_check:123*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FEATURE_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_FEATURE_BIT_MULTI_TUNNEL_FLOW
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
+	},
+	/* field_cond: class_tid: 1, control.terminating_flow:127*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3011,7 +4313,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, control.terminating_flow:40*/
+	/* field_cond: class_tid: 1, control.terminating_flow:130*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3020,7 +4326,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, control.terminating_flow:42*/
+	/* field_cond: class_tid: 1, control.terminating_flow:133*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3029,7 +4335,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, control.terminating_flow:44*/
+	/* field_cond: class_tid: 1, control.terminating_flow:135*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3038,42 +4344,67 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, proto_header_cache.rd:46*/
+	/* field_cond: class_tid: 1, control.terminating_flow:137*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	/* field_cond: class_tid: 1, proto_header_cache.rd:138*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* cond_execute: class_tid: 1, control.proto_header_cache_miss:47*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* cond_execute: class_tid: 1, control.proto_header_cache_miss:140*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* field_cond: class_tid: 1, hdr_overlap_cache.overlap_check:48*/
+	/* field_cond: class_tid: 1, hdr_overlap_cache.overlap_check:141*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* cond_execute: class_tid: 1, control.overlap_miss:49*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* cond_execute: class_tid: 1, control.overlap_miss:143*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:50*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:144*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_CNTXT_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:51*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:146*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:52*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:148*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:53*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:149*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3086,7 +4417,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:56*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:153*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3099,7 +4434,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:59*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:157*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3116,7 +4455,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:63*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:162*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3133,7 +4476,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:67*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:167*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3150,12 +4497,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:71*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:172*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3167,7 +4518,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:75*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:177*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3180,7 +4535,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:78*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:181*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FEATURE_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_FEATURE_BIT_MULTI_TUNNEL_FLOW
+	},
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:182*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3193,7 +4557,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:81*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:186*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3206,7 +4574,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:84*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:190*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3219,7 +4591,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:87*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:194*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3232,7 +4608,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:90*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:198*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3245,7 +4625,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:93*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:202*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3258,7 +4642,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:96*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:206*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3271,7 +4659,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:99*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:210*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3284,7 +4676,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:102*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:214*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3297,7 +4693,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:105*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:218*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3310,7 +4710,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:108*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:222*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3323,7 +4727,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:111*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:226*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3336,7 +4744,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:114*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:230*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3349,7 +4761,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:117*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:234*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
@@ -3358,7 +4774,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_VNI
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:119*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:237*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN_GPE
@@ -3367,7 +4787,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_GPE_VNI
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:121*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:240*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3380,7 +4804,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:124*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:244*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3393,7 +4817,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:127*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:247*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3406,7 +4834,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:130*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:251*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3419,7 +4847,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:133*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:254*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3436,7 +4868,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:137*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:259*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3453,7 +4885,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:141*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:263*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3470,7 +4906,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_II_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:145*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:268*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3487,7 +4927,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:149*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:273*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3504,7 +4944,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:153*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:277*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3521,12 +4961,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:157*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:281*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3538,7 +4982,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:161*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:286*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3555,12 +4999,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:165*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:290*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3572,12 +5020,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:169*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:295*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3589,7 +5041,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:173*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:300*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3606,7 +5058,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:177*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:304*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3623,12 +5075,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:181*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:308*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3640,12 +5096,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:185*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:313*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3657,7 +5117,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:189*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:318*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3674,7 +5134,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:193*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:322*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3691,12 +5151,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:197*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:326*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3708,12 +5172,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:201*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:331*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3725,7 +5193,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:205*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:336*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3742,7 +5210,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:209*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:340*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3759,12 +5227,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:213*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:344*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3776,12 +5248,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:217*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:349*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3793,7 +5269,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:221*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:354*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3810,7 +5286,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:225*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:358*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3827,12 +5303,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:229*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:362*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3844,12 +5324,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:233*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:367*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -3861,7 +5345,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:237*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:372*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3878,7 +5362,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:241*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:376*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -3895,12 +5379,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:245*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:380*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:246*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:382*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
@@ -3913,7 +5401,12 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_ICMP
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:249*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:385*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
+	},
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:386*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
@@ -3926,12 +5419,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_ICMP
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:252*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:389*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:253*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:391*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
@@ -3944,7 +5441,12 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_ICMP
 	},
-	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:256*/
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:394*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
+	},
+	/* field_cond: class_tid: 1, fkb_select.wc_gen_template:395*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
@@ -3957,17 +5459,21 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_ICMP
 	},
-	/* field_cond: class_tid: 1, hdr_overlap_cache.overlap_wr:259*/
+	/* field_cond: class_tid: 1, hdr_overlap_cache.overlap_wr:398*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* cond_execute: class_tid: 1, fkb_select.em_gen_template_alloc:260*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* cond_execute: class_tid: 1, fkb_select.em_gen_template_alloc:400*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_TERM_FLOW
 	},
-	/* field_cond: class_tid: 1, control.profile_tcam_priority:261*/
+	/* field_cond: class_tid: 1, control.profile_tcam_priority:401*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3976,7 +5482,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, control.profile_tcam_priority:263*/
+	/* field_cond: class_tid: 1, control.profile_tcam_priority:403*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3985,7 +5491,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, control.profile_tcam_priority:265*/
+	/* field_cond: class_tid: 1, control.profile_tcam_priority:405*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -3994,7 +5500,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, control.profile_tcam_priority:267*/
+	/* field_cond: class_tid: 1, control.profile_tcam_priority:407*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4003,7 +5509,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, control.profile_tcam_priority:269*/
+	/* field_cond: class_tid: 1, control.profile_tcam_priority:409*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4012,7 +5518,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
 	},
-	/* field_cond: class_tid: 1, control.profile_tcam_priority:271*/
+	/* field_cond: class_tid: 1, control.profile_tcam_priority:411*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4021,7 +5527,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV6
 	},
-	/* field_cond: class_tid: 1, control.profile_tcam_priority:273*/
+	/* field_cond: class_tid: 1, control.profile_tcam_priority:413*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4030,7 +5536,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, control.profile_tcam_priority:275*/
+	/* field_cond: class_tid: 1, control.profile_tcam_priority:415*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4039,7 +5545,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:277*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:417*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4048,7 +5554,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:279*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:419*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4057,7 +5563,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:281*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:421*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4066,7 +5572,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:283*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:423*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4075,7 +5581,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:285*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:425*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4084,7 +5590,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:287*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:427*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4093,7 +5599,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:289*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:429*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4102,7 +5608,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:291*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:431*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4111,7 +5617,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:293*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:433*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4120,7 +5626,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:295*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:435*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4129,7 +5635,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:297*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:437*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4138,7 +5644,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:299*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:439*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4147,7 +5653,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:301*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:441*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4156,7 +5662,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:303*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:443*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4165,7 +5671,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:305*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:445*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4174,7 +5680,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:307*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:447*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4183,7 +5689,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:309*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:449*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4192,7 +5698,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:311*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:451*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4201,7 +5707,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:313*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:453*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4210,7 +5716,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:315*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:455*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4219,7 +5725,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:317*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:457*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4228,7 +5734,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:319*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:459*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4237,7 +5743,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:321*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:461*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4246,7 +5752,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:323*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:463*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4255,7 +5761,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:325*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:465*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4264,7 +5770,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:327*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:467*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4273,7 +5779,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:329*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:469*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4282,7 +5788,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:331*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:471*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4291,7 +5797,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:333*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:473*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4300,7 +5806,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:335*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:475*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4309,7 +5815,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:337*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:477*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4318,7 +5824,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:339*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:479*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4327,7 +5833,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:341*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:481*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4336,7 +5842,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:343*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:483*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4345,7 +5851,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:345*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:485*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4354,7 +5860,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:347*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:487*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4363,7 +5869,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:349*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:489*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4372,7 +5878,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:351*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:491*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4381,7 +5887,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:353*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:493*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4390,7 +5896,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:355*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:495*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4399,7 +5905,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:357*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:497*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4408,7 +5914,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:359*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:499*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4417,7 +5923,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:361*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:501*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4426,7 +5932,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:363*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:503*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4435,7 +5941,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:365*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:505*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4444,7 +5950,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:367*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:507*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4453,7 +5959,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:369*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:509*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4462,7 +5968,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:371*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:511*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4471,7 +5977,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:373*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:513*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4480,7 +5986,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:375*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:515*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4489,7 +5995,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:377*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:517*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4498,7 +6004,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:379*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:519*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4507,7 +6013,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:381*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:521*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4516,7 +6022,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:383*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:523*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4525,7 +6031,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:385*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:525*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4534,7 +6040,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:387*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:527*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4543,7 +6049,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:389*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:529*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4552,7 +6058,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:391*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:531*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4561,7 +6067,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:393*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:533*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4570,7 +6076,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:395*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:535*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4579,7 +6085,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:397*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:537*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4592,7 +6098,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_II_VLAN
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:400*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:540*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4605,7 +6111,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_OI_VLAN
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:403*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:543*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4618,7 +6124,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_IO_VLAN
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:406*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:546*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4631,17 +6137,17 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_OO_VLAN
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:409*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:549*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_DIX_TRAFFIC
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:410*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:550*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_DIX_TRAFFIC
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:411*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:551*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4650,7 +6156,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:413*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:553*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4659,7 +6165,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:415*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:555*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4668,7 +6174,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:417*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:557*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4677,7 +6183,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:419*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:559*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4686,7 +6192,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_ETH
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:421*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:561*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4695,7 +6201,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:423*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:563*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4704,7 +6210,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:425*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:565*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4713,7 +6219,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN_GPE
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:427*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:567*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4722,7 +6228,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:429*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:569*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4731,7 +6237,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_GRE
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:431*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:571*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4740,7 +6246,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_UPAR1
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:433*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:573*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4749,7 +6255,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_UPAR2
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:435*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:575*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4758,7 +6264,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:437*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:577*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4767,7 +6273,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN_GPE
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:439*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:579*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4776,7 +6282,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:441*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:581*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4785,7 +6291,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_GRE
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:443*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:583*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4794,7 +6300,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_UPAR1
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:445*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:585*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4803,22 +6309,22 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_UPAR2
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:447*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:587*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:448*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:588*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:449*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:589*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:450*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:590*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4827,7 +6333,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:452*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:592*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4836,7 +6342,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:454*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:594*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4845,7 +6351,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:456*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:596*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4854,7 +6360,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:458*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:598*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4863,7 +6369,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:460*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:600*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4872,7 +6378,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:462*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:602*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4881,7 +6387,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:464*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:604*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4890,7 +6396,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:466*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:606*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4899,7 +6405,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:468*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:608*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4908,7 +6414,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:470*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:610*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4917,7 +6423,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:472*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:612*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4926,7 +6432,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:474*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:614*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4935,7 +6441,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:476*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:616*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4944,12 +6450,12 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:478*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:618*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:479*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:619*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4958,7 +6464,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:481*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:621*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4967,12 +6473,12 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:483*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:623*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:484*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:624*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4981,7 +6487,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:486*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:626*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4990,7 +6496,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:488*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:628*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -4999,7 +6505,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:490*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:630*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5008,7 +6514,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:492*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:632*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5017,7 +6523,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:494*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:634*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5026,7 +6532,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:496*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:636*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5035,7 +6541,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:498*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:638*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5044,7 +6550,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:500*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:640*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5053,7 +6559,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:502*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:642*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5062,7 +6568,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:504*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:644*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5071,7 +6577,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:506*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:646*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5080,7 +6586,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:508*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:648*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5093,7 +6599,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_OI_VLAN
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:511*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:651*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5106,17 +6612,17 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_OO_VLAN
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:514*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:654*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_DIX_TRAFFIC
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:515*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:655*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_DIX_TRAFFIC
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:516*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:656*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5125,7 +6631,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_ETH
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:518*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:658*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5134,42 +6640,66 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_F2
 	},
-	/* field_cond: class_tid: 1, profile_tcam.gen_template:520*/
+	/* field_cond: class_tid: 1, profile_tcam.gen_template:660*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:521*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* field_cond: class_tid: 1, wm_key_recipe.0:662*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_CNTXT_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:522*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:664*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_CNTXT_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:523*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:666*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:524*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* field_cond: class_tid: 1, wm_key_recipe.0:668*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:525*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* field_cond: class_tid: 1, wm_key_recipe.0:670*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:526*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:671*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:527*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:672*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5182,7 +6712,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:530*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:676*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5195,7 +6729,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:533*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:680*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5208,7 +6746,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:536*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:684*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5221,7 +6763,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:539*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:688*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5238,7 +6784,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:543*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:693*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5255,7 +6805,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:547*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:698*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5272,7 +6826,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:551*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:703*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5289,7 +6847,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:555*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:708*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5306,7 +6868,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:559*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:713*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5323,12 +6889,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:563*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:718*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -5340,12 +6910,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:567*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:723*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -5357,7 +6931,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:571*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:728*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5370,7 +6948,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:574*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:732*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5383,7 +6965,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:577*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:736*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5396,7 +6982,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:580*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:740*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FEATURE_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_FEATURE_BIT_MULTI_TUNNEL_FLOW
+	},
+	/* field_cond: class_tid: 1, wm_key_recipe.0:741*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5409,7 +7004,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:583*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:745*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FEATURE_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_FEATURE_BIT_MULTI_TUNNEL_FLOW
+	},
+	/* field_cond: class_tid: 1, wm_key_recipe.0:746*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5422,7 +7026,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:586*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:750*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5435,7 +7043,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:589*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:754*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5448,7 +7060,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:592*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:758*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5461,7 +7077,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:595*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:762*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5474,7 +7094,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:598*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:766*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5487,7 +7111,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:601*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:770*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5500,7 +7128,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:604*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:774*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5513,7 +7145,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:607*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:778*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5526,7 +7162,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:610*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:782*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5539,7 +7179,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:613*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:786*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5552,7 +7196,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:616*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:790*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5565,7 +7213,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:619*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:794*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5578,7 +7230,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:622*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:798*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5591,7 +7247,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:625*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:802*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5604,7 +7264,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:628*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:806*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5617,7 +7281,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:631*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:810*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5630,7 +7298,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:634*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:814*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5643,7 +7315,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:637*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:818*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5656,7 +7332,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:640*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:822*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5669,7 +7349,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:643*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:826*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5682,7 +7366,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:646*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:830*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5695,7 +7383,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:649*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:834*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5708,7 +7400,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:652*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:838*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5721,7 +7417,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:655*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:842*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
@@ -5730,7 +7430,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_VNI
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:657*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:845*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN_GPE
@@ -5739,7 +7443,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_GPE_VNI
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:659*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:848*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
@@ -5748,7 +7456,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_VNI
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:661*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:851*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN_GPE
@@ -5757,7 +7469,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_GPE_VNI
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:663*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:854*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5770,7 +7486,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:666*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:858*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5783,7 +7499,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:669*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:861*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5796,7 +7516,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:672*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:865*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5809,7 +7529,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:675*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:868*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5822,7 +7546,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:678*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:872*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5835,7 +7559,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:681*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:875*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5848,7 +7576,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:684*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:879*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5861,7 +7589,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:687*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:882*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5878,7 +7610,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:691*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:887*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5895,7 +7627,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:695*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:891*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5912,7 +7648,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:699*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:896*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5929,7 +7665,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:703*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:900*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5946,7 +7686,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_II_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:707*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:905*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5963,7 +7707,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:711*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:910*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5980,7 +7724,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:715*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:914*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -5997,7 +7741,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:719*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:918*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6014,7 +7762,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_II_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:723*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:923*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6031,7 +7783,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:727*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:928*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6048,7 +7800,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:731*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:932*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6065,12 +7817,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:735*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:936*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -6082,7 +7838,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:739*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:941*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -6099,12 +7855,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:743*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:945*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -6116,7 +7876,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:747*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:950*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -6133,7 +7893,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:751*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:954*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6146,7 +7910,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:754*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:958*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6159,7 +7923,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:757*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:961*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6172,7 +7940,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:760*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:965*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6185,7 +7953,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:763*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:968*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6198,7 +7970,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:766*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:972*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6211,7 +7983,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:769*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:975*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6224,7 +8000,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:772*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:979*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6237,7 +8013,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:775*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:982*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6250,7 +8030,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:778*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:986*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6263,7 +8043,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:781*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:989*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6276,7 +8060,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:784*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:993*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6289,7 +8073,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:787*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:996*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6302,7 +8090,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:790*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1000*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6315,7 +8103,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:793*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1003*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6328,7 +8120,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:796*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1007*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6341,7 +8133,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:799*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1010*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6354,7 +8150,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:802*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1014*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6367,7 +8167,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:805*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1018*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6380,7 +8180,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:808*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1021*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6393,7 +8193,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:811*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1024*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6406,7 +8210,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:814*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1028*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6419,7 +8227,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:817*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1032*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6432,7 +8240,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:820*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1035*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6445,7 +8253,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:823*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1038*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6454,7 +8266,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:825*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1041*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6463,7 +8279,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:827*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1044*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6472,7 +8288,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:829*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1046*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6481,7 +8297,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:831*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1048*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6494,7 +8314,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:834*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1052*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6507,7 +8331,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:837*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1056*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6520,7 +8344,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:840*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1059*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6533,7 +8357,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:843*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1062*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6542,7 +8370,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_TCP
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:845*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1065*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6551,7 +8383,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_I_UDP
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:847*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1068*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6560,7 +8392,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_TCP
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:849*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1070*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6569,7 +8401,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_UDP
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:851*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1072*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6582,7 +8418,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:854*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1076*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6595,7 +8435,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:857*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1080*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6608,7 +8448,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:860*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1083*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6621,7 +8461,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:863*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1086*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6634,7 +8478,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:866*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1090*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6647,7 +8495,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:869*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1094*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6660,7 +8508,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:872*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1097*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6673,7 +8521,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:875*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1100*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6686,7 +8538,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:878*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1104*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6699,7 +8555,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:881*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1108*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6712,7 +8568,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:884*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1111*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6725,7 +8581,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:887*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1114*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6738,7 +8598,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:890*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1118*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6751,7 +8615,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:893*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1122*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6764,7 +8628,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:896*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1125*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6777,12 +8641,20 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:899*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1128*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:900*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1130*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6795,7 +8667,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:903*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1134*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6808,7 +8684,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:906*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1138*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6821,7 +8697,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:909*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1141*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6834,12 +8710,20 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:912*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1144*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:913*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1146*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6852,7 +8736,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:916*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1150*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6865,7 +8753,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:919*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1154*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6878,7 +8766,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:922*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1157*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6891,12 +8779,20 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:925*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1160*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:926*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1162*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6909,7 +8805,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:929*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1166*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6922,7 +8822,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:932*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1170*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6935,7 +8835,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:935*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1173*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -6948,17 +8848,25 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_WC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, wm_key_recipe.0:938*/
+	/* field_cond: class_tid: 1, wm_key_recipe.0:1176*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
-	/* field_cond: class_tid: 1, proto_header_cache.wr:939*/
+	/* field_cond: class_tid: 1, proto_header_cache.wr:1178*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* cond_execute: class_tid: 1, em_flow_conflict_cache.rd:940*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* cond_execute: class_tid: 1, em_flow_conflict_cache.rd:1180*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_IDX_WC_MATCH
@@ -6967,27 +8875,52 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_TERM_FLOW
 	},
-	/* cond_execute: class_tid: 1, control.em_flow_conflict_cache_miss:942*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	/* field_cond: class_tid: 1, em_flow_conflict_cache.rd:1183*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* cond_execute: class_tid: 1, control.em_flow_conflict_cache_miss:1185*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:943*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1186*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_CNTXT_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:944*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1188*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:945*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1190*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:946*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1191*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7004,7 +8937,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_EXCLUDE_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:950*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1196*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7017,7 +8954,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:953*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1200*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7034,7 +8975,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:957*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1205*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7051,7 +8996,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:961*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1210*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7068,12 +9017,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:965*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1215*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -7085,7 +9038,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:969*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1220*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7098,7 +9055,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:972*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1224*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7111,7 +9072,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:975*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1228*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7124,7 +9089,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:978*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1232*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7137,7 +9106,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:981*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1236*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7150,7 +9123,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:984*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1240*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7163,7 +9140,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:987*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1244*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7176,7 +9157,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:990*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1248*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7189,7 +9174,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:993*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1252*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7202,7 +9191,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:996*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1256*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7215,7 +9208,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:999*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1260*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7228,7 +9225,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1002*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1264*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7241,7 +9242,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1005*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1268*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7254,7 +9259,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1008*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1272*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7267,7 +9276,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1011*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1276*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
@@ -7276,7 +9289,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_VNI
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1013*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1279*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN_GPE
@@ -7285,7 +9302,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_GPE_VNI
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1015*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1282*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7302,7 +9323,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_EXCLUDE_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1019*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1287*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7319,7 +9340,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_EXCLUDE_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1023*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1291*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7332,7 +9357,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1026*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1295*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7345,7 +9370,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1029*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1298*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7362,7 +9391,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1033*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1303*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7379,7 +9408,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1037*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1307*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7396,7 +9429,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_II_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1041*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1312*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7413,7 +9450,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1045*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1317*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7430,7 +9467,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1049*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1321*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7447,12 +9484,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1053*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1325*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -7464,7 +9505,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1057*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1330*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -7481,7 +9522,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1061*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1334*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7494,7 +9539,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1064*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1338*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7507,7 +9556,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1067*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1342*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7520,7 +9569,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1070*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1345*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7533,7 +9582,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1073*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1348*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7546,7 +9599,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1076*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1352*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7559,7 +9616,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1079*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1356*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7572,7 +9629,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1082*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1359*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7585,7 +9642,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1085*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1362*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7598,7 +9659,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1088*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1366*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7611,7 +9676,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1091*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1370*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7624,7 +9689,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1094*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1373*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7637,7 +9702,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1097*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1376*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7650,7 +9719,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1100*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1380*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7663,7 +9736,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1103*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1384*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7676,7 +9749,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1106*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1387*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7689,7 +9762,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1109*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1390*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7702,7 +9779,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1112*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1394*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7715,7 +9796,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1115*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1398*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7728,7 +9809,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1118*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1401*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7741,7 +9822,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1121*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1404*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7754,7 +9839,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1124*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1408*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7767,7 +9856,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1127*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1412*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7780,7 +9869,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1130*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1415*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7793,7 +9882,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1133*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1418*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7806,7 +9899,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1136*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1422*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7819,7 +9916,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1139*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1426*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7832,7 +9929,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1142*/
+	/* field_cond: class_tid: 1, fkb_select.em_gen_template:1429*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7845,37 +9942,57 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1145*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1432*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_CNTXT_ID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1146*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1434*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_CNTXT_ID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1147*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1436*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1148*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* field_cond: class_tid: 1, em_key_recipe.0:1438*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_GROUP_ID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1149*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	/* field_cond: class_tid: 1, em_key_recipe.0:1440*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1150*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1441*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_RECYCLE_CNT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1151*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1442*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7892,7 +10009,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_EXCLUDE_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1155*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1447*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7909,7 +10030,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_EXCLUDE_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1159*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1452*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7922,7 +10047,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1162*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1456*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7935,7 +10064,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1165*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1460*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7952,7 +10085,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1169*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1465*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7969,7 +10106,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1173*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1470*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -7986,7 +10127,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1177*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1475*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8003,7 +10148,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1181*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1480*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8020,7 +10169,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1185*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1485*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8037,12 +10190,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1189*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1490*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -8054,12 +10211,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1193*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1495*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -8071,7 +10232,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1197*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1500*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8084,7 +10249,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1200*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1504*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8097,7 +10266,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1203*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1508*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8110,7 +10283,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1206*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1512*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8123,7 +10300,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1209*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1516*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8136,7 +10317,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1212*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1520*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8149,7 +10334,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1215*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1524*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8162,7 +10351,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1218*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1528*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8175,7 +10368,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1221*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1532*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8188,7 +10385,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1224*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1536*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8201,7 +10402,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1227*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1540*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8214,7 +10419,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_TTL
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1230*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1544*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8227,7 +10436,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_TTL
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1233*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1548*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8240,7 +10453,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1236*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1552*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8253,7 +10470,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1239*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1556*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8266,7 +10487,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1242*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1560*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8279,7 +10504,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_PROTO_ID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1245*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1564*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8292,7 +10521,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1248*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1568*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8305,7 +10538,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1251*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1572*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8318,7 +10555,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_QOS
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1254*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1576*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8331,7 +10572,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_QOS
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1257*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1580*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8344,7 +10589,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1260*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1584*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8357,7 +10606,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1263*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1588*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8370,7 +10623,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1266*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1592*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8383,7 +10640,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1269*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1596*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8396,7 +10657,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1272*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1600*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8409,7 +10674,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1275*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1604*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8422,7 +10691,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1278*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1608*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_INNER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8435,7 +10708,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1281*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1612*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
@@ -8444,7 +10721,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_VNI
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1283*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1615*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN_GPE
@@ -8453,7 +10734,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_GPE_VNI
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1285*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1618*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
@@ -8462,7 +10747,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_VNI
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1287*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1621*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN_GPE
@@ -8471,7 +10760,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_T_VXLAN_GPE_VNI
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1289*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1624*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8488,7 +10781,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_EXCLUDE_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1293*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1629*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8505,7 +10798,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_EXCLUDE_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1297*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1633*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8522,7 +10819,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_EXCLUDE_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1301*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1638*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8539,7 +10836,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_EXCLUDE_FIELD_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1305*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1642*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8552,7 +10853,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1308*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1646*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8565,7 +10866,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1311*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1649*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8578,7 +10883,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1314*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1653*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8591,7 +10896,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_SMAC
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1317*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1656*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8608,7 +10917,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1321*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1661*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8625,7 +10934,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1325*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1665*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8642,7 +10955,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1329*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1670*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8659,7 +10972,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1333*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1674*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8676,7 +10993,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_II_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1337*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1679*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8693,7 +11014,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1341*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1684*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8710,7 +11031,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1345*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1688*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8727,7 +11048,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1349*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1692*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8744,7 +11069,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_II_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1353*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1697*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8761,7 +11090,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_IO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1357*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1702*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8778,7 +11107,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OI_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1361*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1706*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8795,12 +11124,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_OO_VLAN_VID
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1365*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1710*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -8812,7 +11145,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1369*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1715*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -8829,12 +11162,16 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1373*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1719*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
 	},
 	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
 	},
@@ -8846,7 +11183,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1377*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1724*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
@@ -8863,7 +11200,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_TYPE
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1381*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1728*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8876,7 +11217,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1384*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1732*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8889,7 +11230,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1387*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1735*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8902,7 +11247,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1390*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1739*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8915,7 +11260,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1393*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1742*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8928,7 +11277,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1396*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1746*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8941,7 +11290,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1399*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1749*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8954,7 +11307,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1402*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1753*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8967,7 +11320,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_SRC_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1405*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1756*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8980,7 +11337,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1408*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1760*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -8993,7 +11350,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1411*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1763*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -9006,7 +11367,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1414*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1767*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -9019,33 +11380,11 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1417*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
-	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV6
-	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_DST_ADDR
-	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1420*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
-	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
-	},
+	/* field_cond: class_tid: 1, em_key_recipe.0:1770*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1423*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -9058,7 +11397,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1426*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1774*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
@@ -9071,7 +11410,41 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_GLB_HF_ID_O_IPV6_DST_ADDR
 	},
-	/* field_cond: class_tid: 1, em_key_recipe.0:1429*/
+	/* field_cond: class_tid: 1, em_key_recipe.0:1777*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_OUTER_LOOP
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_I_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_GLB_HF_ID_I_IPV6_DST_ADDR
+	},
+	/* field_cond: class_tid: 1, em_key_recipe.0:1781*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_CF_BIT_IS_TUNNEL
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET,
+	.cond_operand