net/bnxt: cleanup ULP parser and mapper
authorShahaji Bhosle <sbhosle@broadcom.com>
Sun, 30 May 2021 08:59:27 +0000 (14:29 +0530)
committerAjit Khaparde <ajit.khaparde@broadcom.com>
Thu, 8 Jul 2021 00:02:14 +0000 (02:02 +0200)
1. Disable accum_stats for Thor
2. Delete the generic port table for default flow
3. The packet mask to calculate the number of packets must be 28 bits.
4. Increase the WC TCAM entries to 512 per application and add 2
   shared L2 context TCAM entries to match identifiers for flow
   scaling
5. Ignore multiple critical resources in ULP flow database
6. Renamed conditional code update to function opcode.
7. Updated TRUFLOW debug logs to support the above changes.
8. As part of the HA cleanup, the shared session name now allows the user
   to designate that the session uses the wc_tcam regions within the
   shared session.
9. The CFA action pointer does not exist if there is no support for
   VF representor, so no need to display the message for use case where
   there is no support for VF representors.
10. Cleanup flow counter software accumulation.
11. When an application exits ungracefully, the HA code now
    clears the appropriate shared WC region and sets the HA state.
12. Removal of unnecessary INFO message.  The message is an indicator that
    the ports are being removed from DPDK, but all cleanup has not
    completed.  Once the cleanup is completed, the timer will be stopped.

Signed-off-by: Shahaji Bhosle <sbhosle@broadcom.com>
Signed-off-by: Mike Baucom <michael.baucom@broadcom.com>
Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
37 files changed:
drivers/net/bnxt/hcapi/cfa/hcapi_cfa.h
drivers/net/bnxt/hcapi/cfa/hcapi_cfa_defs.h
drivers/net/bnxt/hcapi/cfa/hcapi_cfa_p4.c
drivers/net/bnxt/tf_core/bitalloc.h
drivers/net/bnxt/tf_core/cfa_resource_types.h
drivers/net/bnxt/tf_core/dpool.h
drivers/net/bnxt/tf_core/tf_core.h
drivers/net/bnxt/tf_core/tf_em.h
drivers/net/bnxt/tf_core/tf_session.h
drivers/net/bnxt/tf_core/tf_shadow_tcam.c
drivers/net/bnxt/tf_core/tfp.h
drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c [new file with mode: 0644]
drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.h [new file with mode: 0644]
drivers/net/bnxt/tf_ulp/bnxt_ulp.c
drivers/net/bnxt/tf_ulp/bnxt_ulp.h
drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c
drivers/net/bnxt/tf_ulp/meson.build
drivers/net/bnxt/tf_ulp/ulp_def_rules.c
drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c
drivers/net/bnxt/tf_ulp/ulp_fc_mgr.h
drivers/net/bnxt/tf_ulp/ulp_flow_db.c
drivers/net/bnxt/tf_ulp/ulp_flow_db.h
drivers/net/bnxt/tf_ulp/ulp_gen_tbl.c
drivers/net/bnxt/tf_ulp/ulp_ha_mgr.c
drivers/net/bnxt/tf_ulp/ulp_mapper.c
drivers/net/bnxt/tf_ulp/ulp_mapper.h
drivers/net/bnxt/tf_ulp/ulp_port_db.c
drivers/net/bnxt/tf_ulp/ulp_rte_parser.c
drivers/net/bnxt/tf_ulp/ulp_rte_parser.h
drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h
drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c
drivers/net/bnxt/tf_ulp/ulp_template_db_thor_act.c
drivers/net/bnxt/tf_ulp/ulp_template_db_thor_class.c
drivers/net/bnxt/tf_ulp/ulp_template_db_wh_plus_class.c
drivers/net/bnxt/tf_ulp/ulp_template_struct.h
drivers/net/bnxt/tf_ulp/ulp_utils.c
drivers/net/bnxt/tf_ulp/ulp_utils.h

index 59e1c06..f9190fc 100644 (file)
@@ -39,7 +39,7 @@ struct hcapi_cfa_devinfo {
 /** CFA device specific function hooks structure
  *
  * The following device hooks can be defined; unless noted otherwise, they are
- * optional and can be filled with a null pointer. The pupose of these hooks
+ * optional and can be filled with a null pointer. The purpose of these hooks
  * to support CFA device operations for different device variants.
  */
 struct hcapi_cfa_devops {
@@ -88,7 +88,7 @@ struct hcapi_cfa_devops {
         *   is stored.  It holds the bucket index and the data pointer of
         *   a dynamic bucket that is chained to static bucket
         *   When using the HWOP GET, this is a pointer to the key location
-        *   which should be retreved.
+        *   which should be retrieved.
         *
         *   (valid for SR2 only).
         * @return
index 581dc6b..16a3159 100644 (file)
@@ -231,7 +231,7 @@ struct hcapi_cfa_key_tbl {
        uint32_t size;
        /** [in] number of key buckets, applicable for newer chips */
        uint32_t num_buckets;
-       /** [in] For EEM, this is KEY1 base mem pointer. Fo off-chip EM,
+       /** [in] For EEM, this is KEY1 base mem pointer. For off-chip EM,
         *  this is the key record memory base pointer within the key table,
         *  applicable for newer chip
         */
@@ -273,8 +273,8 @@ struct hcapi_cfa_key_data {
        uint8_t tbl_scope;
        /** [in] the fid owner of the key */
        uint64_t metadata;
-       /** [in] stored with the bucket which can be used to by
-        *       the caller to retreved later via the GET HW OP.
+       /** [in] stored with the bucket which can be used by
+        *       the caller to retrieve later via the GET HW OP.
         */
 };
 
index 813b339..0dca099 100644 (file)
@@ -227,7 +227,7 @@ static int hcapi_cfa_p4_key_hw_op_del(struct hcapi_cfa_hwop *op,
        return rc;
 }
 
-/** Apporiximation of hcapi_cfa_key_hw_op()
+/** Approximation of hcapi_cfa_key_hw_op()
  *
  *
  */
index e3b389e..db8a09a 100644 (file)
@@ -60,7 +60,7 @@ struct bitalloc {
 #define BA_NO_ENTRY_FOUND   -1
 
 /**
- * Initializates the bitallocator
+ * Initializes the bitallocator
  *
  * Returns 0 on success, -1 on failure.  Size is arbitrary up to
  * BITALLOC_MAX_SIZE
index b63b87b..0d7df29 100644 (file)
@@ -57,7 +57,7 @@
 #define CFA_RESOURCE_TYPE_P59_RANGE_PROF         0x15UL
 /* Range */
 #define CFA_RESOURCE_TYPE_P59_RANGE              0x16UL
-/* Link Aggrigation */
+/* Link Aggregation */
 #define CFA_RESOURCE_TYPE_P59_LAG                0x17UL
 /* VEB TCAM */
 #define CFA_RESOURCE_TYPE_P59_VEB_TCAM           0x18UL
index 8b0a418..fb79c7b 100644 (file)
@@ -98,7 +98,7 @@ struct dpool_adj_list_entry {
  *
  * A list of references to entries in the dpool entry array that
  * have free entries to the left and right. Since we pack to the
- * left entries will always have a non zero left cout.
+ * left entries will always have a non zero left out.
  *
  * Used only during the defrag operation.
  */
@@ -281,17 +281,17 @@ void dpool_dump(struct dpool *dpool);
 /**
  * dpool_defrag
  *
- * De-fragment the dpool array and apply the specified defrag stratagy.
+ * De-fragment the dpool array and apply the specified defrag strategy.
  *
  * [in] dpool
  *      The dpool
  *
  * [in] entry_size
- *      If using the DP_DEFRAG_TO_FIT stratagy defrag will stop when there's
+ *      If using the DP_DEFRAG_TO_FIT strategy defrag will stop when there's
  *      at least entry_size space available.
  *
  * [i] defrag
- *     Defrag stratagy:
+ *     Defrag strategy:
  *
  *     DP_DEFRAG_ALL    (0x1) - Defrag until there is nothing left
  *                              to defrag.
index be5725a..84b234f 100644 (file)
@@ -396,7 +396,7 @@ enum tf_search_status {
 enum tf_em_tbl_type {
        /** The number of internal EM records for the session */
        TF_EM_TBL_TYPE_EM_RECORD,
-       /** The number of table scopes reequested */
+       /** The number of table scopes requested */
        TF_EM_TBL_TYPE_TBL_SCOPE,
        TF_EM_TBL_TYPE_MAX
 };
@@ -415,7 +415,7 @@ enum tf_em_tbl_type {
  */
 struct tf_session_info {
        /**
-        * TrueFlow Version. Used to control the structure layout when
+        * TruFlow Version. Used to control the structure layout when
         * sharing sessions. No guarantee that a secondary process
         * would come from the same version of an executable.
         * TruFlow initializes this variable on tf_open_session().
@@ -520,7 +520,7 @@ struct tf_identifier_resources {
 struct tf_tbl_resources {
        /**
         * Array of TF Table types where each entry is expected to be
-        * set to the requeste resource number of that specific
+        * set to the requested resource number of that specific
         * type. The index used is tf_tbl_type.
         */
        uint16_t cnt[TF_TBL_TYPE_MAX];
@@ -1677,7 +1677,7 @@ struct tf_search_tbl_entry_parms {
  *
  * Implementation:
  *
- * A hash is performed on the result data and mappe3d to a shadow copy entry
+ * A hash is performed on the result data and mapped to a shadow copy entry
  * where the result is populated.  If the result matches the entry, hit is set,
  * ref_cnt is incremented (if alloc), and the search status indicates what
  * action the caller can take regarding setting the entry.
index 9d168c3..568071a 100644 (file)
@@ -95,7 +95,7 @@
  *  |   Index      |E |
  *  +--------------+--+
  *
- * E = Entry (bucket inndex)
+ * E = Entry (bucket index)
  */
 #define TF_EM_INTERNAL_INDEX_SHIFT 2
 #define TF_EM_INTERNAL_INDEX_MASK 0xFFFC
index c2875f9..d68421c 100644 (file)
@@ -59,7 +59,7 @@
  * tf_session_info.
  */
 struct tf_session {
-       /** TrueFlow Version. Used to control the structure layout
+       /** TruFlow Version. Used to control the structure layout
         * when sharing sessions. No guarantee that a secondary
         * process would come from the same version of an executable.
         */
index 523261f..5fcd1f9 100644 (file)
@@ -25,7 +25,7 @@
  *   - the result table is stored separately since it only needs to be accessed
  *   when the key matches.
  *   - the result has a back pointer to the hash table via the hb handle.  The
- *   hb handle is a 32 bit represention of the hash with a valid bit, bucket
+ *   hb handle is a 32 bit representation of the hash with a valid bit, bucket
  *   element index, and the hash index.  It is necessary to store the hb handle
  *   with the result since subsequent removes only provide the tcam index.
  *
index 58f34bb..dd0a347 100644 (file)
@@ -38,7 +38,7 @@ struct tfp_spinlock_parms {
 /**
  * @file
  *
- * TrueFlow Portability API Header File
+ * TruFlow Portability API Header File
  */
 
 /**
@@ -119,8 +119,8 @@ struct tfp_calloc_parms {
  */
 
 /**
- * Provides communication capability from the TrueFlow API layer to
- * the TrueFlow firmware. The portability layer internally provides
+ * Provides communication capability from the TruFlow API layer to
+ * the TruFlow firmware. The portability layer internally provides
  * the transport to the firmware.
  *
  * [in] session, pointer to session handle
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c b/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c
new file mode 100644 (file)
index 0000000..b09ccce
--- /dev/null
@@ -0,0 +1,378 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2021-2021 Broadcom
+ * All rights reserved.
+ */
+
+#include <glob.h>
+#include <libgen.h>
+#include <stdio.h>
+#include <net/if.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <unistd.h>
+
+#include "bnxt.h"
+#include "bnxt_vnic.h"
+#include "bnxt_hwrm.h"
+#include "bnxt_tf_common.h"
+#include "bnxt_tf_pmd_shim.h"
+
+struct bnxt *
+bnxt_pmd_get_bp(uint16_t port)
+{
+       struct bnxt *bp;
+       struct rte_eth_dev *dev;
+
+       if (!rte_eth_dev_is_valid_port(port)) {
+               PMD_DRV_LOG(ERR, "Invalid port %d\n", port);
+               return NULL;
+       }
+
+       dev = &rte_eth_devices[port];
+       if (!is_bnxt_supported(dev)) {
+               PMD_DRV_LOG(ERR, "Device %d not supported\n", port);
+               return NULL;
+       }
+
+       bp = (struct bnxt *)dev->data->dev_private;
+       if (!BNXT_TRUFLOW_EN(bp)) {
+               PMD_DRV_LOG(ERR, "TRUFLOW not enabled\n");
+               return NULL;
+       }
+
+       return bp;
+}
+
+int32_t bnxt_rss_config_action_apply(struct bnxt_ulp_mapper_parms *parms)
+{
+       struct bnxt_vnic_info *vnic = NULL;
+       struct bnxt *bp = NULL;
+       uint64_t rss_types;
+       uint16_t hwrm_type;
+       uint32_t rss_level, key_len;
+       uint8_t *rss_key;
+       struct ulp_rte_act_prop *ap = parms->act_prop;
+       int32_t rc = -EINVAL;
+
+       bp = bnxt_pmd_get_bp(parms->port_id);
+       if (bp == NULL) {
+               BNXT_TF_DBG(ERR, "Invalid bp for port_id %u\n", parms->port_id);
+               return rc;
+       }
+       vnic = BNXT_GET_DEFAULT_VNIC(bp);
+       if (vnic == NULL) {
+               BNXT_TF_DBG(ERR, "default vnic not available for %u\n",
+                           parms->port_id);
+               return rc;
+       }
+
+       /* get the details */
+       memcpy(&rss_types, &ap->act_details[BNXT_ULP_ACT_PROP_IDX_RSS_TYPES],
+              BNXT_ULP_ACT_PROP_SZ_RSS_TYPES);
+       memcpy(&rss_level, &ap->act_details[BNXT_ULP_ACT_PROP_IDX_RSS_LEVEL],
+              BNXT_ULP_ACT_PROP_SZ_RSS_LEVEL);
+       memcpy(&key_len, &ap->act_details[BNXT_ULP_ACT_PROP_IDX_RSS_KEY_LEN],
+              BNXT_ULP_ACT_PROP_SZ_RSS_KEY_LEN);
+       rss_key = &ap->act_details[BNXT_ULP_ACT_PROP_IDX_RSS_KEY];
+
+       hwrm_type = bnxt_rte_to_hwrm_hash_types(rss_types);
+       if (!hwrm_type) {
+               BNXT_TF_DBG(ERR, "Error unsupported rss config type\n");
+               return rc;
+       }
+       /* Configure RSS only if the queue count is > 1 */
+       if (vnic->rx_queue_cnt > 1) {
+               vnic->hash_type = hwrm_type;
+               vnic->hash_mode =
+                       bnxt_rte_to_hwrm_hash_level(bp, rss_types, rss_level);
+               memcpy(vnic->rss_hash_key, rss_key,
+                      BNXT_ULP_ACT_PROP_SZ_RSS_KEY);
+               rc = bnxt_hwrm_vnic_rss_cfg(bp, vnic);
+               if (rc) {
+                       BNXT_TF_DBG(ERR, "Error configuring vnic RSS config\n");
+                       return rc;
+               }
+               BNXT_TF_DBG(INFO, "Rss config successfully applied\n");
+       }
+       return 0;
+}
+
+#define PARENT_PHY_INTF_PATH "/sys/bus/pci/devices/%s/physfn/net/*"
+#define ULP_PRT_MAC_PATH "/sys/bus/pci/devices/%s/physfn/net/%s/address"
+
+#define ULP_FILE_PATH_SIZE 256
+
+static int32_t glob_error_fn(const char *epath, int32_t eerrno)
+{
+       BNXT_TF_DBG(ERR, "path %s error %d\n", epath, eerrno);
+       return 0;
+}
+
+
+static int32_t ulp_pmd_get_mac_by_pci(const char *pci_name, uint8_t *mac)
+{
+       char path[ULP_FILE_PATH_SIZE], dev_str[ULP_FILE_PATH_SIZE];
+       char *intf_name;
+       glob_t gres;
+       FILE *fp;
+       int32_t rc = -EINVAL;
+
+       memset(path, 0, sizeof(path));
+       sprintf(path, PARENT_PHY_INTF_PATH, pci_name);
+
+       /* There can be only one, no more, no less */
+       if (glob(path, 0, glob_error_fn, &gres) == 0) {
+               if (gres.gl_pathc != 1)
+                       return rc;
+
+               /* Replace the PCI address with interface name and get index */
+               intf_name = basename(gres.gl_pathv[0]);
+               sprintf(path, ULP_PRT_MAC_PATH, pci_name, intf_name);
+
+               fp = fopen(path, "r");
+               if (!fp) {
+                       BNXT_TF_DBG(ERR, "Error in getting bond mac address\n");
+                       return rc;
+               }
+
+               memset(dev_str, 0, sizeof(dev_str));
+               if (fgets(dev_str, sizeof(dev_str), fp) == NULL) {
+                       BNXT_TF_DBG(ERR, "Error in reading %s\n", path);
+                       fclose(fp);
+                       return rc;
+               }
+
+               if (sscanf(dev_str, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx\n",
+                          &mac[0], &mac[1], &mac[2],
+                          &mac[3], &mac[4], &mac[5]) == 6)
+                       rc = 0;
+               fclose(fp);
+       }
+       return rc;
+}
+
+int32_t bnxt_pmd_get_parent_mac_addr(struct bnxt_ulp_mapper_parms *parms,
+                                    uint8_t *mac)
+{
+       struct bnxt *bp = NULL;
+       int32_t rc = -EINVAL;
+
+       bp = bnxt_pmd_get_bp(parms->port_id);
+       if (bp == NULL) {
+               BNXT_TF_DBG(ERR, "Invalid bp for port_id %u\n", parms->port_id);
+               return rc;
+       }
+       return ulp_pmd_get_mac_by_pci(bp->pdev->name, &mac[2]);
+}
+
+uint16_t
+bnxt_pmd_get_svif(uint16_t port_id, bool func_svif,
+             enum bnxt_ulp_intf_type type)
+{
+       struct rte_eth_dev *eth_dev;
+       struct bnxt *bp;
+
+       eth_dev = &rte_eth_devices[port_id];
+       if (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev)) {
+               struct bnxt_representor *vfr = eth_dev->data->dev_private;
+               if (!vfr)
+                       return 0;
+
+               if (type == BNXT_ULP_INTF_TYPE_VF_REP)
+                       return vfr->svif;
+
+               eth_dev = vfr->parent_dev;
+       }
+
+       bp = eth_dev->data->dev_private;
+
+       return func_svif ? bp->func_svif : bp->port_svif;
+}
+
+void
+bnxt_pmd_get_iface_mac(uint16_t port, enum bnxt_ulp_intf_type type,
+                      uint8_t *mac, uint8_t *parent_mac)
+{
+       struct rte_eth_dev *eth_dev;
+       struct bnxt *bp;
+
+       if (type != BNXT_ULP_INTF_TYPE_TRUSTED_VF &&
+           type != BNXT_ULP_INTF_TYPE_PF)
+               return;
+
+       eth_dev = &rte_eth_devices[port];
+       bp = eth_dev->data->dev_private;
+       memcpy(mac, bp->mac_addr, RTE_ETHER_ADDR_LEN);
+
+       if (type == BNXT_ULP_INTF_TYPE_TRUSTED_VF)
+               memcpy(parent_mac, bp->parent->mac_addr, RTE_ETHER_ADDR_LEN);
+}
+
+uint16_t
+bnxt_pmd_get_parent_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type)
+{
+       struct rte_eth_dev *eth_dev;
+       struct bnxt *bp;
+
+       if (type != BNXT_ULP_INTF_TYPE_TRUSTED_VF)
+               return 0;
+
+       eth_dev = &rte_eth_devices[port];
+       bp = eth_dev->data->dev_private;
+
+       return bp->parent->vnic;
+}
+
+uint16_t
+bnxt_pmd_get_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type)
+{
+       struct rte_eth_dev *eth_dev;
+       struct bnxt_vnic_info *vnic;
+       struct bnxt *bp;
+
+       eth_dev = &rte_eth_devices[port];
+       if (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev)) {
+               struct bnxt_representor *vfr = eth_dev->data->dev_private;
+               if (!vfr)
+                       return 0;
+
+               if (type == BNXT_ULP_INTF_TYPE_VF_REP)
+                       return vfr->dflt_vnic_id;
+
+               eth_dev = vfr->parent_dev;
+       }
+
+       bp = eth_dev->data->dev_private;
+
+       vnic = BNXT_GET_DEFAULT_VNIC(bp);
+
+       return vnic->fw_vnic_id;
+}
+
+uint16_t
+bnxt_pmd_get_fw_func_id(uint16_t port, enum bnxt_ulp_intf_type type)
+{
+       struct rte_eth_dev *eth_dev;
+       struct bnxt *bp;
+
+       eth_dev = &rte_eth_devices[port];
+       if (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev)) {
+               struct bnxt_representor *vfr = eth_dev->data->dev_private;
+               if (!vfr)
+                       return 0;
+
+               if (type == BNXT_ULP_INTF_TYPE_VF_REP)
+                       return vfr->fw_fid;
+
+               eth_dev = vfr->parent_dev;
+       }
+
+       bp = eth_dev->data->dev_private;
+
+       return bp->fw_fid;
+}
+
+enum bnxt_ulp_intf_type
+bnxt_pmd_get_interface_type(uint16_t port)
+{
+       struct rte_eth_dev *eth_dev;
+       struct bnxt *bp;
+
+       eth_dev = &rte_eth_devices[port];
+       if (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev))
+               return BNXT_ULP_INTF_TYPE_VF_REP;
+
+       bp = eth_dev->data->dev_private;
+       if (BNXT_PF(bp))
+               return BNXT_ULP_INTF_TYPE_PF;
+       else if (BNXT_VF_IS_TRUSTED(bp))
+               return BNXT_ULP_INTF_TYPE_TRUSTED_VF;
+       else if (BNXT_VF(bp))
+               return BNXT_ULP_INTF_TYPE_VF;
+
+       return BNXT_ULP_INTF_TYPE_INVALID;
+}
+
+uint16_t
+bnxt_pmd_get_phy_port_id(uint16_t port_id)
+{
+       struct bnxt_representor *vfr;
+       struct rte_eth_dev *eth_dev;
+       struct bnxt *bp;
+
+       eth_dev = &rte_eth_devices[port_id];
+       if (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev)) {
+               vfr = eth_dev->data->dev_private;
+               if (!vfr)
+                       return 0;
+
+               eth_dev = vfr->parent_dev;
+       }
+
+       bp = eth_dev->data->dev_private;
+
+       return BNXT_PF(bp) ? bp->pf->port_id : bp->parent->port_id;
+}
+
+uint16_t
+bnxt_pmd_get_parif(uint16_t port_id, enum bnxt_ulp_intf_type type)
+{
+       struct rte_eth_dev *eth_dev;
+       struct bnxt *bp;
+
+       eth_dev = &rte_eth_devices[port_id];
+       if (BNXT_ETH_DEV_IS_REPRESENTOR(eth_dev)) {
+               struct bnxt_representor *vfr = eth_dev->data->dev_private;
+               if (!vfr)
+                       return 0;
+
+               if (type == BNXT_ULP_INTF_TYPE_VF_REP)
+                       return vfr->fw_fid - 1;
+
+               eth_dev = vfr->parent_dev;
+       }
+
+       bp = eth_dev->data->dev_private;
+
+       return BNXT_PF(bp) ? bp->fw_fid - 1 : bp->parent->fid - 1;
+}
+
+uint16_t
+bnxt_pmd_get_vport(uint16_t port_id)
+{
+       return (1 << bnxt_pmd_get_phy_port_id(port_id));
+}
+
+
+int32_t
+bnxt_pmd_set_unicast_rxmask(struct rte_eth_dev *eth_dev)
+{
+       struct bnxt *bp = eth_dev->data->dev_private;
+       struct bnxt_vnic_info *vnic;
+       uint32_t old_flags;
+       int32_t rc;
+
+       rc = is_bnxt_in_error(bp);
+       if (rc)
+               return rc;
+
+       /* Filter settings will get applied when port is started */
+       if (!eth_dev->data->dev_started)
+               return 0;
+
+       if (bp->vnic_info == NULL)
+               return 0;
+
+       vnic = BNXT_GET_DEFAULT_VNIC(bp);
+
+       old_flags = vnic->flags;
+       vnic->flags |= BNXT_VNIC_INFO_UCAST;
+       vnic->flags &= ~BNXT_VNIC_INFO_PROMISC;
+       vnic->flags &= ~BNXT_VNIC_INFO_ALLMULTI;
+       vnic->flags &= ~BNXT_VNIC_INFO_BCAST;
+       rc = bnxt_hwrm_cfa_l2_set_rx_mask(bp, vnic, 0, NULL);
+       if (rc != 0)
+               vnic->flags = old_flags;
+
+       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
new file mode 100644 (file)
index 0000000..229e218
--- /dev/null
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2021-2021 Broadcom
+ * All rights reserved.
+ */
+
+#ifndef _BNXT_TF_PMD_ABSTRACT_H_
+#define _BNXT_TF_PMD_ABSTRACT_H_
+
+#include "bnxt_tf_common.h"
+#include "ulp_mapper.h"
+
+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);
+void bnxt_pmd_get_iface_mac(uint16_t port, enum bnxt_ulp_intf_type type,
+                           uint8_t *mac, uint8_t *parent_mac);
+uint16_t bnxt_pmd_get_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);
+uint16_t bnxt_pmd_get_parent_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);
+struct bnxt *bnxt_pmd_get_bp(uint16_t port);
+uint16_t bnxt_pmd_get_svif(uint16_t port_id, bool func_svif,
+                          enum bnxt_ulp_intf_type type);
+uint16_t bnxt_pmd_get_fw_func_id(uint16_t port, enum bnxt_ulp_intf_type type);
+uint16_t bnxt_pmd_get_parif(uint16_t port, enum bnxt_ulp_intf_type type);
+uint16_t bnxt_pmd_get_phy_port_id(uint16_t port);
+uint16_t bnxt_pmd_get_vport(uint16_t port);
+enum bnxt_ulp_intf_type bnxt_pmd_get_interface_type(uint16_t port);
+int32_t bnxt_pmd_set_unicast_rxmask(struct rte_eth_dev *eth_dev);
+
+#endif /* _BNXT_TF_PMD_ABSTRACT_H_ */
index 5f15400..fa2148e 100644 (file)
@@ -25,6 +25,7 @@
 #include "ulp_port_db.h"
 #include "ulp_tun.h"
 #include "ulp_ha_mgr.h"
+#include "bnxt_tf_pmd_shim.h"
 
 /* Linked list of all TF sessions. */
 STAILQ_HEAD(, bnxt_ulp_session_state) bnxt_ulp_session_list =
@@ -67,7 +68,6 @@ bnxt_ulp_devid_get(struct bnxt *bp,
                   enum bnxt_ulp_device_id  *ulp_dev_id)
 {
        if (BNXT_CHIP_P5(bp)) {
-               /* TBD: needs to accommodate even SR2 */
                *ulp_dev_id = BNXT_ULP_DEVICE_ID_THOR;
                return 0;
        }
@@ -123,7 +123,7 @@ bnxt_ulp_named_resources_calc(struct bnxt_ulp_context *ulp_ctx,
                              uint32_t num,
                              struct tf_session_resources *res)
 {
-       uint32_t dev_id, res_type, i;
+       uint32_t dev_id = BNXT_ULP_DEVICE_ID_LAST, res_type, i;
        enum tf_dir dir;
        uint8_t app_id;
        int32_t rc = 0;
@@ -331,6 +331,9 @@ bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,
                if (info[i].flags & BNXT_ULP_APP_CAP_HOT_UPGRADE_EN)
                        ulp_ctx->cfg_data->ulp_flags |=
                                BNXT_ULP_HIGH_AVAIL_ENABLED;
+               if (info[i].flags & BNXT_ULP_APP_CAP_UNICAST_ONLY)
+                       ulp_ctx->cfg_data->ulp_flags |=
+                               BNXT_ULP_APP_UNICAST_ONLY;
        }
        if (!found) {
                BNXT_TF_DBG(ERR, "APP ID %d, Device ID: 0x%x not supported.\n",
@@ -378,8 +381,8 @@ ulp_ctx_shared_session_open(struct bnxt *bp,
        struct rte_eth_dev *ethdev = bp->eth_dev;
        struct tf_session_resources *resources;
        struct tf_open_session_parms parms;
-       size_t copy_num_bytes;
-       uint32_t ulp_dev_id;
+       size_t copy_nbytes;
+       uint32_t ulp_dev_id = BNXT_ULP_DEVICE_ID_LAST;
        int32_t rc = 0;
 
        /* only perform this if shared session is enabled. */
@@ -401,11 +404,19 @@ ulp_ctx_shared_session_open(struct bnxt *bp,
         * Need to account for size of ctrl_chan_name and 1 extra for Null
         * terminator
         */
-       copy_num_bytes = sizeof(parms.ctrl_chan_name) -
+       copy_nbytes = sizeof(parms.ctrl_chan_name) -
                strlen(parms.ctrl_chan_name) - 1;
 
-       /* Build the ctrl_chan_name with shared token */
-       strncat(parms.ctrl_chan_name, "-tf_shared", copy_num_bytes);
+       /*
+        * Build the ctrl_chan_name with shared token.
+        * When HA is enabled, the WC TCAM needs extra management by the core,
+        * so add the wc_tcam string to the control channel.
+        */
+       if (bnxt_ulp_cntxt_ha_enabled(bp->ulp_ctx))
+               strncat(parms.ctrl_chan_name, "-tf_shared-wc_tcam",
+                       copy_nbytes);
+       else
+               strncat(parms.ctrl_chan_name, "-tf_shared", copy_nbytes);
 
        rc = bnxt_ulp_tf_shared_session_resources_get(bp->ulp_ctx, resources);
        if (rc)
@@ -504,7 +515,7 @@ ulp_ctx_session_open(struct bnxt *bp,
        int32_t                         rc = 0;
        struct tf_open_session_parms    params;
        struct tf_session_resources     *resources;
-       uint32_t                        ulp_dev_id;
+       uint32_t ulp_dev_id = BNXT_ULP_DEVICE_ID_LAST;
 
        memset(&params, 0, sizeof(params));
 
@@ -835,7 +846,7 @@ static int32_t
 ulp_dparms_init(struct bnxt *bp, struct bnxt_ulp_context *ulp_ctx)
 {
        struct bnxt_ulp_device_params *dparms;
-       uint32_t dev_id;
+       uint32_t dev_id = BNXT_ULP_DEVICE_ID_LAST;
 
        if (!bp->max_num_kflows) {
                /* Defaults to Internal */
@@ -890,7 +901,7 @@ ulp_ctx_attach(struct bnxt *bp,
               struct bnxt_ulp_session_state *session)
 {
        int32_t rc = 0;
-       uint32_t flags, dev_id;
+       uint32_t flags, dev_id = BNXT_ULP_DEVICE_ID_LAST;
        uint8_t app_id;
 
        /* Increment the ulp context data reference count usage. */
@@ -1350,15 +1361,21 @@ bnxt_ulp_port_init(struct bnxt *bp)
 {
        struct bnxt_ulp_session_state *session;
        bool initialized;
+       enum bnxt_ulp_device_id devid = BNXT_ULP_DEVICE_ID_LAST;
+       uint32_t ulp_flags;
        int32_t rc = 0;
 
-       if (!bp || !BNXT_TRUFLOW_EN(bp))
-               return rc;
-
        if (!BNXT_PF(bp) && !BNXT_VF_IS_TRUSTED(bp)) {
                BNXT_TF_DBG(ERR,
                            "Skip ulp init for port: %d, not a TVF or PF\n",
-                       bp->eth_dev->data->port_id);
+                           bp->eth_dev->data->port_id);
+               return rc;
+       }
+
+       if (!BNXT_TRUFLOW_EN(bp)) {
+               BNXT_TF_DBG(DEBUG,
+                           "Skip ulp init for port: %d, truflow is not enabled\n",
+                           bp->eth_dev->data->port_id);
                return rc;
        }
 
@@ -1436,11 +1453,31 @@ bnxt_ulp_port_init(struct bnxt *bp)
                goto jump_to_error;
        }
 
-       if (BNXT_ACCUM_STATS_EN(bp))
+       rc = bnxt_ulp_devid_get(bp, &devid);
+       if (rc) {
+               BNXT_TF_DBG(ERR, "Unable to determine device for ULP port init.\n");
+               goto jump_to_error;
+       }
+
+       if (devid != BNXT_ULP_DEVICE_ID_THOR && BNXT_ACCUM_STATS_EN(bp))
                bp->ulp_ctx->cfg_data->accum_stats = true;
 
-       BNXT_TF_DBG(DEBUG, "BNXT Port:%d ULP port init\n",
-                   bp->eth_dev->data->port_id);
+       BNXT_TF_DBG(DEBUG, "BNXT Port:%d ULP port init, accum_stats:%d\n",
+                   bp->eth_dev->data->port_id,
+                   bp->ulp_ctx->cfg_data->accum_stats);
+
+       /* set the unicast mode */
+       if (bnxt_ulp_cntxt_ptr2_ulp_flags_get(bp->ulp_ctx, &ulp_flags)) {
+               BNXT_TF_DBG(ERR, "Error in getting ULP context flags\n");
+               goto jump_to_error;
+       }
+       if (ulp_flags & BNXT_ULP_APP_UNICAST_ONLY) {
+               if (bnxt_pmd_set_unicast_rxmask(bp->eth_dev)) {
+                       BNXT_TF_DBG(ERR, "Error in setting unicast rxmode\n");
+                       goto jump_to_error;
+               }
+       }
+
        return rc;
 
 jump_to_error:
@@ -1459,9 +1496,6 @@ bnxt_ulp_port_deinit(struct bnxt *bp)
        struct rte_pci_device *pci_dev;
        struct rte_pci_addr *pci_addr;
 
-       if (!BNXT_TRUFLOW_EN(bp))
-               return;
-
        if (!BNXT_PF(bp) && !BNXT_VF_IS_TRUSTED(bp)) {
                BNXT_TF_DBG(ERR,
                            "Skip ULP deinit port:%d, not a TVF or PF\n",
@@ -1469,6 +1503,13 @@ bnxt_ulp_port_deinit(struct bnxt *bp)
                return;
        }
 
+       if (!BNXT_TRUFLOW_EN(bp)) {
+               BNXT_TF_DBG(DEBUG,
+                           "Skip ULP deinit for port:%d, truflow is not enabled\n",
+                           bp->eth_dev->data->port_id);
+               return;
+       }
+
        if (!bp->ulp_ctx) {
                BNXT_TF_DBG(DEBUG, "ulp ctx already de-allocated\n");
                return;
@@ -1599,7 +1640,7 @@ bnxt_ulp_cntxt_dev_id_get(struct bnxt_ulp_context *ulp_ctx,
                *dev_id = ulp_ctx->cfg_data->dev_id;
                return 0;
        }
-
+       *dev_id = BNXT_ULP_DEVICE_ID_LAST;
        BNXT_TF_DBG(ERR, "Failed to read dev_id from ulp ctxt\n");
        return -EINVAL;
 }
@@ -1624,6 +1665,7 @@ bnxt_ulp_cntxt_mem_type_get(struct bnxt_ulp_context *ulp_ctx,
                *mem_type = ulp_ctx->cfg_data->mem_type;
                return 0;
        }
+       *mem_type = BNXT_ULP_FLOW_MEM_TYPE_LAST;
        BNXT_TF_DBG(ERR, "Failed to read mem_type in ulp ctxt\n");
        return -EINVAL;
 }
@@ -1663,6 +1705,13 @@ bnxt_ulp_cntxt_shared_tfp_set(struct bnxt_ulp_context *ulp, struct tf *tfp)
                return -EINVAL;
        }
 
+       if (tfp == NULL) {
+               if (ulp->cfg_data->num_shared_clients > 0)
+                       ulp->cfg_data->num_shared_clients--;
+       } else {
+               ulp->cfg_data->num_shared_clients++;
+       }
+
        ulp->g_shared_tfp = tfp;
        return 0;
 }
@@ -1678,6 +1727,17 @@ bnxt_ulp_cntxt_shared_tfp_get(struct bnxt_ulp_context *ulp)
        return ulp->g_shared_tfp;
 }
 
+/* Function to get the number of shared clients attached */
+uint8_t
+bnxt_ulp_cntxt_num_shared_clients_get(struct bnxt_ulp_context *ulp)
+{
+       if (ulp == NULL || ulp->cfg_data == NULL) {
+               BNXT_TF_DBG(ERR, "Invalid arguments\n");
+               return 0;
+       }
+       return ulp->cfg_data->num_shared_clients;
+}
+
 /* Function to set the tfp session details from the ulp context. */
 int32_t
 bnxt_ulp_cntxt_tfp_set(struct bnxt_ulp_context *ulp, struct tf *tfp)
index ea38dc0..082ca50 100644 (file)
@@ -32,6 +32,7 @@
 #define BNXT_ULP_SHARED_SESSION_ENABLED        0x2
 #define BNXT_ULP_APP_DEV_UNSUPPORTED   0x4
 #define BNXT_ULP_HIGH_AVAIL_ENABLED    0x8
+#define BNXT_ULP_APP_UNICAST_ONLY      0x10
 #define ULP_VF_REP_IS_ENABLED(flag)    ((flag) & BNXT_ULP_VF_REP_ENABLED)
 #define ULP_SHARED_SESSION_IS_ENABLED(flag) ((flag) &\
                                             BNXT_ULP_SHARED_SESSION_ENABLED)
@@ -77,6 +78,7 @@ struct bnxt_ulp_data {
        struct bnxt_tun_cache_entry     tun_tbl[BNXT_ULP_MAX_TUN_CACHE_ENTRIES];
        bool                            accum_stats;
        uint8_t                         app_id;
+       uint8_t                         num_shared_clients;
 };
 
 struct bnxt_ulp_context {
@@ -297,4 +299,6 @@ bnxt_ulp_cntxt_entry_acquire(void);
 void
 bnxt_ulp_cntxt_entry_release(void);
 
+uint8_t
+bnxt_ulp_cntxt_num_shared_clients_get(struct bnxt_ulp_context *ulp_ctx);
 #endif /* _BNXT_ULP_H_ */
index 96e6a76..19e9dba 100644 (file)
@@ -103,6 +103,7 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,
        mapper_cparms->flow_pattern_id = params->flow_pattern_id;
        mapper_cparms->act_pattern_id = params->act_pattern_id;
        mapper_cparms->app_id = params->app_id;
+       mapper_cparms->port_id = params->port_id;
 
        /* update the signature fields into the computed field list */
        ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_HDR_SIG_ID,
index 49df42c..887d5fd 100644 (file)
@@ -22,6 +22,7 @@ sources += files(
         'ulp_def_rules.c',
         'ulp_fc_mgr.c',
         'ulp_tun.c',
+        'bnxt_tf_pmd_shim.c',
         'ulp_gen_tbl.c',
         'ulp_gen_hash.c',
         'ulp_ha_mgr.c',
index 483030e..d8336d1 100644 (file)
@@ -299,7 +299,7 @@ ulp_default_flow_create(struct rte_eth_dev *eth_dev,
                        uint32_t *flow_id)
 {
        struct ulp_rte_hdr_field        hdr_field[BNXT_ULP_PROTO_HDR_MAX];
-       uint32_t                        comp_fld[BNXT_ULP_CF_IDX_LAST];
+       uint64_t                        comp_fld[BNXT_ULP_CF_IDX_LAST];
        struct bnxt_ulp_mapper_create_parms mapper_params = { 0 };
        struct ulp_rte_act_prop         act_prop;
        struct ulp_rte_act_bitmap       act = { 0 };
@@ -318,6 +318,7 @@ ulp_default_flow_create(struct rte_eth_dev *eth_dev,
        mapper_params.comp_fld = comp_fld;
        mapper_params.class_tid = ulp_class_tid;
        mapper_params.flow_type = BNXT_ULP_FDB_TYPE_DEFAULT;
+       mapper_params.port_id = eth_dev->data->port_id;
 
        ulp_ctx = bnxt_ulp_eth_dev_ptr2_cntxt_get(eth_dev);
        if (!ulp_ctx) {
index 9a77132..13f71ed 100644 (file)
@@ -80,12 +80,6 @@ ulp_fc_mgr_init(struct bnxt_ulp_context *ctxt)
                return -EINVAL;
        }
 
-       if (!dparms->flow_count_db_entries) {
-               BNXT_TF_DBG(DEBUG, "flow counter support is not enabled\n");
-               bnxt_ulp_cntxt_ptr2_fc_info_set(ctxt, NULL);
-               return 0;
-       }
-
        ulp_fc_info = rte_zmalloc("ulp_fc_info", sizeof(*ulp_fc_info), 0);
        if (!ulp_fc_info)
                goto error;
@@ -99,6 +93,13 @@ ulp_fc_mgr_init(struct bnxt_ulp_context *ctxt)
        /* Add the FC info tbl to the ulp context. */
        bnxt_ulp_cntxt_ptr2_fc_info_set(ctxt, ulp_fc_info);
 
+       ulp_fc_info->num_counters = dparms->flow_count_db_entries;
+       if (!ulp_fc_info->num_counters) {
+               /* No need for software counters, call fw directly */
+               BNXT_TF_DBG(DEBUG, "Sw flow counter support not enabled\n");
+               return 0;
+       }
+
        sw_acc_cntr_tbl_sz = sizeof(struct sw_acc_counter) *
                                dparms->flow_count_db_entries;
 
@@ -138,6 +139,7 @@ int32_t
 ulp_fc_mgr_deinit(struct bnxt_ulp_context *ctxt)
 {
        struct bnxt_ulp_fc_info *ulp_fc_info;
+       struct hw_fc_mem_info *shd_info;
        int i;
 
        ulp_fc_info = bnxt_ulp_cntxt_ptr2_fc_info_get(ctxt);
@@ -149,11 +151,15 @@ ulp_fc_mgr_deinit(struct bnxt_ulp_context *ctxt)
 
        pthread_mutex_destroy(&ulp_fc_info->fc_lock);
 
-       for (i = 0; i < TF_DIR_MAX; i++)
-               rte_free(ulp_fc_info->sw_acc_tbl[i]);
+       if (ulp_fc_info->num_counters) {
+               for (i = 0; i < TF_DIR_MAX; i++)
+                       rte_free(ulp_fc_info->sw_acc_tbl[i]);
 
-       for (i = 0; i < TF_DIR_MAX; i++)
-               ulp_fc_mgr_shadow_mem_free(&ulp_fc_info->shadow_hw_tbl[i]);
+               for (i = 0; i < TF_DIR_MAX; i++) {
+                       shd_info = &ulp_fc_info->shadow_hw_tbl[i];
+                       ulp_fc_mgr_shadow_mem_free(shd_info);
+               }
+       }
 
        rte_free(ulp_fc_info);
 
@@ -291,6 +297,74 @@ ulp_bulk_get_flow_stats(struct tf *tfp,
        return rc;
 }
 
+static int32_t
+ulp_fc_tf_flow_stat_get(struct bnxt_ulp_context *ctxt,
+                       struct ulp_flow_db_res_params *res,
+                       struct rte_flow_query_count *qcount)
+{
+       struct tf *tfp;
+       struct bnxt_ulp_device_params *dparms;
+       struct tf_get_tbl_entry_parms parms = { 0 };
+       struct tf_set_tbl_entry_parms   sparms = { 0 };
+       enum tf_tbl_type stype = TF_TBL_TYPE_ACT_STATS_64;
+       uint64_t stats = 0;
+       uint32_t dev_id = 0;
+       int32_t rc = 0;
+
+       tfp = bnxt_ulp_cntxt_tfp_get(ctxt, BNXT_ULP_SHARED_SESSION_NO);
+       if (!tfp) {
+               BNXT_TF_DBG(ERR, "Failed to get the truflow pointer\n");
+               return -EINVAL;
+       }
+
+       if (bnxt_ulp_cntxt_dev_id_get(ctxt, &dev_id)) {
+               BNXT_TF_DBG(DEBUG, "Failed to get device id\n");
+               bnxt_ulp_cntxt_entry_release();
+               return -EINVAL;
+       }
+
+       dparms = bnxt_ulp_device_params_get(dev_id);
+       if (!dparms) {
+               BNXT_TF_DBG(DEBUG, "Failed to device parms\n");
+               bnxt_ulp_cntxt_entry_release();
+               return -EINVAL;
+       }
+       parms.dir = res->direction;
+       parms.type = stype;
+       parms.idx = res->resource_hndl;
+       parms.data_sz_in_bytes = sizeof(uint64_t);
+       parms.data = (uint8_t *)&stats;
+       rc = tf_get_tbl_entry(tfp, &parms);
+       if (rc) {
+               PMD_DRV_LOG(ERR,
+                           "Get failed for id:0x%x rc:%d\n",
+                           parms.idx, rc);
+               return rc;
+       }
+       qcount->hits = FLOW_CNTR_PKTS(stats, dparms);
+       if (qcount->hits)
+               qcount->hits_set = 1;
+       qcount->bytes = FLOW_CNTR_BYTES(stats, dparms);
+       if (qcount->bytes)
+               qcount->bytes_set = 1;
+
+       if (qcount->reset) {
+               stats = 0;
+               sparms.dir = res->direction;
+               sparms.type = stype;
+               sparms.idx = res->resource_hndl;
+               sparms.data = (uint8_t *)&stats;
+               sparms.data_sz_in_bytes = sizeof(uint64_t);
+               rc = tf_set_tbl_entry(tfp, &sparms);
+               if (rc) {
+                       PMD_DRV_LOG(ERR, "Set failed for id:0x%x rc:%d\n",
+                                   sparms.idx, rc);
+                       return rc;
+               }
+       }
+       return rc;
+}
+
 static int ulp_get_single_flow_stat(struct bnxt_ulp_context *ctxt,
                                    struct tf *tfp,
                                    struct bnxt_ulp_fc_info *fc_info,
@@ -540,6 +614,9 @@ int32_t ulp_fc_mgr_cntr_set(struct bnxt_ulp_context *ctxt, enum tf_dir dir,
        if (!ulp_fc_info)
                return -EIO;
 
+       if (!ulp_fc_info->num_counters)
+               return 0;
+
        pthread_mutex_lock(&ulp_fc_info->fc_lock);
        sw_cntr_idx = hw_cntr_id - ulp_fc_info->shadow_hw_tbl[dir].start_idx;
        ulp_fc_info->sw_acc_tbl[dir][sw_cntr_idx].valid = true;
@@ -572,6 +649,9 @@ int32_t ulp_fc_mgr_cntr_reset(struct bnxt_ulp_context *ctxt, enum tf_dir dir,
        if (!ulp_fc_info)
                return -EIO;
 
+       if (!ulp_fc_info->num_counters)
+               return 0;
+
        pthread_mutex_lock(&ulp_fc_info->fc_lock);
        sw_cntr_idx = hw_cntr_id - ulp_fc_info->shadow_hw_tbl[dir].start_idx;
        ulp_fc_info->sw_acc_tbl[dir][sw_cntr_idx].valid = false;
@@ -644,6 +724,9 @@ int ulp_fc_mgr_query_count_get(struct bnxt_ulp_context *ctxt,
        hw_cntr_id = params.resource_hndl;
        if (params.resource_sub_type ==
                        BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT) {
+               if (!ulp_fc_info->num_counters)
+                       return ulp_fc_tf_flow_stat_get(ctxt, &params, count);
+
                /* TODO:
                 * Think about optimizing with try_lock later
                 */
index 04cb86b..448d05c 100644 (file)
@@ -48,6 +48,7 @@ struct bnxt_ulp_fc_info {
        uint32_t                flags;
        uint32_t                num_entries;
        pthread_mutex_t         fc_lock;
+       uint32_t                num_counters;
 };
 
 int32_t
index e7e8335..ab6013f 100644 (file)
@@ -116,7 +116,7 @@ ulp_flow_db_resource_func_get(struct ulp_fdb_resource_info *res_info)
 
        func = (((res_info->nxt_resource_idx & ULP_FLOW_DB_RES_FUNC_MASK) >>
                 ULP_FLOW_DB_RES_FUNC_BITS) << ULP_FLOW_DB_RES_FUNC_UPPER);
-       /* The reource func is split into upper and lower */
+       /* The resource func is split into upper and lower */
        if (func & ULP_FLOW_DB_RES_FUNC_NEED_LOWER)
                return (func | res_info->resource_func_lower);
        return func;
@@ -712,6 +712,12 @@ ulp_flow_db_resource_add(struct bnxt_ulp_context *ulp_ctxt,
        }
        fid_resource = &flow_tbl->flow_resources[fid];
 
+       if (params->critical_resource && fid_resource->resource_em_handle) {
+               BNXT_TF_DBG(DEBUG, "Ignore multiple critical resources\n");
+               /* Ignore the multiple critical resources */
+               params->critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO;
+       }
+
        if (!params->critical_resource) {
                /* Not the critical_resource so allocate a resource */
                idx = flow_tbl->flow_tbl_stack[flow_tbl->tail_index];
@@ -735,7 +741,7 @@ ulp_flow_db_resource_add(struct bnxt_ulp_context *ulp_ctxt,
        if (params->resource_type == TF_TBL_TYPE_ACT_STATS_64 &&
            params->resource_sub_type ==
            BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT &&
-           ulp_fc_info) {
+           ulp_fc_info && ulp_fc_info->num_counters) {
                /* Store the first HW counter ID for this table */
                if (!ulp_fc_mgr_start_idx_isset(ulp_ctxt, params->direction))
                        ulp_fc_mgr_start_idx_set(ulp_ctxt, params->direction,
@@ -760,7 +766,7 @@ ulp_flow_db_resource_add(struct bnxt_ulp_context *ulp_ctxt,
  * flow_type [in] Specify it is regular or default flow
  * fid [in] The index to the flow entry
  * params [in/out] The contents to be copied into params.
- * Onlythe critical_resource needs to be set by the caller.
+ * Only the critical_resource needs to be set by the caller.
  *
  * Returns 0 on success and negative on failure.
  */
@@ -1287,7 +1293,7 @@ ulp_default_flow_db_cfa_action_get(struct bnxt_ulp_context *ulp_ctx,
                                             BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
                                             sub_typ, &params);
        if (rc) {
-               BNXT_TF_DBG(ERR, "CFA Action ptr not found for flow id %u\n",
+               BNXT_TF_DBG(INFO, "CFA Action ptr not found for flow id %u\n",
                            flow_id);
                return -ENOENT;
        }
index d84715e..67afca8 100644 (file)
@@ -18,7 +18,7 @@
 
 /*
  * Structure for the flow database resource information
- * The below structure is based on the below paritions
+ * The below structure is based on the below partitions
  * nxt_resource_idx = dir[31],resource_func_upper[30:28],nxt_resource_idx[27:0]
  * If resource_func is EM_TBL then use resource_em_handle.
  * Else the other part of the union is used and
index 5c94e2f..3c1af0b 100644 (file)
@@ -346,11 +346,15 @@ ulp_mapper_gen_tbl_res_free(struct bnxt_ulp_context *ulp_ctx,
                return -EINVAL;
        }
        fid = tfp_be_to_cpu_32(fid);
-
-       /* Destroy the flow associated with the shared flow id */
-       if (ulp_mapper_flow_destroy(ulp_ctx, BNXT_ULP_FDB_TYPE_RID,
-                                   fid))
-               BNXT_TF_DBG(ERR, "Error in deleting shared flow id %x\n", fid);
+       /* no need to del if fid is 0 since there is no associated resource */
+       if (fid) {
+               /* Destroy the flow associated with the shared flow id */
+               if (ulp_mapper_flow_destroy(ulp_ctx, BNXT_ULP_FDB_TYPE_RID,
+                                           fid))
+                       BNXT_TF_DBG(ERR,
+                                   "Error in deleting shared flow id %x\n",
+                                   fid);
+       }
 
        /* Delete the entry from the hash table */
        if (gen_tbl_list->hash_tbl)
index 1cfe5cd..5f5b5d6 100644 (file)
@@ -24,8 +24,9 @@
 #define ULP_HA_IF_TBL_DIR      TF_DIR_RX
 #define ULP_HA_IF_TBL_TYPE     TF_IF_TBL_TYPE_PROF_PARIF_ERR_ACT_REC_PTR
 #define ULP_HA_IF_TBL_IDX 10
+#define ULP_HA_CLIENT_CNT_IF_TBL_IDX 9
 
-static void ulp_ha_mgr_timer_cancel(struct bnxt_ulp_context *ulp_ctx);
+static void ulp_ha_mgr_timer_cancel(void);
 static int32_t ulp_ha_mgr_timer_start(void);
 static void ulp_ha_mgr_timer_cb(void *arg);
 static int32_t ulp_ha_mgr_app_type_set(struct bnxt_ulp_context *ulp_ctx,
@@ -37,6 +38,9 @@ static int32_t
 ulp_ha_mgr_state_set(struct bnxt_ulp_context *ulp_ctx,
                     enum ulp_ha_mgr_state state);
 
+static int32_t
+ulp_ha_mgr_tf_client_num_get(struct bnxt_ulp_context *ulp_ctx, uint32_t *cnt);
+
 static int32_t
 ulp_ha_mgr_state_set(struct bnxt_ulp_context *ulp_ctx,
                     enum ulp_ha_mgr_state state)
@@ -71,6 +75,39 @@ ulp_ha_mgr_state_set(struct bnxt_ulp_context *ulp_ctx,
        return rc;
 }
 
+static int32_t
+ulp_ha_mgr_tf_client_num_get(struct bnxt_ulp_context *ulp_ctx,
+                            uint32_t *cnt)
+{
+       struct tf_get_if_tbl_entry_parms get_parms = { 0 };
+       struct tf *tfp;
+       uint32_t val = 0;
+       int32_t rc = 0;
+
+       if (ulp_ctx == NULL || cnt == NULL) {
+               BNXT_TF_DBG(ERR, "Invalid parms in client num get.\n");
+               return -EINVAL;
+       }
+       tfp = bnxt_ulp_cntxt_tfp_get(ulp_ctx, BNXT_ULP_SHARED_SESSION_NO);
+       if (tfp == NULL) {
+               BNXT_TF_DBG(ERR, "Unable to get the TFP.\n");
+               return -EINVAL;
+       }
+
+       get_parms.dir = ULP_HA_IF_TBL_DIR;
+       get_parms.type = ULP_HA_IF_TBL_TYPE;
+       get_parms.idx = ULP_HA_CLIENT_CNT_IF_TBL_IDX;
+       get_parms.data = (uint8_t *)&val;
+       get_parms.data_sz_in_bytes = sizeof(val);
+
+       rc = tf_get_if_tbl_entry(tfp, &get_parms);
+       if (rc)
+               BNXT_TF_DBG(ERR, "Failed to read the number of HA clients\n");
+
+       *cnt = val;
+       return rc;
+}
+
 static int32_t
 ulp_ha_mgr_region_set(struct bnxt_ulp_context *ulp_ctx,
                      enum ulp_ha_mgr_region region)
@@ -113,44 +150,113 @@ ulp_ha_mgr_app_type_set(struct bnxt_ulp_context *ulp_ctx,
        return 0;
 }
 
-/*
- * When a secondary opens, the timer is started and periodically checks for a
- * close of the primary (state moved to SEC_TIMER_COPY).
- * In SEC_TIMER_COPY:
- * - The flow db must be locked to prevent flows from being added to the high
- *   region during a move.
- * - Move the high entries to low
- * - Set the region to low for subsequent flows
- * - Switch our persona to Primary
- * - Set the state to Primary Run
- * - Release the flow db lock for flows to continue
- */
 static void
 ulp_ha_mgr_timer_cb(void *arg __rte_unused)
 {
        struct tf_move_tcam_shared_entries_parms mparms = { 0 };
+       struct tf_clear_tcam_shared_entries_parms cparms = { 0 };
        struct bnxt_ulp_context *ulp_ctx;
        enum ulp_ha_mgr_state curr_state;
+       enum ulp_ha_mgr_app_type app_type;
+       uint8_t myclient_cnt = 0;
+       uint32_t client_cnt = 0;
        struct tf *tfp;
        int32_t rc;
 
        ulp_ctx = bnxt_ulp_cntxt_entry_acquire();
        if (ulp_ctx == NULL) {
-               BNXT_TF_DBG(INFO, "could not get the ulp context lock\n");
                ulp_ha_mgr_timer_start();
                return;
        }
 
+       myclient_cnt = bnxt_ulp_cntxt_num_shared_clients_get(ulp_ctx);
+       if (myclient_cnt == 0) {
+               BNXT_TF_DBG(ERR,
+                           "PANIC Client Count is zero kill timer\n.");
+               return;
+       }
+
+       tfp = bnxt_ulp_cntxt_tfp_get(ulp_ctx, BNXT_ULP_SHARED_SESSION_YES);
+       if (tfp == NULL) {
+               BNXT_TF_DBG(ERR, "Unable to get the TFP.\n");
+               goto cb_restart;
+       }
+
        rc = ulp_ha_mgr_state_get(ulp_ctx, &curr_state);
        if (rc) {
                /*
-                * This shouldn't happen, if it does, resetart the timer
+                * This shouldn't happen, if it does, reset the timer
                 * and try again next time.
                 */
-               BNXT_TF_DBG(ERR, "On HA CB:Failed(%d) to get state.\n", rc);
+               BNXT_TF_DBG(ERR, "Failed(%d) to get state.\n",
+                           rc);
                goto cb_restart;
        }
-       if (curr_state != ULP_HA_STATE_SEC_TIMER_COPY)
+
+       rc = ulp_ha_mgr_tf_client_num_get(ulp_ctx, &client_cnt);
+       if (rc) {
+               BNXT_TF_DBG(ERR, "Failed(%d) to get cnt.\n",
+                           rc);
+               goto cb_restart;
+       }
+
+       rc =  ulp_ha_mgr_app_type_get(ulp_ctx, &app_type);
+       if (rc) {
+               BNXT_TF_DBG(ERR, "Failed(%d) to get type.\n",
+                           rc);
+               goto cb_restart;
+       }
+
+       /* Handle the Cleanup if an app went away */
+       if (client_cnt == myclient_cnt) {
+               if (curr_state == ULP_HA_STATE_PRIM_SEC_RUN &&
+                   app_type == ULP_HA_APP_TYPE_PRIM) {
+                   /*
+                    * The SECONDARY went away:
+                    * 1. Set the state to PRIM_RUN
+                    * 2. Clear the High region so our TCAM will hit.
+                    */
+                       rc = ulp_ha_mgr_state_set(ulp_ctx,
+                                                 ULP_HA_STATE_PRIM_RUN);
+                       if (rc) {
+                               BNXT_TF_DBG(ERR,
+                                           "On HA CB:Failed(%d) to set state\n",
+                                           rc);
+                               goto cb_restart;
+                       }
+
+                       cparms.dir = TF_DIR_RX;
+                       cparms.tcam_tbl_type =
+                               TF_TCAM_TBL_TYPE_WC_TCAM_HIGH;
+                       rc = tf_clear_tcam_shared_entries(tfp, &cparms);
+                       if (rc) {
+                               BNXT_TF_DBG(ERR,
+                                           "On HA CB:Failed(%d) clear tcam\n",
+                                           rc);
+                               goto cb_restart;
+                       }
+               } else if (curr_state == ULP_HA_STATE_PRIM_SEC_RUN &&
+                           app_type == ULP_HA_APP_TYPE_SEC) {
+                       /*
+                        * The PRIMARY went away:
+                        * 1. Set the state to SEC_COPY
+                        * 2. Clear the Low Region for the next copy
+                        */
+                       rc = ulp_ha_mgr_state_set(ulp_ctx,
+                                                 ULP_HA_STATE_SEC_TIMER_COPY);
+                       if (rc) {
+                               BNXT_TF_DBG(ERR,
+                                           "On HA CB:Failed(%d) to set state\n",
+                                           rc);
+                               goto cb_restart;
+                       }
+                       curr_state = ULP_HA_STATE_SEC_TIMER_COPY;
+               }
+       }
+
+       /* Only the Secondary has work to on SEC_TIMER_COPY */
+       if (curr_state != ULP_HA_STATE_SEC_TIMER_COPY ||
+           app_type != ULP_HA_APP_TYPE_SEC)
                goto cb_restart;
 
        /* Protect the flow database during the copy */
@@ -166,14 +272,19 @@ ulp_ha_mgr_timer_cb(void *arg __rte_unused)
         * move WC entries to Low Region.
         */
        BNXT_TF_DBG(INFO, "On HA CB: Moving entries HI to LOW\n");
-       mparms.dir = TF_DIR_RX;
-       mparms.tcam_tbl_type = TF_TCAM_TBL_TYPE_WC_TCAM_HIGH;
-       tfp = bnxt_ulp_cntxt_tfp_get(ulp_ctx, BNXT_ULP_SHARED_SESSION_YES);
-       if (tfp == NULL) {
-               BNXT_TF_DBG(ERR, "On HA CB: Unable to get the TFP.\n");
+
+       cparms.dir = TF_DIR_RX;
+       cparms.tcam_tbl_type = TF_TCAM_TBL_TYPE_WC_TCAM_LOW;
+       rc = tf_clear_tcam_shared_entries(tfp, &cparms);
+       if (rc) {
+               BNXT_TF_DBG(ERR,
+                           "On HA CB:Failed(%d) clear tcam low\n",
+                           rc);
                goto unlock;
        }
 
+       mparms.dir = TF_DIR_RX;
+       mparms.tcam_tbl_type = TF_TCAM_TBL_TYPE_WC_TCAM_HIGH;
        rc = tf_move_tcam_shared_entries(tfp, &mparms);
        if (rc) {
                BNXT_TF_DBG(ERR, "On HA_CB: Failed to move entries\n");
@@ -186,8 +297,6 @@ ulp_ha_mgr_timer_cb(void *arg __rte_unused)
        BNXT_TF_DBG(INFO, "On HA CB: SEC[SEC_TIMER_COPY] => PRIM[PRIM_RUN]\n");
 unlock:
        bnxt_ulp_cntxt_release_fdb_lock(ulp_ctx);
-       bnxt_ulp_cntxt_entry_release();
-       return;
 cb_restart:
        bnxt_ulp_cntxt_entry_release();
        ulp_ha_mgr_timer_start();
@@ -202,18 +311,9 @@ ulp_ha_mgr_timer_start(void)
 }
 
 static void
-ulp_ha_mgr_timer_cancel(struct bnxt_ulp_context *ulp_ctx)
+ulp_ha_mgr_timer_cancel(void)
 {
-       struct bnxt_ulp_ha_mgr_info *ha_info;
-
-       ha_info = bnxt_ulp_cntxt_ptr2_ha_info_get(ulp_ctx);
-       if (ha_info == NULL) {
-               BNXT_TF_DBG(ERR, "Unable to get ha info\n");
-               return;
-       }
-
-       ha_info->flags &= ~ULP_HA_TIMER_THREAD;
-       rte_eal_alarm_cancel(ulp_ha_mgr_timer_cb, (void *)ulp_ctx);
+       rte_eal_alarm_cancel(ulp_ha_mgr_timer_cb, (void *)NULL);
 }
 
 int32_t
@@ -233,6 +333,11 @@ ulp_ha_mgr_init(struct bnxt_ulp_context *ulp_ctx)
                PMD_DRV_LOG(ERR, "Failed to initialize ha mutex\n");
                goto cleanup;
        }
+       rc = ulp_ha_mgr_timer_start();
+       if (rc) {
+               BNXT_TF_DBG(ERR, "Unable to start timer CB.\n");
+               goto cleanup;
+       }
 
        return 0;
 cleanup:
@@ -246,6 +351,8 @@ ulp_ha_mgr_deinit(struct bnxt_ulp_context *ulp_ctx)
 {
        struct bnxt_ulp_ha_mgr_info *ha_info;
 
+       ulp_ha_mgr_timer_cancel();
+
        ha_info = bnxt_ulp_cntxt_ptr2_ha_info_get(ulp_ctx);
        if (ha_info == NULL) {
                BNXT_TF_DBG(ERR, "Unable to get HA Info for deinit.\n");
@@ -355,24 +462,10 @@ ulp_ha_mgr_open(struct bnxt_ulp_context *ulp_ctx)
                 * The current primary is expected to eventually close and pass
                 * full control to this system;however, until the primary closes
                 * both are operational.
-                *
-                * The timer is started in order to determine when the
-                * primary has closed.
                 */
                ulp_ha_mgr_app_type_set(ulp_ctx, ULP_HA_APP_TYPE_SEC);
                ulp_ha_mgr_region_set(ulp_ctx, ULP_HA_REGION_HI);
 
-               /*
-                * TODO:
-                * Clear the high region so the secondary can begin overriding
-                * the current entries.
-                */
-               rc = ulp_ha_mgr_timer_start();
-               if (rc) {
-                       BNXT_TF_DBG(ERR, "Unable to start timer on HA Open.\n");
-                       return -EINVAL;
-               }
-
                rc = ulp_ha_mgr_state_set(ulp_ctx, ULP_HA_STATE_PRIM_SEC_RUN);
                if (rc) {
                        BNXT_TF_DBG(ERR, "On Open: Failed to set PRIM_SEC_RUN\n");
@@ -396,6 +489,8 @@ ulp_ha_mgr_close(struct bnxt_ulp_context *ulp_ctx)
        int32_t timeout;
        int32_t rc;
 
+       curr_state = ULP_HA_STATE_INIT;
+       app_type = ULP_HA_APP_TYPE_NONE;
        rc = ulp_ha_mgr_state_get(ulp_ctx, &curr_state);
        if (rc) {
                BNXT_TF_DBG(ERR, "On Close: Failed(%d) to get HA state\n", rc);
@@ -462,10 +557,8 @@ ulp_ha_mgr_close(struct bnxt_ulp_context *ulp_ctx)
                   app_type == ULP_HA_APP_TYPE_SEC) {
                /*
                 * While both are running, the secondary unexpectedly received a
-                * close.  Cancel the timer, set the state to Primary RUN since
-                * it is the only one running.
+                * close.
                 */
-               ulp_ha_mgr_timer_cancel(ulp_ctx);
                ulp_ha_mgr_state_set(ulp_ctx, ULP_HA_STATE_PRIM_RUN);
 
                BNXT_TF_DBG(INFO, "On Close: SEC[PRIM_SEC_RUN] => [PRIM_RUN]\n");
index 05a43b6..acd9f99 100644 (file)
@@ -20,6 +20,7 @@
 #include "ulp_template_db_tbl.h"
 #include "ulp_port_db.h"
 #include "ulp_ha_mgr.h"
+#include "bnxt_tf_pmd_shim.h"
 
 static uint8_t mapper_fld_zeros[16] = { 0 };
 
@@ -996,13 +997,13 @@ ulp_mapper_field_src_process(struct bnxt_ulp_mapper_parms *parms,
                        return -EINVAL;
                }
                idx = tfp_be_to_cpu_16(idx);
-               if (idx >= BNXT_ULP_CF_IDX_LAST || bytelen > sizeof(uint32_t)) {
+               if (idx >= BNXT_ULP_CF_IDX_LAST || bytelen > sizeof(uint64_t)) {
                        BNXT_TF_DBG(ERR, "comp field [%d] read oob %d\n", idx,
                                    bytelen);
                        return -EINVAL;
                }
                buffer = (uint8_t *)&parms->comp_fld[idx];
-               *val = &buffer[sizeof(uint32_t) - bytelen];
+               *val = &buffer[sizeof(uint64_t) - bytelen];
                *value = ULP_COMP_FLD_IDX_RD(parms, idx);
                break;
        case BNXT_ULP_FIELD_SRC_RF:
@@ -3177,109 +3178,141 @@ ulp_mapper_cond_opc_process(struct bnxt_ulp_mapper_parms *parms,
 }
 
 static int32_t
-ulp_mapper_cc_upd_opr_compute(struct bnxt_ulp_mapper_parms *parms,
-                             enum tf_dir dir,
-                             enum bnxt_ulp_cc_upd_src cc_src,
-                             uint16_t cc_opr,
-                             uint64_t *result)
+ulp_mapper_func_opr_compute(struct bnxt_ulp_mapper_parms *parms,
+                           enum tf_dir dir,
+                           enum bnxt_ulp_func_src func_src,
+                           uint16_t func_opr,
+                           uint64_t *result)
 {
        uint64_t regval;
        bool shared;
 
        *result =  false;
-       switch (cc_src) {
-       case BNXT_ULP_CC_UPD_SRC_COMP_FIELD:
-               if (cc_opr >= BNXT_ULP_CF_IDX_LAST) {
-                       BNXT_TF_DBG(ERR, "invalid index %u\n", cc_opr);
+       switch (func_src) {
+       case BNXT_ULP_FUNC_SRC_COMP_FIELD:
+               if (func_opr >= BNXT_ULP_CF_IDX_LAST) {
+                       BNXT_TF_DBG(ERR, "invalid index %u\n", func_opr);
                        return -EINVAL;
                }
-               *result = (uint64_t)ULP_COMP_FLD_IDX_RD(parms, cc_opr);
+               *result = ULP_COMP_FLD_IDX_RD(parms, func_opr);
                break;
-       case BNXT_ULP_CC_UPD_SRC_REGFILE:
-               if (!ulp_regfile_read(parms->regfile, cc_opr, &regval)) {
-                       BNXT_TF_DBG(ERR, "regfile[%d] read oob\n", cc_opr);
+       case BNXT_ULP_FUNC_SRC_REGFILE:
+               if (!ulp_regfile_read(parms->regfile, func_opr, &regval)) {
+                       BNXT_TF_DBG(ERR, "regfile[%d] read oob\n", func_opr);
                        return -EINVAL;
                }
                *result = tfp_be_to_cpu_64(regval);
                break;
-       case BNXT_ULP_CC_UPD_SRC_GLB_REGFILE:
+       case BNXT_ULP_FUNC_SRC_GLB_REGFILE:
                if (ulp_mapper_glb_resource_read(parms->mapper_data, dir,
-                                                cc_opr, &regval, &shared)) {
+                                                func_opr, &regval, &shared)) {
                        BNXT_TF_DBG(ERR, "global regfile[%d] read failed.\n",
-                                   cc_opr);
+                                   func_opr);
                        return -EINVAL;
                }
                *result = tfp_be_to_cpu_64(regval);
                break;
-       case BNXT_ULP_CC_UPD_SRC_CONST:
-               *result = cc_opr;
+       case BNXT_ULP_FUNC_SRC_CONST:
+               *result = func_opr;
                break;
        default:
-               BNXT_TF_DBG(ERR, "invalid src code %u\n", cc_src);
+               BNXT_TF_DBG(ERR, "invalid src code %u\n", func_src);
                return -EINVAL;
        }
        return 0;
 }
 
 static int32_t
-ulp_mapper_cc_upd_info_process(struct bnxt_ulp_mapper_parms *parms,
-                              struct bnxt_ulp_mapper_tbl_info *tbl)
+ulp_mapper_func_info_process(struct bnxt_ulp_mapper_parms *parms,
+                            struct bnxt_ulp_mapper_tbl_info *tbl)
 {
-       struct bnxt_ulp_mapper_cc_upd_info *cc_upd = &tbl->cc_upd_info;
-       uint64_t res = 0, res1, res2;
+       struct bnxt_ulp_mapper_func_info *func_info = &tbl->func_info;
+       uint64_t res = 0, res1 = 0, res2 = 0;
        int32_t rc = 0;
+       uint32_t process_src1 = 0, process_src2 = 0;
 
-       if (cc_upd->cc_opc == BNXT_ULP_CC_UPD_OPC_NOP)
+       /* determine which functional operands to compute */
+       switch (func_info->func_opc) {
+       case BNXT_ULP_FUNC_OPC_NOP:
                return rc;
+       case BNXT_ULP_FUNC_OPC_EQ:
+       case BNXT_ULP_FUNC_OPC_NE:
+       case BNXT_ULP_FUNC_OPC_GE:
+       case BNXT_ULP_FUNC_OPC_GT:
+       case BNXT_ULP_FUNC_OPC_LE:
+       case BNXT_ULP_FUNC_OPC_LT:
+               process_src1 = 1;
+               process_src2 = 1;
+               break;
+       case BNXT_ULP_FUNC_OPC_COPY_SRC1_TO_RF:
+               process_src1 = 1;
+               break;
+       default:
+               break;
+       }
 
-       rc = ulp_mapper_cc_upd_opr_compute(parms, tbl->direction,
-                                          cc_upd->cc_src1,
-                                          cc_upd->cc_opr1, &res1);
-       if (rc)
-               return rc;
+       if (process_src1) {
+               rc = ulp_mapper_func_opr_compute(parms, tbl->direction,
+                                                func_info->func_src1,
+                                                func_info->func_opr1, &res1);
+               if (rc)
+                       return rc;
+       }
 
-       rc = ulp_mapper_cc_upd_opr_compute(parms, tbl->direction,
-                                          cc_upd->cc_src2,
-                                          cc_upd->cc_opr2, &res2);
-       if (rc)
-               return rc;
+       if (process_src2) {
+               rc = ulp_mapper_func_opr_compute(parms, tbl->direction,
+                                                func_info->func_src2,
+                                                func_info->func_opr2, &res2);
+               if (rc)
+                       return rc;
+       }
 
-       switch (cc_upd->cc_opc) {
-       case BNXT_ULP_CC_UPD_OPC_NOP:
-               res = 1;
-               break;
-       case BNXT_ULP_CC_UPD_OPC_EQ:
+       /* perform the functional opcode operations */
+       switch (func_info->func_opc) {
+       case BNXT_ULP_FUNC_OPC_EQ:
                if (res1 == res2)
                        res = 1;
                break;
-       case BNXT_ULP_CC_UPD_OPC_NE:
+       case BNXT_ULP_FUNC_OPC_NE:
                if (res1 != res2)
                        res = 1;
                break;
-       case BNXT_ULP_CC_UPD_OPC_GE:
+       case BNXT_ULP_FUNC_OPC_GE:
                if (res1 >= res2)
                        res = 1;
                break;
-       case BNXT_ULP_CC_UPD_OPC_GT:
+       case BNXT_ULP_FUNC_OPC_GT:
                if (res1 > res2)
                        res = 1;
                break;
-       case BNXT_ULP_CC_UPD_OPC_LE:
+       case BNXT_ULP_FUNC_OPC_LE:
                if (res1 <= res2)
                        res = 1;
                break;
-       case BNXT_ULP_CC_UPD_OPC_LT:
+       case BNXT_ULP_FUNC_OPC_LT:
                if (res1 < res2)
                        res = 1;
                break;
-       case BNXT_ULP_CC_UPD_OPC_LAST:
-               BNXT_TF_DBG(ERR, "invalid code %u\n", cc_upd->cc_opc);
+       case BNXT_ULP_FUNC_OPC_COPY_SRC1_TO_RF:
+               res = res1;
+               break;
+       case BNXT_ULP_FUNC_OPC_RSS_CONFIG:
+               /* apply the rss config using pmd method */
+               return bnxt_rss_config_action_apply(parms);
+       case BNXT_ULP_FUNC_OPC_GET_PARENT_MAC_ADDR:
+               rc = bnxt_pmd_get_parent_mac_addr(parms, (uint8_t *)&res);
+               if (rc)
+                       return -EINVAL;
+               res = tfp_be_to_cpu_64(res);
+               break;
+       default:
+               BNXT_TF_DBG(ERR, "invalid func code %u\n", func_info->func_opc);
                return -EINVAL;
        }
-       if (ulp_regfile_write(parms->regfile, cc_upd->cc_dst_opr,
+       if (ulp_regfile_write(parms->regfile, func_info->func_dst_opr,
                              tfp_cpu_to_be_64(res))) {
-               BNXT_TF_DBG(ERR, "Failed write the cc_opc %u\n",
-                           cc_upd->cc_dst_opr);
+               BNXT_TF_DBG(ERR, "Failed write the func_opc %u\n",
+                           func_info->func_dst_opr);
                return -EINVAL;
        }
 
@@ -3366,7 +3399,7 @@ ulp_mapper_conflict_resolution_process(struct bnxt_ulp_mapper_parms *parms,
 {
        int32_t rc = 0;
        uint64_t regval;
-       uint64_t comp_sig_id;
+       uint64_t comp_sig;
 
        *res = 0;
        switch (tbl->accept_opcode) {
@@ -3399,14 +3432,14 @@ ulp_mapper_conflict_resolution_process(struct bnxt_ulp_mapper_parms *parms,
                                    BNXT_ULP_RF_IDX_FLOW_SIG_ID);
                        return -EINVAL;
                }
-               comp_sig_id = ULP_COMP_FLD_IDX_RD(parms,
-                                                 BNXT_ULP_CF_IDX_FLOW_SIG_ID);
+               comp_sig = ULP_COMP_FLD_IDX_RD(parms,
+                                              BNXT_ULP_CF_IDX_FLOW_SIG_ID);
                regval = tfp_be_to_cpu_64(regval);
-               if (comp_sig_id == regval)
+               if (comp_sig == regval)
                        *res = 1;
                else
-                       BNXT_TF_DBG(ERR, "failed signature match %x:%x\n",
-                                   (uint32_t)comp_sig_id, (uint32_t)regval);
+                       BNXT_TF_DBG(ERR, "failed signature match 0x%016"
+                                   PRIX64 ":%x\n", comp_sig, (uint32_t)regval);
                break;
        default:
                BNXT_TF_DBG(ERR, "Invalid accept opcode %d\n",
@@ -3462,8 +3495,9 @@ ulp_mapper_tbls_process(struct bnxt_ulp_mapper_parms *parms, uint32_t tid)
 
        for (tbl_idx = 0; tbl_idx < num_tbls && cond_goto;) {
                tbl = &tbls[tbl_idx];
-               /* Process the conditional code update opcodes */
-               if (ulp_mapper_cc_upd_info_process(parms, tbl)) {
+               cond_goto = tbl->execute_info.cond_true_goto;
+               /* Process the conditional func code opcodes */
+               if (ulp_mapper_func_info_process(parms, tbl)) {
                        BNXT_TF_DBG(ERR, "Failed to process cond update\n");
                        rc = -EINVAL;
                        goto error;
@@ -3758,6 +3792,7 @@ ulp_mapper_flow_create(struct bnxt_ulp_context *ulp_ctx,
        parms.flow_pattern_id = cparms->flow_pattern_id;
        parms.act_pattern_id = cparms->act_pattern_id;
        parms.app_id = cparms->app_id;
+       parms.port_id = cparms->port_id;
 
        /* Get the device id from the ulp context */
        if (bnxt_ulp_cntxt_dev_id_get(ulp_ctx, &parms.dev_id)) {
index 4c5dd4b..004e89a 100644 (file)
@@ -46,7 +46,7 @@ struct bnxt_ulp_mapper_parms {
        struct ulp_rte_hdr_bitmap               *hdr_bitmap;
        struct ulp_rte_hdr_field                *hdr_field;
        struct ulp_rte_field_bitmap             *fld_bitmap;
-       uint32_t                                *comp_fld;
+       uint64_t                                *comp_fld;
        struct ulp_regfile                      *regfile;
        struct bnxt_ulp_context                 *ulp_ctx;
        uint32_t                                fid;
@@ -61,13 +61,14 @@ struct bnxt_ulp_mapper_parms {
        uint32_t                                flow_pattern_id;
        uint32_t                                act_pattern_id;
        uint8_t                                 app_id;
+       uint16_t                                port_id;
 };
 
 struct bnxt_ulp_mapper_create_parms {
        uint32_t                        app_priority;
        struct ulp_rte_hdr_bitmap       *hdr_bitmap;
        struct ulp_rte_hdr_field        *hdr_field;
-       uint32_t                        *comp_fld;
+       uint64_t                        *comp_fld;
        struct ulp_rte_act_bitmap       *act;
        struct ulp_rte_act_prop         *act_prop;
        struct ulp_rte_field_bitmap     *fld_bitmap;
@@ -89,6 +90,7 @@ struct bnxt_ulp_mapper_create_parms {
        uint32_t                        flow_pattern_id;
        uint32_t                        act_pattern_id;
        uint8_t                         app_id;
+       uint16_t                        port_id;
 };
 
 /* Function to initialize any dynamic mapper data. */
index 96fc456..4045473 100644 (file)
@@ -9,6 +9,7 @@
 #include "bnxt_tf_common.h"
 #include "ulp_port_db.h"
 #include "tfp.h"
+#include "bnxt_tf_pmd_shim.h"
 
 static uint32_t
 ulp_port_db_allocate_ifindex(struct bnxt_ulp_port_db *port_db)
@@ -148,57 +149,57 @@ int32_t   ulp_port_db_dev_port_intf_update(struct bnxt_ulp_context *ulp_ctxt,
        /* update the interface details */
        intf = &port_db->ulp_intf_list[ifindex];
 
-       intf->type = bnxt_get_interface_type(port_id);
-       intf->drv_func_id = bnxt_get_fw_func_id(port_id,
-                                               BNXT_ULP_INTF_TYPE_INVALID);
+       intf->type = bnxt_pmd_get_interface_type(port_id);
+       intf->drv_func_id = bnxt_pmd_get_fw_func_id(port_id,
+                                                   BNXT_ULP_INTF_TYPE_INVALID);
 
        func = &port_db->ulp_func_id_tbl[intf->drv_func_id];
        if (!func->func_valid) {
-               func->func_svif = bnxt_get_svif(port_id, true,
-                                               BNXT_ULP_INTF_TYPE_INVALID);
-               func->func_spif = bnxt_get_phy_port_id(port_id);
+               func->func_svif = bnxt_pmd_get_svif(port_id, true,
+                                                   BNXT_ULP_INTF_TYPE_INVALID);
+               func->func_spif = bnxt_pmd_get_phy_port_id(port_id);
                func->func_parif =
-                       bnxt_get_parif(port_id, BNXT_ULP_INTF_TYPE_INVALID);
+                       bnxt_pmd_get_parif(port_id, BNXT_ULP_INTF_TYPE_INVALID);
                func->func_vnic =
-                       bnxt_get_vnic_id(port_id, BNXT_ULP_INTF_TYPE_INVALID);
-               func->phy_port_id = bnxt_get_phy_port_id(port_id);
+                       bnxt_pmd_get_vnic_id(port_id, BNXT_ULP_INTF_TYPE_INVALID);
+               func->phy_port_id = bnxt_pmd_get_phy_port_id(port_id);
                func->func_valid = true;
                func->ifindex = ifindex;
        }
 
        if (intf->type == BNXT_ULP_INTF_TYPE_VF_REP) {
                intf->vf_func_id =
-                       bnxt_get_fw_func_id(port_id, BNXT_ULP_INTF_TYPE_VF_REP);
+                       bnxt_pmd_get_fw_func_id(port_id, BNXT_ULP_INTF_TYPE_VF_REP);
 
                func = &port_db->ulp_func_id_tbl[intf->vf_func_id];
                func->func_svif =
-                       bnxt_get_svif(port_id, true, BNXT_ULP_INTF_TYPE_VF_REP);
+                       bnxt_pmd_get_svif(port_id, true, BNXT_ULP_INTF_TYPE_VF_REP);
                func->func_spif =
-                       bnxt_get_phy_port_id(port_id);
+                       bnxt_pmd_get_phy_port_id(port_id);
                func->func_parif =
-                       bnxt_get_parif(port_id, BNXT_ULP_INTF_TYPE_INVALID);
+                       bnxt_pmd_get_parif(port_id, BNXT_ULP_INTF_TYPE_INVALID);
                func->func_vnic =
-                       bnxt_get_vnic_id(port_id, BNXT_ULP_INTF_TYPE_VF_REP);
-               func->phy_port_id = bnxt_get_phy_port_id(port_id);
+                       bnxt_pmd_get_vnic_id(port_id, BNXT_ULP_INTF_TYPE_VF_REP);
+               func->phy_port_id = bnxt_pmd_get_phy_port_id(port_id);
                func->ifindex = ifindex;
        }
 
        /* When there is no match, the default action is to send the packet to
         * the kernel. And to send it to the kernel, we need the PF's vnic id.
         */
-       func->func_parent_vnic = bnxt_get_parent_vnic_id(port_id, intf->type);
+       func->func_parent_vnic = bnxt_pmd_get_parent_vnic_id(port_id, intf->type);
        func->func_parent_vnic = tfp_cpu_to_be_16(func->func_parent_vnic);
-       bnxt_get_iface_mac(port_id, intf->type, func->func_mac,
+       bnxt_pmd_get_iface_mac(port_id, intf->type, func->func_mac,
                           func->func_parent_mac);
 
        port_data = &port_db->phy_port_list[func->phy_port_id];
        if (!port_data->port_valid) {
                port_data->port_svif =
-                       bnxt_get_svif(port_id, false, BNXT_ULP_INTF_TYPE_INVALID);
-               port_data->port_spif = bnxt_get_phy_port_id(port_id);
+                       bnxt_pmd_get_svif(port_id, false, BNXT_ULP_INTF_TYPE_INVALID);
+               port_data->port_spif = bnxt_pmd_get_phy_port_id(port_id);
                port_data->port_parif =
-                       bnxt_get_parif(port_id, BNXT_ULP_INTF_TYPE_INVALID);
-               port_data->port_vport = bnxt_get_vport(port_id);
+                       bnxt_pmd_get_parif(port_id, BNXT_ULP_INTF_TYPE_INVALID);
+               port_data->port_vport = bnxt_pmd_get_vport(port_id);
                port_data->port_valid = true;
        }
        return 0;
index b8e69ff..5fd52b8 100644 (file)
@@ -201,8 +201,7 @@ bnxt_ulp_comp_fld_intf_update(struct ulp_rte_parser_params *params)
        dir = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_DIRECTION);
 
        /* read the port id details */
-       port_id = ULP_COMP_FLD_IDX_RD(params,
-                                     BNXT_ULP_CF_IDX_INCOMING_IF);
+       port_id = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_INCOMING_IF);
        if (ulp_port_db_dev_port_to_ulp_index(params->ulp_ctx,
                                              port_id,
                                              &ifindex)) {
@@ -856,7 +855,7 @@ ulp_rte_vlan_hdr_handler(const struct rte_flow_item *item,
                               BNXT_ULP_HDR_BIT_II_VLAN);
                inner_flag = 1;
        } else {
-               BNXT_TF_DBG(ERR, "Error Parsing:Vlan hdr found withtout eth\n");
+               BNXT_TF_DBG(ERR, "Error Parsing:Vlan hdr found without eth\n");
                return BNXT_TF_RC_ERROR;
        }
        /* Update the field protocol hdr bitmap */
@@ -1691,15 +1690,34 @@ int32_t
 ulp_rte_rss_act_handler(const struct rte_flow_action *action_item,
                        struct ulp_rte_parser_params *param)
 {
-       const struct rte_flow_action_rss *rss = action_item->conf;
+       const struct rte_flow_action_rss *rss;
+       struct ulp_rte_act_prop *ap = &param->act_prop;
 
-       if (rss) {
-               /* Update the hdr_bitmap with vxlan */
-               ULP_BITMAP_SET(param->act_bitmap.bits, BNXT_ULP_ACT_BIT_RSS);
-               return BNXT_TF_RC_SUCCESS;
+       if (action_item == NULL || action_item->conf == NULL) {
+               BNXT_TF_DBG(ERR, "Parse Err: invalid rss configuration\n");
+               return BNXT_TF_RC_ERROR;
        }
-       BNXT_TF_DBG(ERR, "Parse Error: RSS arg is invalid\n");
-       return BNXT_TF_RC_ERROR;
+
+       rss = action_item->conf;
+       /* Copy the rss into the specific action properties */
+       memcpy(&ap->act_details[BNXT_ULP_ACT_PROP_IDX_RSS_TYPES], &rss->types,
+              BNXT_ULP_ACT_PROP_SZ_RSS_TYPES);
+       memcpy(&ap->act_details[BNXT_ULP_ACT_PROP_IDX_RSS_LEVEL], &rss->level,
+              BNXT_ULP_ACT_PROP_SZ_RSS_LEVEL);
+       memcpy(&ap->act_details[BNXT_ULP_ACT_PROP_IDX_RSS_KEY_LEN],
+              &rss->key_len, BNXT_ULP_ACT_PROP_SZ_RSS_KEY_LEN);
+
+       if (rss->key_len > BNXT_ULP_ACT_PROP_SZ_RSS_KEY) {
+               BNXT_TF_DBG(ERR, "Parse Err: RSS key too big\n");
+               return BNXT_TF_RC_ERROR;
+       }
+       memcpy(&ap->act_details[BNXT_ULP_ACT_PROP_IDX_RSS_KEY], rss->key,
+              rss->key_len);
+
+       /* set the RSS action header bit */
+       ULP_BITMAP_SET(param->act_bitmap.bits, BNXT_ULP_ACT_BIT_RSS);
+
+       return BNXT_TF_RC_SUCCESS;
 }
 
 /* Function to handle the parsing of RTE Flow action vxlan_encap Header. */
index bbba101..4431f1b 100644 (file)
@@ -24,7 +24,7 @@
 #define BNXT_ULP_ENCAP_IPV6_DO                 2
 #define BNXT_ULP_ENCAP_IPV6_SIZE               24
 #define BNXT_ULP_ENCAP_UDP_SIZE                        4
-#define BNXT_ULP_INVALID_SVIF_VAL              -1U
+#define BNXT_ULP_INVALID_SVIF_VAL              -1UL
 
 #define        BNXT_ULP_GET_IPV6_VER(vtcf)             \
                        (((vtcf) & BNXT_ULP_PARSER_IPV6_VER_MASK) >> 28)
index 8cbbe20..a38fdda 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Sun Mar 21 13:04:51 2021 */
+/* date: Wed Apr 14 09:56:27 2021 */
 
 #ifndef ULP_TEMPLATE_DB_H_
 #define ULP_TEMPLATE_DB_H_
@@ -28,7 +28,7 @@
 #define BNXT_ULP_ACT_HID_MASK 2047
 #define BNXT_ULP_APP_RESOURCE_RESV_LIST_MAX_SZ 4
 #define BNXT_ULP_GLB_RESOURCE_TBL_MAX_SZ 33
-#define BNXT_ULP_APP_GLB_RESOURCE_TBL_MAX_SZ 26
+#define BNXT_ULP_APP_GLB_RESOURCE_TBL_MAX_SZ 38
 #define BNXT_ULP_RESOURCE_RESV_LIST_MAX_SZ 205
 #define BNXT_ULP_APP_CAP_TBL_MAX_SZ 6
 #define BNXT_ULP_COND_GOTO_REJECT 1023
@@ -113,8 +113,7 @@ enum bnxt_ulp_hdr_bit {
        BNXT_ULP_HDR_BIT_I_UDP               = 0x0000000000010000,
        BNXT_ULP_HDR_BIT_I_ICMP              = 0x0000000000020000,
        BNXT_ULP_HDR_BIT_F1                  = 0x0000000000040000,
-       BNXT_ULP_HDR_BIT_ANY                 = 0x0000000000080000,
-       BNXT_ULP_HDR_BIT_LAST                = 0x0000000000100000
+       BNXT_ULP_HDR_BIT_LAST                = 0x0000000000080000
 };
 
 enum bnxt_ulp_accept_opc {
@@ -136,25 +135,6 @@ enum bnxt_ulp_byte_order {
        BNXT_ULP_BYTE_ORDER_LAST = 2
 };
 
-enum bnxt_ulp_cc_upd_opc {
-       BNXT_ULP_CC_UPD_OPC_NOP = 0,
-       BNXT_ULP_CC_UPD_OPC_EQ = 1,
-       BNXT_ULP_CC_UPD_OPC_NE = 2,
-       BNXT_ULP_CC_UPD_OPC_GT = 3,
-       BNXT_ULP_CC_UPD_OPC_GE = 4,
-       BNXT_ULP_CC_UPD_OPC_LT = 5,
-       BNXT_ULP_CC_UPD_OPC_LE = 6,
-       BNXT_ULP_CC_UPD_OPC_LAST = 7
-};
-
-enum bnxt_ulp_cc_upd_src {
-       BNXT_ULP_CC_UPD_SRC_REGFILE = 0,
-       BNXT_ULP_CC_UPD_SRC_GLB_REGFILE = 1,
-       BNXT_ULP_CC_UPD_SRC_COMP_FIELD = 2,
-       BNXT_ULP_CC_UPD_SRC_CONST = 3,
-       BNXT_ULP_CC_UPD_SRC_LAST = 4
-};
-
 enum bnxt_ulp_cf_idx {
        BNXT_ULP_CF_IDX_NOT_USED = 0,
        BNXT_ULP_CF_IDX_MPLS_TAG_NUM = 1,
@@ -323,6 +303,28 @@ enum bnxt_ulp_field_src {
        BNXT_ULP_FIELD_SRC_LAST = 16
 };
 
+enum bnxt_ulp_func_opc {
+       BNXT_ULP_FUNC_OPC_NOP = 0,
+       BNXT_ULP_FUNC_OPC_EQ = 1,
+       BNXT_ULP_FUNC_OPC_NE = 2,
+       BNXT_ULP_FUNC_OPC_GT = 3,
+       BNXT_ULP_FUNC_OPC_GE = 4,
+       BNXT_ULP_FUNC_OPC_LT = 5,
+       BNXT_ULP_FUNC_OPC_LE = 6,
+       BNXT_ULP_FUNC_OPC_COPY_SRC1_TO_RF = 7,
+       BNXT_ULP_FUNC_OPC_RSS_CONFIG = 8,
+       BNXT_ULP_FUNC_OPC_GET_PARENT_MAC_ADDR = 9,
+       BNXT_ULP_FUNC_OPC_LAST = 10
+};
+
+enum bnxt_ulp_func_src {
+       BNXT_ULP_FUNC_SRC_REGFILE = 0,
+       BNXT_ULP_FUNC_SRC_GLB_REGFILE = 1,
+       BNXT_ULP_FUNC_SRC_COMP_FIELD = 2,
+       BNXT_ULP_FUNC_SRC_CONST = 3,
+       BNXT_ULP_FUNC_SRC_LAST = 4
+};
+
 enum bnxt_ulp_generic_tbl_lkup_type {
        BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX = 0,
        BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH = 1,
@@ -344,17 +346,22 @@ enum bnxt_ulp_glb_rf_idx {
        BNXT_ULP_GLB_RF_IDX_VXLAN_PROF_FUNC_ID = 4,
        BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR = 5,
        BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 = 6,
-       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 = 7,
-       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 = 8,
-       BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_PROFILE_ID_0 = 9,
-       BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_PROFILE_ID_1 = 10,
-       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 = 11,
-       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 = 12,
-       BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_KEY_ID_0 = 13,
-       BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_KEY_ID_1 = 14,
-       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 = 15,
-       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_1 = 16,
-       BNXT_ULP_GLB_RF_IDX_LAST = 17
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_1 = 7,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_2 = 8,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 = 9,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 = 10,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_PROFILE_ID_0 = 11,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_PROFILE_ID_1 = 12,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 = 13,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 = 14,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_2 = 15,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_KEY_ID_0 = 16,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_KEY_ID_1 = 17,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 = 18,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_1 = 19,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_0 = 20,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_1 = 21,
+       BNXT_ULP_GLB_RF_IDX_LAST = 22
 };
 
 enum bnxt_ulp_hdr_type {
@@ -465,7 +472,7 @@ enum bnxt_ulp_rf_idx {
        BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR = 36,
        BNXT_ULP_RF_IDX_CC = 37,
        BNXT_ULP_RF_IDX_CF_FLOW_SIG_ID = 38,
-       BNXT_ULP_RF_IDX_PHY_PORT_VPORT = 39,
+       BNXT_ULP_RF_IDX_PHY_PORT = 39,
        BNXT_ULP_RF_IDX_LAST = 40
 };
 
@@ -492,7 +499,8 @@ enum bnxt_ulp_template_type {
 
 enum bnxt_ulp_app_cap {
        BNXT_ULP_APP_CAP_SHARED_EN = 0x00000001,
-       BNXT_ULP_APP_CAP_HOT_UPGRADE_EN = 0x00000002
+       BNXT_ULP_APP_CAP_HOT_UPGRADE_EN = 0x00000002,
+       BNXT_ULP_APP_CAP_UNICAST_ONLY = 0x00000004
 };
 
 enum bnxt_ulp_fdb_resource_flags {
@@ -578,7 +586,10 @@ enum bnxt_ulp_act_prop_sz {
        BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN = 32,
        BNXT_ULP_ACT_PROP_SZ_JUMP = 4,
        BNXT_ULP_ACT_PROP_SZ_SHARED_HANDLE = 8,
-       BNXT_ULP_ACT_PROP_SZ_RSS = 64,
+       BNXT_ULP_ACT_PROP_SZ_RSS_TYPES = 8,
+       BNXT_ULP_ACT_PROP_SZ_RSS_LEVEL = 4,
+       BNXT_ULP_ACT_PROP_SZ_RSS_KEY_LEN = 4,
+       BNXT_ULP_ACT_PROP_SZ_RSS_KEY = 40,
        BNXT_ULP_ACT_PROP_SZ_LAST = 4
 };
 
@@ -625,8 +636,11 @@ enum bnxt_ulp_act_prop_idx {
        BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN = 225,
        BNXT_ULP_ACT_PROP_IDX_JUMP = 257,
        BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE = 261,
-       BNXT_ULP_ACT_PROP_IDX_RSS = 269,
-       BNXT_ULP_ACT_PROP_IDX_LAST = 333
+       BNXT_ULP_ACT_PROP_IDX_RSS_TYPES = 269,
+       BNXT_ULP_ACT_PROP_IDX_RSS_LEVEL = 277,
+       BNXT_ULP_ACT_PROP_IDX_RSS_KEY_LEN = 281,
+       BNXT_ULP_ACT_PROP_IDX_RSS_KEY = 285,
+       BNXT_ULP_ACT_PROP_IDX_LAST = 325
 };
 
 enum ulp_wp_sym {
index be7914a..7573cf6 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Sun Mar 21 13:04:51 2021 */
+/* date: Wed Apr 14 09:56:27 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -77,7 +77,7 @@ struct bnxt_ulp_generic_tbl_params ulp_generic_tbl_params[] = {
        .name                    = "INGRESS GENERIC_TABLE_MAC_ADDR_CACHE",
        .result_num_entries      = 256,
        .result_num_bytes        = 8,
-       .key_num_bytes           = 9,
+       .key_num_bytes           = 10,
        .num_buckets             = 8,
        .hash_tbl_entries        = 1024,
        .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
@@ -87,7 +87,7 @@ struct bnxt_ulp_generic_tbl_params ulp_generic_tbl_params[] = {
        .name                    = "EGRESS GENERIC_TABLE_MAC_ADDR_CACHE",
        .result_num_entries      = 256,
        .result_num_bytes        = 8,
-       .key_num_bytes           = 9,
+       .key_num_bytes           = 10,
        .num_buckets             = 8,
        .hash_tbl_entries        = 1024,
        .result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
@@ -202,7 +202,7 @@ struct bnxt_ulp_device_params ulp_device_params[BNXT_ULP_DEVICE_ID_LAST] = {
        .ext_flow_db_num_entries = 32768,
        .mark_db_lfid_entries    = 0,
        .mark_db_gfid_entries    = 0,
-       .flow_count_db_entries   = 0,
+       .flow_count_db_entries   = 16384,
        .fdb_parent_flow_entries = 2,
        .num_resources_per_flow  = 8,
        .num_phy_ports           = 2,
@@ -217,7 +217,7 @@ struct bnxt_ulp_device_params ulp_device_params[BNXT_ULP_DEVICE_ID_LAST] = {
        .em_key_align_bytes      = 80,
        .wc_slice_width          = 160,
        .wc_max_slices           = 4,
-       .wc_mode_list        = {0x0000000c, 0x0000000e, 0x0000000f, 0x0000000f},
+       .wc_mode_list       = {0x0000000c, 0x0000000e, 0x0000000f, 0x0000000f},
        .wc_mod_list_max_size    = 4,
        .wc_ctl_size_bits        = 32,
        .dev_tbls                = ulp_template_thor_tbls
@@ -251,12 +251,14 @@ struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {
        {
        .app_id                  = 1,
        .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .flags                   = BNXT_ULP_APP_CAP_SHARED_EN
+       .flags                   = BNXT_ULP_APP_CAP_SHARED_EN |
+                               BNXT_ULP_APP_CAP_HOT_UPGRADE_EN
        },
        {
        .app_id                  = 1,
        .device_id               = BNXT_ULP_DEVICE_ID_THOR,
-       .flags                   = BNXT_ULP_APP_CAP_SHARED_EN
+       .flags                   = BNXT_ULP_APP_CAP_SHARED_EN |
+                               BNXT_ULP_APP_CAP_HOT_UPGRADE_EN
        },
        {
        .app_id                  = 2,
@@ -278,7 +280,7 @@ struct bnxt_ulp_resource_resv_info ulp_app_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
        .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
-       .count                   = 512
+       .count                   = 128
        },
        {
        .app_id                  = 1,
@@ -294,7 +296,7 @@ struct bnxt_ulp_resource_resv_info ulp_app_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
        .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
-       .count                   = 512
+       .count                   = 128
        },
        {
        .app_id                  = 2,
@@ -350,6 +352,30 @@ struct bnxt_ulp_glb_resource_info ulp_app_glb_resource_tbl[] = {
        },
        {
        .app_id                  = 1,
+       .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
+       .resource_type           = TF_IDENT_TYPE_WC_PROF,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1,
+       .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 1,
+       .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_0,
+       .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 1,
+       .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_1,
+       .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 1,
        .device_id               = BNXT_ULP_DEVICE_ID_THOR,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
        .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
@@ -391,6 +417,14 @@ struct bnxt_ulp_glb_resource_info ulp_app_glb_resource_tbl[] = {
        {
        .app_id                  = 1,
        .device_id               = BNXT_ULP_DEVICE_ID_THOR,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
+       .resource_type           = TF_IDENT_TYPE_WC_PROF,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1,
+       .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 1,
+       .device_id               = BNXT_ULP_DEVICE_ID_THOR,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_EM_FKB,
        .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_KEY_ID_0,
@@ -413,6 +447,22 @@ struct bnxt_ulp_glb_resource_info ulp_app_glb_resource_tbl[] = {
        .direction               = TF_DIR_RX
        },
        {
+       .app_id                  = 1,
+       .device_id               = BNXT_ULP_DEVICE_ID_THOR,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_0,
+       .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 1,
+       .device_id               = BNXT_ULP_DEVICE_ID_THOR,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_1,
+       .direction               = TF_DIR_RX
+       },
+       {
        .app_id                  = 2,
        .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
@@ -454,6 +504,30 @@ struct bnxt_ulp_glb_resource_info ulp_app_glb_resource_tbl[] = {
        },
        {
        .app_id                  = 2,
+       .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
+       .resource_type           = TF_IDENT_TYPE_WC_PROF,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1,
+       .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 2,
+       .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_0,
+       .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 2,
+       .device_id               = BNXT_ULP_DEVICE_ID_WH_PLUS,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_1,
+       .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 2,
        .device_id               = BNXT_ULP_DEVICE_ID_THOR,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
        .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
@@ -495,6 +569,14 @@ struct bnxt_ulp_glb_resource_info ulp_app_glb_resource_tbl[] = {
        {
        .app_id                  = 2,
        .device_id               = BNXT_ULP_DEVICE_ID_THOR,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
+       .resource_type           = TF_IDENT_TYPE_WC_PROF,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1,
+       .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 2,
+       .device_id               = BNXT_ULP_DEVICE_ID_THOR,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_EM_FKB,
        .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_EM_KEY_ID_0,
@@ -515,6 +597,22 @@ struct bnxt_ulp_glb_resource_info ulp_app_glb_resource_tbl[] = {
        .resource_type           = TF_TBL_TYPE_WC_FKB,
        .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_1,
        .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 2,
+       .device_id               = BNXT_ULP_DEVICE_ID_THOR,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_0,
+       .direction               = TF_DIR_RX
+       },
+       {
+       .app_id                  = 2,
+       .device_id               = BNXT_ULP_DEVICE_ID_THOR,
+       .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .glb_regfile_index       = BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_1,
+       .direction               = TF_DIR_RX
        }
 };
 
@@ -818,7 +916,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
        .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
-       .count                   = 64
+       .count                   = 63
        },
        {
        .app_id                  = 0,
@@ -962,7 +1060,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_TX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
        .resource_type           = TF_IDENT_TYPE_PROF_FUNC,
-       .count                   = 64
+       .count                   = 63
        },
        {
        .app_id                  = 0,
@@ -1418,7 +1516,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
-       .count                   = 512
+       .count                   = 128
        },
        {
        .app_id                  = 1,
@@ -1426,7 +1524,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
-       .count                   = 1024
+       .count                   = 128
        },
        {
        .app_id                  = 1,
@@ -1546,7 +1644,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_TX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
-       .count                   = 512
+       .count                   = 128
        },
        {
        .app_id                  = 1,
@@ -1554,7 +1652,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_TX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
-       .count                   = 1024
+       .count                   = 128
        },
        {
        .app_id                  = 1,
@@ -1698,7 +1796,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
-       .count                   = 1024
+       .count                   = 256
        },
        {
        .app_id                  = 1,
@@ -1826,7 +1924,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_TX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
-       .count                   = 1024
+       .count                   = 256
        },
        {
        .app_id                  = 1,
@@ -1946,7 +2044,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
-       .count                   = 512
+       .count                   = 128
        },
        {
        .app_id                  = 2,
@@ -1954,7 +2052,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
-       .count                   = 1024
+       .count                   = 128
        },
        {
        .app_id                  = 2,
@@ -2018,7 +2116,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
        .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
-       .count                   = 128
+       .count                   = 64
        },
        {
        .app_id                  = 2,
@@ -2074,7 +2172,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_TX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_FULL_ACT_RECORD,
-       .count                   = 512
+       .count                   = 128
        },
        {
        .app_id                  = 2,
@@ -2082,7 +2180,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_TX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
-       .count                   = 1024
+       .count                   = 128
        },
        {
        .app_id                  = 2,
@@ -2226,7 +2324,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
-       .count                   = 1024
+       .count                   = 256
        },
        {
        .app_id                  = 2,
@@ -2290,7 +2388,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_RX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
        .resource_type           = TF_TCAM_TBL_TYPE_WC_TCAM,
-       .count                   = 128
+       .count                   = 256
        },
        {
        .app_id                  = 2,
@@ -2354,7 +2452,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
        .direction               = TF_DIR_TX,
        .resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type           = TF_TBL_TYPE_ACT_STATS_64,
-       .count                   = 1024
+       .count                   = 256
        },
        {
        .app_id                  = 2,
@@ -2515,8 +2613,14 @@ uint32_t ulp_act_prop_map_table[] = {
                BNXT_ULP_ACT_PROP_SZ_JUMP,
        [BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE] =
                BNXT_ULP_ACT_PROP_SZ_SHARED_HANDLE,
-       [BNXT_ULP_ACT_PROP_IDX_RSS] =
-               BNXT_ULP_ACT_PROP_SZ_RSS,
+       [BNXT_ULP_ACT_PROP_IDX_RSS_TYPES] =
+               BNXT_ULP_ACT_PROP_SZ_RSS_TYPES,
+       [BNXT_ULP_ACT_PROP_IDX_RSS_LEVEL] =
+               BNXT_ULP_ACT_PROP_SZ_RSS_LEVEL,
+       [BNXT_ULP_ACT_PROP_IDX_RSS_KEY_LEN] =
+               BNXT_ULP_ACT_PROP_SZ_RSS_KEY_LEN,
+       [BNXT_ULP_ACT_PROP_IDX_RSS_KEY] =
+               BNXT_ULP_ACT_PROP_SZ_RSS_KEY,
        [BNXT_ULP_ACT_PROP_IDX_LAST] =
                BNXT_ULP_ACT_PROP_SZ_LAST
 };
index 73df10a..a60dfae 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Mon Feb  8 09:17:37 2021 */
+/* date: Mon Apr  5 11:35:38 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
 
 /* Mapper templates for header act list */
 struct bnxt_ulp_mapper_tmpl_info ulp_thor_act_tmpl_list[] = {
+       /* act_tid: 1, thor, ingress */
+       [1] = {
+       .device_name = BNXT_ULP_DEVICE_ID_THOR,
+       .num_tbls = 2,
+       .start_tbl_idx = 0,
+       .reject_info = {
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+               .cond_start_idx = 0,
+               .cond_nums = 0 }
+       }
 };
 
 struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
+       { /* act_tid: 1, thor, table: int_flow_counter_tbl.0 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_ACT_STATS_64,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+               .cond_start_idx = 0,
+               .cond_nums = 1 },
+       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .result_start_idx = 0,
+       .result_bit_size = 64,
+       .result_num_fields = 1
+       },
+       { /* act_tid: 1, thor, table: int_full_act_record.0 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 0,
+               .cond_false_goto = 0,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 1,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .result_start_idx = 1,
+       .result_bit_size = 128,
+       .result_num_fields = 17
+       }
 };
 
 struct bnxt_ulp_mapper_cond_info ulp_thor_act_cond_list[] = {
+       /* cond_execute: act_tid: 1, int_flow_counter_tbl.0 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_ACT_BIT_COUNT
+       }
 };
 
 struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
-};
-
-struct
-bnxt_ulp_mapper_ident_info ulp_thor_act_ident_list[] = {
-};
-
-struct
-bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
+       /* act_tid: 1, thor, table: int_flow_counter_tbl.0 */
+       {
+       .description = "count",
+       .field_bit_size = 64,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* act_tid: 1, thor, table: int_full_act_record.0 */
+       {
+       .description = "sp_rec_ptr",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "encap_ptr",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "mod_rec_ptr",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "rsvd1",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "rsvd0",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "decap_func",
+       .field_bit_size = 5,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meter",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "stats_op",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "stats_ptr",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
+       },
+       {
+       .description = "vnic_or_vport",
+       .field_bit_size = 11,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+       .field_opr1 = {
+       (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
+       BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
+       },
+       {
+       .description = "use_default",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "mirror",
+       .field_bit_size = 4,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "cond_copy",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "vlan_del_rpt",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "drop",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "hit",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "type",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       }
 };
index 5e7ba75..4502573 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Sun Mar 14 12:41:59 2021 */
+/* date: Mon Apr  5 11:35:38 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
 
 /* Mapper templates for header class list */
 struct bnxt_ulp_mapper_tmpl_info ulp_thor_class_tmpl_list[] = {
-       /* class_tid: 3, thor, ingress */
-       [3] = {
+       /* class_tid: 1, thor, ingress */
+       [1] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR,
-       .num_tbls = 7,
+       .num_tbls = 47,
        .start_tbl_idx = 0,
        .reject_info = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
                .cond_start_idx = 0,
                .cond_nums = 0 }
        },
-       /* class_tid: 4, thor, egress */
+       /* class_tid: 2, thor, ingress */
+       [2] = {
+       .device_name = BNXT_ULP_DEVICE_ID_THOR,
+       .num_tbls = 13,
+       .start_tbl_idx = 47,
+       .reject_info = {
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+               .cond_start_idx = 17,
+               .cond_nums = 0 }
+       },
+       /* class_tid: 3, thor, ingress */
+       [3] = {
+       .device_name = BNXT_ULP_DEVICE_ID_THOR,
+       .num_tbls = 1,
+       .start_tbl_idx = 60,
+       .reject_info = {
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+               .cond_start_idx = 20,
+               .cond_nums = 0 }
+       },
+       /* class_tid: 4, thor, ingress */
        [4] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR,
-       .num_tbls = 6,
-       .start_tbl_idx = 7,
+       .num_tbls = 9,
+       .start_tbl_idx = 61,
        .reject_info = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-               .cond_start_idx = 1,
+               .cond_start_idx = 20,
                .cond_nums = 0 }
        }
 };
 
 struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
-       { /* class_tid: 3, thor, table: int_full_act_record.ing_0 */
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
+       { /* class_tid: 1, thor, table: port_table.rd */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
        .resource_sub_type =
-               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE,
        .direction = TF_DIR_RX,
        .execute_info = {
                .cond_true_goto  = 1,
@@ -47,512 +66,28726 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
                .cond_start_idx = 0,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 0,
-       .result_bit_size = 128,
-       .result_num_fields = 17
+       .key_start_idx = 0,
+       .blob_key_bit_size = 10,
+       .key_bit_size = 10,
+       .key_num_fields = 1,
+       .ident_start_idx = 0,
+       .ident_nums = 3
        },
-       { /* class_tid: 3, thor, table: 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,
+       { /* class_tid: 1, thor, table: control.check_gre */
+       .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_false_goto = 17,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
                .cond_start_idx = 0,
-               .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
-       .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 17,
-       .result_bit_size = 32,
-       .result_num_fields = 1
+               .cond_nums = 1 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
        },
-       { /* class_tid: 3, thor, table: 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,
+       { /* class_tid: 1, thor, table: l2_cntxt_tcam_cache.gre_rd */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
        .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 = 0,
+               .cond_start_idx = 1,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
-       .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 18,
-       .result_bit_size = 32,
-       .result_num_fields = 1
+       .key_start_idx = 1,
+       .blob_key_bit_size = 8,
+       .key_bit_size = 8,
+       .key_num_fields = 1,
+       .ident_start_idx = 3,
+       .ident_nums = 0
        },
-       { /* class_tid: 3, thor, table: control.egr_1 */
+       { /* class_tid: 1, thor, table: control.gre_hit */
        .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 = 42,
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-               .cond_start_idx = 0,
+               .cond_start_idx = 1,
                .cond_nums = 1 },
-       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE
        },
-       { /* class_tid: 3, thor, table: int_full_act_record.egr_vfr */
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
+       { /* class_tid: 1, thor, table: l2_cntxt_tcam.gre */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
+       .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 = 2,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 2,
+       .blob_key_bit_size = 213,
+       .key_bit_size = 213,
+       .key_num_fields = 21,
+       .result_start_idx = 0,
+       .result_bit_size = 43,
+       .result_num_fields = 6,
+       .ident_start_idx = 3,
+       .ident_nums = 1
+       },
+       { /* class_tid: 1, thor, table: l2_cntxt_tcam_cache.gre_wr */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
        .resource_sub_type =
-               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_VFR_CFA_ACTION,
-       .direction = TF_DIR_TX,
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
+       .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 = 1,
+               .cond_start_idx = 2,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 19,
-       .result_bit_size = 128,
-       .result_num_fields = 17,
-       .encap_num_fields = 0
+       .key_start_idx = 23,
+       .blob_key_bit_size = 8,
+       .key_bit_size = 8,
+       .key_num_fields = 1,
+       .result_start_idx = 6,
+       .result_bit_size = 62,
+       .result_num_fields = 4
        },
-       { /* class_tid: 3, thor, table: parif_def_arec_ptr.egr_0 */
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
-       .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_DFLT_ACT_REC_PTR,
-       .direction = TF_DIR_TX,
+       { /* class_tid: 1, thor, table: fkb_select.gre */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_WC_FKB,
+       .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 = 1,
+               .cond_start_idx = 2,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
-       .tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_PARIF,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
+       .tbl_operand = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 36,
-       .result_bit_size = 32,
-       .result_num_fields = 1
+       .result_start_idx = 10,
+       .result_bit_size = 106,
+       .result_num_fields = 106
        },
-       { /* class_tid: 3, thor, table: parif_def_err_arec_ptr.egr_0 */
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
-       .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_ERR_ACT_REC_PTR,
-       .direction = TF_DIR_TX,
+       { /* class_tid: 1, thor, table: profile_tcam.gre */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_PROF_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 = 1,
+               .cond_start_idx = 2,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
-       .tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_PARIF,
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 37,
-       .result_bit_size = 32,
-       .result_num_fields = 1
+       .key_start_idx = 24,
+       .blob_key_bit_size = 94,
+       .key_bit_size = 94,
+       .key_num_fields = 43,
+       .result_start_idx = 116,
+       .result_bit_size = 33,
+       .result_num_fields = 8,
+       .ident_start_idx = 4,
+       .ident_nums = 0
        },
-       { /* class_tid: 4, thor, table: int_full_act_record.loopback */
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
-       .resource_sub_type =
-               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_VFR_CFA_ACTION,
-       .direction = TF_DIR_TX,
+       { /* class_tid: 1, thor, table: wm.gre */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_WC_TCAM_HIGH,
+       .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 = 2,
+               .cond_nums = 1 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 67,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 124,
+       .result_bit_size = 38,
+       .result_num_fields = 5
+       },
+       { /* class_tid: 1, thor, table: wm.gre_low */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_WC_TCAM_LOW,
+       .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 = 1,
+               .cond_start_idx = 3,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_GLB_REGFILE,
-       .tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 38,
-       .result_bit_size = 128,
-       .result_num_fields = 17,
-       .encap_num_fields = 0
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 181,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 129,
+       .result_bit_size = 38,
+       .result_num_fields = 5
        },
-       { /* class_tid: 4, thor, table: 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,
+       { /* class_tid: 1, thor, table: mac_addr_cache.gre_frag_rd */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MAC_ADDR_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 = 1,
+               .cond_start_idx = 3,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_CONST,
-       .tbl_operand = ULP_THOR_SYM_LOOPBACK_PARIF,
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 55,
-       .result_bit_size = 32,
-       .result_num_fields = 1
+       .key_start_idx = 295,
+       .blob_key_bit_size = 73,
+       .key_bit_size = 73,
+       .key_num_fields = 5,
+       .ident_start_idx = 4,
+       .ident_nums = 0
        },
-       { /* class_tid: 4, thor, table: 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,
+       { /* class_tid: 1, thor, table: control.gre_frag_mac_hit */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 4,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+               .cond_start_idx = 3,
+               .cond_nums = 1 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 1, thor, table: l2_cntxt_tcam.0 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
+       .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 = 1,
+               .cond_start_idx = 4,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_CONST,
-       .tbl_operand = ULP_THOR_SYM_LOOPBACK_PARIF,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 56,
-       .result_bit_size = 32,
-       .result_num_fields = 1
+       .key_start_idx = 300,
+       .blob_key_bit_size = 213,
+       .key_bit_size = 213,
+       .key_num_fields = 21,
+       .result_start_idx = 134,
+       .result_bit_size = 43,
+       .result_num_fields = 6,
+       .ident_start_idx = 4,
+       .ident_nums = 0
        },
-       { /* class_tid: 4, thor, table: int_full_act_record.vf_ing */
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
+       { /* class_tid: 1, thor, table: mac_addr_cache.gre_frag_wr */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
        .resource_sub_type =
-               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MAC_ADDR_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 = 1,
+               .cond_start_idx = 4,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_PUSH_AND_SET_VFR_FLAG,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 57,
-       .result_bit_size = 128,
-       .result_num_fields = 17,
-       .encap_num_fields = 0
+       .key_start_idx = 321,
+       .blob_key_bit_size = 73,
+       .key_bit_size = 73,
+       .key_num_fields = 5,
+       .result_start_idx = 140,
+       .result_bit_size = 62,
+       .result_num_fields = 4
        },
-       { /* class_tid: 4, thor, table: vtag_encap_record.vfr_egr0 */
+       { /* class_tid: 1, thor, table: fkb_select.gre_frag */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-       .resource_type = TF_TBL_TYPE_ACT_ENCAP_8B,
-       .resource_sub_type =
-               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-       .direction = TF_DIR_TX,
+       .resource_type = TF_TBL_TYPE_WC_FKB,
+       .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 = 1,
+               .cond_start_idx = 4,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
+       .tbl_operand = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 74,
-       .result_bit_size = 0,
-       .result_num_fields = 0,
-       .encap_num_fields = 11
+       .result_start_idx = 144,
+       .result_bit_size = 106,
+       .result_num_fields = 106
        },
-       { /* class_tid: 4, thor, table: int_full_act_record.vfr_egr0 */
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
-       .resource_sub_type =
-               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_VFR_CFA_ACTION,
-       .direction = TF_DIR_TX,
+       { /* class_tid: 1, thor, table: profile_tcam.gre_frag */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_PROF_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 = 1,
+               .cond_start_idx = 4,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
-       .result_start_idx = 85,
-       .result_bit_size = 128,
-       .result_num_fields = 17
-       }
-};
-
-struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
-       /* cond_execute: class_tid: 3, control.egr_1 */
-       {
-       .cond_opcode = BNXT_ULP_COND_OPC_CF_NOT_SET,
-       .cond_operand = BNXT_ULP_CF_IDX_VFR_MODE
-       }
-};
-
-struct bnxt_ulp_mapper_field_info ulp_thor_class_result_field_list[] = {
-       /* class_tid: 3, thor, table: int_full_act_record.ing_0 */
-       {
-       .description = "sp_rec_ptr",
-       .field_bit_size = 16,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .key_start_idx = 326,
+       .blob_key_bit_size = 94,
+       .key_bit_size = 94,
+       .key_num_fields = 43,
+       .result_start_idx = 250,
+       .result_bit_size = 33,
+       .result_num_fields = 8,
+       .ident_start_idx = 4,
+       .ident_nums = 0
        },
-       {
-       .description = "encap_ptr",
-       .field_bit_size = 16,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       { /* class_tid: 1, thor, table: wm.gre_frag */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_WC_TCAM_HIGH,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 29,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+               .cond_start_idx = 4,
+               .cond_nums = 1 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 369,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 258,
+       .result_bit_size = 38,
+       .result_num_fields = 5
        },
-       {
-       .description = "mod_rec_ptr",
-       .field_bit_size = 16,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       { /* class_tid: 1, thor, table: wm.gre_frag_low */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_WC_TCAM_LOW,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 28,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 5,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 483,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 263,
+       .result_bit_size = 38,
+       .result_num_fields = 5
        },
-       {
-       .description = "rsvd1",
-       .field_bit_size = 16,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       { /* class_tid: 1, thor, table: mac_addr_cache.non_gre_rd */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MAC_ADDR_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 = 5,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 597,
+       .blob_key_bit_size = 73,
+       .key_bit_size = 73,
+       .key_num_fields = 5,
+       .ident_start_idx = 4,
+       .ident_nums = 0
        },
-       {
-       .description = "rsvd0",
-       .field_bit_size = 8,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       { /* class_tid: 1, thor, table: control.non_gre_mac */
+       .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 = 5,
+               .cond_nums = 1 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
        },
-       {
-       .description = "decap_func",
-       .field_bit_size = 5,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       { /* class_tid: 1, thor, table: l2_cntxt_tcam.0 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
+       .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 = 6,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 602,
+       .blob_key_bit_size = 213,
+       .key_bit_size = 213,
+       .key_num_fields = 21,
+       .result_start_idx = 268,
+       .result_bit_size = 43,
+       .result_num_fields = 6,
+       .ident_start_idx = 4,
+       .ident_nums = 0
        },
-       {
-       .description = "meter",
-       .field_bit_size = 10,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       { /* class_tid: 1, thor, table: 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,
+       .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 = 6,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 623,
+       .blob_key_bit_size = 73,
+       .key_bit_size = 73,
+       .key_num_fields = 5,
+       .result_start_idx = 274,
+       .result_bit_size = 62,
+       .result_num_fields = 4
        },
-       {
-       .description = "stats_op",
-       .field_bit_size = 1,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       { /* class_tid: 1, thor, table: control.icmpv4_test */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 8,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+               .cond_start_idx = 6,
+               .cond_nums = 2 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
        },
-       {
-       .description = "stats_ptr",
+       { /* class_tid: 1, thor, table: profile_tcam_cache.icmpv4_rd */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM,
+       .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 = 8,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 628,
+       .blob_key_bit_size = 14,
+       .key_bit_size = 14,
+       .key_num_fields = 3,
+       .ident_start_idx = 4,
+       .ident_nums = 0
+       },
+       { /* class_tid: 1, thor, table: control.icmpv4 */
+       .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 = 8,
+               .cond_nums = 1 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 1, thor, table: fkb_select.icmpv4 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_WC_FKB,
+       .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 = 9,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
+       .tbl_operand = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .result_start_idx = 278,
+       .result_bit_size = 106,
+       .result_num_fields = 106
+       },
+       { /* class_tid: 1, thor, table: profile_tcam.icmpv4 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
+       .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 = 9,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 631,
+       .blob_key_bit_size = 94,
+       .key_bit_size = 94,
+       .key_num_fields = 43,
+       .result_start_idx = 384,
+       .result_bit_size = 33,
+       .result_num_fields = 8,
+       .ident_start_idx = 4,
+       .ident_nums = 1
+       },
+       { /* class_tid: 1, thor, table: profile_tcam_cache.icmpv4_wr */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM,
+       .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 = 9,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 674,
+       .blob_key_bit_size = 14,
+       .key_bit_size = 14,
+       .key_num_fields = 3,
+       .result_start_idx = 392,
+       .result_bit_size = 82,
+       .result_num_fields = 7
+       },
+       { /* class_tid: 1, thor, table: wm.icmpv4 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_WC_TCAM_HIGH,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 17,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+               .cond_start_idx = 9,
+               .cond_nums = 1 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 677,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 399,
+       .result_bit_size = 38,
+       .result_num_fields = 5
+       },
+       { /* class_tid: 1, thor, table: wm.icmpv4_low */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_WC_TCAM_LOW,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 16,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 10,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 791,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 404,
+       .result_bit_size = 38,
+       .result_num_fields = 5
+       },
+       { /* class_tid: 1, thor, table: control.icmpv6_test */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 8,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+               .cond_start_idx = 10,
+               .cond_nums = 2 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 1, thor, table: profile_tcam_cache.icmpv6_rd */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM,
+       .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_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 905,
+       .blob_key_bit_size = 14,
+       .key_bit_size = 14,
+       .key_num_fields = 3,
+       .ident_start_idx = 5,
+       .ident_nums = 0
+       },
+       { /* class_tid: 1, thor, table: control.icmpv6 */
+       .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 = 12,
+               .cond_nums = 1 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 1, thor, table: fkb_select.icmpv6 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_WC_FKB,
+       .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 = 13,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
+       .tbl_operand = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .result_start_idx = 409,
+       .result_bit_size = 106,
+       .result_num_fields = 106
+       },
+       { /* class_tid: 1, thor, table: profile_tcam.icmpv6 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
+       .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 = 13,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 908,
+       .blob_key_bit_size = 94,
+       .key_bit_size = 94,
+       .key_num_fields = 43,
+       .result_start_idx = 515,
+       .result_bit_size = 33,
+       .result_num_fields = 8,
+       .ident_start_idx = 5,
+       .ident_nums = 1
+       },
+       { /* class_tid: 1, thor, table: profile_tcam_cache.icmpv6_wr */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM,
+       .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 = 13,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 951,
+       .blob_key_bit_size = 14,
+       .key_bit_size = 14,
+       .key_num_fields = 3,
+       .result_start_idx = 523,
+       .result_bit_size = 82,
+       .result_num_fields = 7
+       },
+       { /* class_tid: 1, thor, table: wm.icmpv6 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_WC_TCAM_HIGH,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 9,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+               .cond_start_idx = 13,
+               .cond_nums = 1 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 954,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 530,
+       .result_bit_size = 38,
+       .result_num_fields = 5
+       },
+       { /* class_tid: 1, thor, table: wm.icmpv6_low */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_WC_TCAM_LOW,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 8,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 14,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 1068,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 535,
+       .result_bit_size = 38,
+       .result_num_fields = 5
+       },
+       { /* class_tid: 1, thor, table: profile_tcam_cache.l3_l4_rd */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM,
+       .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 = 14,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1182,
+       .blob_key_bit_size = 14,
+       .key_bit_size = 14,
+       .key_num_fields = 3,
+       .ident_start_idx = 6,
+       .ident_nums = 0
+       },
+       { /* class_tid: 1, thor, table: control.l3_l4 */
+       .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 = 14,
+               .cond_nums = 1 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 1, thor, table: fkb_select.l3_l4_wm */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_WC_FKB,
+       .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_nums = 0 },
+       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
+       .tbl_operand = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .result_start_idx = 540,
+       .result_bit_size = 106,
+       .result_num_fields = 106
+       },
+       { /* class_tid: 1, thor, table: profile_tcam.l3_l4 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
+       .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_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1185,
+       .blob_key_bit_size = 94,
+       .key_bit_size = 94,
+       .key_num_fields = 43,
+       .result_start_idx = 646,
+       .result_bit_size = 33,
+       .result_num_fields = 8,
+       .ident_start_idx = 6,
+       .ident_nums = 0
+       },
+       { /* class_tid: 1, thor, table: profile_tcam_cache.wr */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM,
+       .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_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1228,
+       .blob_key_bit_size = 14,
+       .key_bit_size = 14,
+       .key_num_fields = 3,
+       .result_start_idx = 654,
+       .result_bit_size = 82,
+       .result_num_fields = 7
+       },
+       { /* class_tid: 1, thor, table: wm.l4 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_WC_TCAM_HIGH,
+       .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 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 1231,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 661,
+       .result_bit_size = 38,
+       .result_num_fields = 5
+       },
+       { /* class_tid: 1, thor, table: wm.l4_low */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_WC_TCAM_LOW,
+       .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 = 16,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 1345,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 666,
+       .result_bit_size = 38,
+       .result_num_fields = 5
+       },
+       { /* class_tid: 1, thor, table: control.check_rss_action */
+       .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 = 16,
+               .cond_nums = 1 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 1, thor, table: control.rss_config */
+       .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 = 17,
+               .cond_nums = 0 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .func_info = {
+               .func_opc = BNXT_ULP_FUNC_OPC_RSS_CONFIG,
+               .func_dst_opr = BNXT_ULP_RF_IDX_CC },
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 2, thor, table: port_table.rd */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_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_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1459,
+       .blob_key_bit_size = 10,
+       .key_bit_size = 10,
+       .key_num_fields = 1,
+       .ident_start_idx = 6,
+       .ident_nums = 3
+       },
+       { /* class_tid: 2, thor, table: 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,
+       .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_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1460,
+       .blob_key_bit_size = 73,
+       .key_bit_size = 73,
+       .key_num_fields = 5,
+       .ident_start_idx = 9,
+       .ident_nums = 0
+       },
+       { /* class_tid: 2, thor, table: control.0 */
+       .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 = 17,
+               .cond_nums = 1 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 2, thor, table: l2_cntxt_tcam.0 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
+       .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 = 18,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1465,
+       .blob_key_bit_size = 213,
+       .key_bit_size = 213,
+       .key_num_fields = 21,
+       .result_start_idx = 671,
+       .result_bit_size = 43,
+       .result_num_fields = 6,
+       .ident_start_idx = 9,
+       .ident_nums = 1
+       },
+       { /* class_tid: 2, thor, table: 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,
+       .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 = 18,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1486,
+       .blob_key_bit_size = 73,
+       .key_bit_size = 73,
+       .key_num_fields = 5,
+       .result_start_idx = 677,
+       .result_bit_size = 62,
+       .result_num_fields = 4
+       },
+       { /* class_tid: 2, thor, table: profile_tcam_cache.l3_l4_rd */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM,
+       .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 = 18,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1491,
+       .blob_key_bit_size = 14,
+       .key_bit_size = 14,
+       .key_num_fields = 3,
+       .ident_start_idx = 10,
+       .ident_nums = 0
+       },
+       { /* class_tid: 2, thor, table: control.l3_l4 */
+       .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_nums = 1 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 2, thor, table: fkb_select.l3_l4_wm */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_WC_FKB,
+       .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 = 19,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
+       .tbl_operand = BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .result_start_idx = 681,
+       .result_bit_size = 106,
+       .result_num_fields = 106
+       },
+       { /* class_tid: 2, thor, table: profile_tcam.l3_l4 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
+       .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 = 19,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1494,
+       .blob_key_bit_size = 94,
+       .key_bit_size = 94,
+       .key_num_fields = 43,
+       .result_start_idx = 787,
+       .result_bit_size = 33,
+       .result_num_fields = 8,
+       .ident_start_idx = 10,
+       .ident_nums = 0
+       },
+       { /* class_tid: 2, thor, table: profile_tcam_cache.wr */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM,
+       .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 = 19,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1537,
+       .blob_key_bit_size = 14,
+       .key_bit_size = 14,
+       .key_num_fields = 3,
+       .result_start_idx = 795,
+       .result_bit_size = 82,
+       .result_num_fields = 7
+       },
+       { /* class_tid: 2, thor, table: wm.l4 */
+       .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  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 19,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
+       .pri_operand = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_BE,
+       .key_start_idx = 1540,
+       .blob_key_bit_size = 0,
+       .key_bit_size = 0,
+       .key_num_fields = 114,
+       .result_start_idx = 802,
+       .result_bit_size = 38,
+       .result_num_fields = 5
+       },
+       { /* class_tid: 2, thor, table: control.check_rss_action */
+       .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 = 19,
+               .cond_nums = 1 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 2, thor, table: control.rss_config */
+       .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 = 20,
+               .cond_nums = 0 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .func_info = {
+               .func_opc = BNXT_ULP_FUNC_OPC_RSS_CONFIG,
+               .func_dst_opr = BNXT_ULP_RF_IDX_CC },
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 3, thor, table: control.0 */
+       .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 = 20,
+               .cond_nums = 0 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 4, thor, table: control.get_parent_mac_addr */
+       .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 = 20,
+               .cond_nums = 0 },
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .func_info = {
+               .func_opc = BNXT_ULP_FUNC_OPC_GET_PARENT_MAC_ADDR,
+               .func_dst_opr = BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC },
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 4, thor, table: control.0 */
+       .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 = 20,
+               .cond_nums = 1 },
+       .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_PHY_PORT_VPORT,
+               .func_src2 = BNXT_ULP_FUNC_SRC_CONST,
+               .func_opr2 = 1,
+               .func_dst_opr = BNXT_ULP_RF_IDX_CC },
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE
+       },
+       { /* class_tid: 4, thor, table: int_full_act_record.0 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 21,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
+       .tbl_operand = BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_0,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .result_start_idx = 807,
+       .result_bit_size = 128,
+       .result_num_fields = 17
+       },
+       { /* class_tid: 4, thor, table: port_table.wr_0 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_TABLE,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 3,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 21,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1654,
+       .blob_key_bit_size = 10,
+       .key_bit_size = 10,
+       .key_num_fields = 1,
+       .result_start_idx = 824,
+       .result_bit_size = 152,
+       .result_num_fields = 5
+       },
+       { /* class_tid: 4, thor, table: int_full_act_record.1 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 21,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
+       .tbl_operand = BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_1,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+       .shared_session = BNXT_ULP_SHARED_SESSION_YES,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .result_start_idx = 829,
+       .result_bit_size = 128,
+       .result_num_fields = 17
+       },
+       { /* class_tid: 4, thor, table: port_table.wr_1 */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_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_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1655,
+       .blob_key_bit_size = 10,
+       .key_bit_size = 10,
+       .key_num_fields = 1,
+       .result_start_idx = 846,
+       .result_bit_size = 152,
+       .result_num_fields = 5
+       },
+       { /* class_tid: 4, thor, table: port_table.rd */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PORT_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_nums = 0 },
+       .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+       .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .key_start_idx = 1656,
+       .blob_key_bit_size = 10,
+       .key_bit_size = 10,
+       .key_num_fields = 1,
+       .ident_start_idx = 10,
+       .ident_nums = 1
+       },
+       { /* class_tid: 4, thor, table: 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,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 21,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
+       .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .result_start_idx = 851,
+       .result_bit_size = 32,
+       .result_num_fields = 1
+       },
+       { /* class_tid: 4, thor, table: 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,
+       .execute_info = {
+               .cond_true_goto  = 0,
+               .cond_false_goto = 0,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 21,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
+       .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+       .byte_order = BNXT_ULP_BYTE_ORDER_LE,
+       .result_start_idx = 852,
+       .result_bit_size = 32,
+       .result_num_fields = 1
+       }
+};
+
+struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
+       /* cond_execute: class_tid: 1, control.check_gre */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_HDR_BIT_T_GRE
+       },
+       /* cond_execute: class_tid: 1, control.gre_hit */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+       .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+       },
+       /* cond_execute: class_tid: 1, wm.gre */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
+       .cond_operand = BNXT_ULP_CF_IDX_WC_IS_HA_HIGH_REG
+       },
+       /* cond_execute: class_tid: 1, control.gre_frag_mac_hit */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+       .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+       },
+       /* cond_execute: class_tid: 1, wm.gre_frag */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
+       .cond_operand = BNXT_ULP_CF_IDX_WC_IS_HA_HIGH_REG
+       },
+       /* cond_execute: class_tid: 1, control.non_gre_mac */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+       .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+       },
+       /* cond_execute: class_tid: 1, control.icmpv4_test */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+       },
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_HDR_BIT_O_ICMP
+       },
+       /* cond_execute: class_tid: 1, control.icmpv4 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+       .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+       },
+       /* cond_execute: class_tid: 1, wm.icmpv4 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
+       .cond_operand = BNXT_ULP_CF_IDX_WC_IS_HA_HIGH_REG
+       },
+       /* cond_execute: class_tid: 1, control.icmpv6_test */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+       },
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_HDR_BIT_O_ICMP
+       },
+       /* cond_execute: class_tid: 1, control.icmpv6 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+       .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+       },
+       /* cond_execute: class_tid: 1, wm.icmpv6 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
+       .cond_operand = BNXT_ULP_CF_IDX_WC_IS_HA_HIGH_REG
+       },
+       /* cond_execute: class_tid: 1, control.l3_l4 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+       .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+       },
+       /* cond_execute: class_tid: 1, wm.l4 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
+       .cond_operand = BNXT_ULP_CF_IDX_WC_IS_HA_HIGH_REG
+       },
+       /* cond_execute: class_tid: 1, control.check_rss_action */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_ACT_BIT_RSS
+       },
+       /* cond_execute: class_tid: 2, control.0 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+       .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+       },
+       /* cond_execute: class_tid: 2, control.l3_l4 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+       .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+       },
+       /* cond_execute: class_tid: 2, control.check_rss_action */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_ACT_BIT_RSS
+       },
+       /* cond_execute: class_tid: 4, control.0 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+       .cond_operand = BNXT_ULP_RF_IDX_CC
+       }
+};
+
+struct bnxt_ulp_mapper_key_info ulp_thor_class_key_info_list[] = {
+       /* class_tid: 1, thor, table: port_table.rd */
+       {
+       .field_info_mask = {
+               .description = "dev.port_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "dev.port_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: l2_cntxt_tcam_cache.gre_rd */
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: l2_cntxt_tcam.gre */
+       {
+       .field_info_mask = {
+               .description = "etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ivlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ivlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ovlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ovlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac1_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "mac1_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac0_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "mac0_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tunnel_id",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tunnel_id",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_GRE}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "llc",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "llc",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "roce",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "roce",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mpass_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "mpass_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               },
+       .field_info_spec = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               }
+       },
+       /* class_tid: 1, thor, table: l2_cntxt_tcam_cache.gre_wr */
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam.gre */
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_1 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_1 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               },
+       .field_info_spec = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               }
+       },
+       /* class_tid: 1, thor, table: wm.gre */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_2 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_2 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               47}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 1, thor, table: wm.gre_low */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_2 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_2 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               47}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 1, thor, table: mac_addr_cache.gre_frag_rd */
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: l2_cntxt_tcam.0 */
+       {
+       .field_info_mask = {
+               .description = "etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ivlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ivlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ovlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ovlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac1_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "mac1_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac0_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "mac0_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tunnel_id",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tunnel_id",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "llc",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "llc",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "roce",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "roce",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mpass_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               2}
+               },
+       .field_info_spec = {
+               .description = "mpass_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               },
+       .field_info_spec = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               }
+       },
+       /* class_tid: 1, thor, table: mac_addr_cache.gre_frag_wr */
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam.gre_frag */
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               16}
+               },
+       .field_info_spec = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               16}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L2_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               },
+       .field_info_spec = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               }
+       },
+       /* class_tid: 1, thor, table: wm.gre_frag */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               47}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 1, thor, table: wm.gre_frag_low */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               47}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 1, thor, table: mac_addr_cache.non_gre_rd */
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               },
+       .field_info_spec = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: l2_cntxt_tcam.0 */
+       {
+       .field_info_mask = {
+               .description = "etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ivlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ivlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ovlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ovlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac1_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "mac1_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac0_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "mac0_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tunnel_id",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tunnel_id",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "llc",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "llc",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "roce",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "roce",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mpass_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               2}
+               },
+       .field_info_spec = {
+               .description = "mpass_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               },
+       .field_info_spec = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               }
+       },
+       /* class_tid: 1, thor, table: mac_addr_cache.wr */
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               },
+       .field_info_spec = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam_cache.icmpv4_rd */
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_HDR_SIG_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_HDR_SIG_ID & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam.icmpv4 */
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L4_HDR_TYPE_ICMP}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L4_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L3_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L2_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               },
+       .field_info_spec = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam_cache.icmpv4_wr */
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_HDR_SIG_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_HDR_SIG_ID & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: wm.icmpv4 */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       1},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               58}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 1, thor, table: wm.icmpv4_low */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       1},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               58}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam_cache.icmpv6_rd */
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_HDR_SIG_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_HDR_SIG_ID & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam.icmpv6 */
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L4_HDR_TYPE_ICMP}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L4_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L3_HDR_TYPE_IPV6}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L3_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L2_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               },
+       .field_info_spec = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam_cache.icmpv6_wr */
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_HDR_SIG_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_HDR_SIG_ID & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: wm.icmpv6 */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       1},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               58}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 1, thor, table: wm.icmpv6_low */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       1},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               58}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam_cache.l3_l4_rd */
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_HDR_SIG_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_HDR_SIG_ID & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam.l3_l4 */
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       ULP_THOR_SYM_L4_HDR_TYPE_TCP},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               ULP_THOR_SYM_L4_HDR_TYPE_UDP}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L4_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       ULP_THOR_SYM_L3_HDR_TYPE_IPV4},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               ULP_THOR_SYM_L3_HDR_TYPE_IPV6}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L3_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L2_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               },
+       .field_info_spec = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               }
+       },
+       /* class_tid: 1, thor, table: profile_tcam_cache.wr */
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_HDR_SIG_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_HDR_SIG_ID & 0xff}
+               }
+       },
+       /* class_tid: 1, thor, table: wm.l4 */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       ULP_THOR_SYM_IP_PROTO_TCP},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               ULP_THOR_SYM_IP_PROTO_UDP}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT & 0xff}
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 1, thor, table: wm.l4_low */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       ULP_THOR_SYM_IP_PROTO_TCP},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               ULP_THOR_SYM_IP_PROTO_UDP}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT & 0xff}
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 2, thor, table: port_table.rd */
+       {
+       .field_info_mask = {
+               .description = "dev.port_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "dev.port_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff}
+               }
+       },
+       /* class_tid: 2, thor, table: mac_addr_cache.rd */
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               },
+       .field_info_spec = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               }
+       },
+       /* class_tid: 2, thor, table: l2_cntxt_tcam.0 */
+       {
+       .field_info_mask = {
+               .description = "etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ivlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ivlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ovlan_tpid_sel",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_ovlan_vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac1_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "mac1_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac0_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "mac0_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tunnel_id",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tunnel_id",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "llc",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "llc",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "roce",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "roce",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mpass_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               2}
+               },
+       .field_info_spec = {
+               .description = "mpass_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               },
+       .field_info_spec = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               }
+       },
+       /* class_tid: 2, thor, table: mac_addr_cache.wr */
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_TUN_HDR_TYPE_NONE}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "one_tag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "vid",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               },
+       .field_info_spec = {
+               .description = "mac_addr",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_FIELD_BIT,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr3 = {
+               (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
+               }
+       },
+       /* class_tid: 2, thor, table: profile_tcam_cache.l3_l4_rd */
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_HDR_SIG_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_HDR_SIG_ID & 0xff}
+               }
+       },
+       /* class_tid: 2, thor, table: profile_tcam.l3_l4 */
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       ULP_THOR_SYM_L4_HDR_TYPE_TCP},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               ULP_THOR_SYM_L4_HDR_TYPE_UDP}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L4_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "ieh",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       ULP_THOR_SYM_L3_HDR_TYPE_IPV4},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               ULP_THOR_SYM_L3_HDR_TYPE_IPV6}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L3_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "l2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               ULP_THOR_SYM_L2_HDR_VALID_YES}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_flags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_err",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tun_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_is_udp_tcp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl4_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_dst",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_ipv6_cmp_src",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_isIP",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl3_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_two_vtags",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_vtag_present",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_uc_mc_bc",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "tl2_hdr_valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "hrec_next",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "agg_error",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "metadata",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_0",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "pkt_type_1",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               },
+       .field_info_spec = {
+               .description = "valid",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr1 = {
+               1}
+               }
+       },
+       /* class_tid: 2, thor, table: profile_tcam_cache.wr */
+       {
+       .field_info_mask = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "recycle_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "prof_func_id",
+               .field_bit_size = 7,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr1 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "hdr_sig_id",
+               .field_bit_size = 5,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_HDR_SIG_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_HDR_SIG_ID & 0xff}
+               }
+       },
+       /* class_tid: 2, thor, table: wm.l4 */
+       {
+       .field_info_mask = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "wc_profile_id",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l2_cntxt_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+               .field_opr1 = {
+               (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+               BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+                       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "parif",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "spif",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "svif",
+               .field_bit_size = 11,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "lcos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "meta",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "rcyc_cnt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "loopback",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               },
+       .field_info_spec = {
+               .description = "tl3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl3.l3err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tl4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tuntype",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tflags",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tids",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tid",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxts",
+               .field_bit_size = 24,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tctxt",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "tqos",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "terr",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_l2type",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dmac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_smac",
+               .field_bit_size = 48,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_dt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_sa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_nvt",
+               .field_bit_size = 2,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ovt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivp",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivd",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivv",
+               .field_bit_size = 12,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_ivt",
+               .field_bit_size = 3,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l2_etype",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.sip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv4",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip.ipv6",
+               .field_bit_size = 128,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.dip_selcmp.ipv6",
+               .field_bit_size = 72,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ttl",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "l3.prot",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr2 = {
+                       ULP_THOR_SYM_IP_PROTO_TCP},
+               .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
+               .field_opr3 = {
+               ULP_THOR_SYM_IP_PROTO_UDP}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv4",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.fid.ipv6",
+               .field_bit_size = 20,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.qos",
+               .field_bit_size = 8,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_nonext",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_esp",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_auth",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_dest",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_rthdr",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_hop",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.ieh_1frag",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.df",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv4",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l3.l3err.ipv6",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.l4type",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.src",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT & 0xff}
+               },
+       .field_info_spec = {
+               .description = "l4.dst",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+               .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+               .field_opr1 = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
+               .field_src2 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr2 = {
+                       (BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT >> 8) & 0xff,
+                       BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT & 0xff},
+               .field_src3 = BNXT_ULP_FIELD_SRC_HF,
+               .field_opr3 = {
+               (BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT & 0xff}
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.flags",
+               .field_bit_size = 9,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.seq",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.ack",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.win",
+               .field_bit_size = 16,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.pa",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.opt",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tcpts",
+               .field_bit_size = 1,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.tsval",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.txecr",
+               .field_bit_size = 32,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       {
+       .field_info_mask = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               },
+       .field_info_spec = {
+               .description = "l4.err",
+               .field_bit_size = 4,
+               .field_opc = BNXT_ULP_FIELD_OPC_SKIP
+               }
+       },
+       /* class_tid: 4, thor, table: port_table.wr_0 */
+       {
+       .field_info_mask = {
+               .description = "dev.port_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "dev.port_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff}
+               }
+       },
+       /* class_tid: 4, thor, table: port_table.wr_1 */
+       {
+       .field_info_mask = {
+               .description = "dev.port_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "dev.port_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff}
+               }
+       },
+       /* class_tid: 4, thor, table: port_table.rd */
+       {
+       .field_info_mask = {
+               .description = "dev.port_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+               .field_opr1 = {
+                       0xff,
+                       0xff}
+               },
+       .field_info_spec = {
+               .description = "dev.port_id",
+               .field_bit_size = 10,
+               .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+               .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+               .field_opr1 = {
+               (BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff}
+               }
+       }
+};
+
+struct bnxt_ulp_mapper_field_info ulp_thor_class_result_field_list[] = {
+       /* class_tid: 1, thor, table: l2_cntxt_tcam.gre */
+       {
+       .description = "prof_func_id",
+       .field_bit_size = 7,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_1 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_1 & 0xff}
+       },
+       {
+       .description = "ctxt_meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "def_ctxt_data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR & 0xff}
+       },
+       {
+       .description = "ctxt_opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       ULP_THOR_SYM_CTXT_OPCODE_NORMAL_FLOW}
+       },
+       {
+       .description = "l2_cntxt_id",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+       .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr2 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+       .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr3 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+       },
+       {
+       .description = "parif",
+       .field_bit_size = 4,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+       .field_opr1 = {
+       (BNXT_ULP_CF_IDX_PHY_PORT_PARIF >> 8) & 0xff,
+       BNXT_ULP_CF_IDX_PHY_PORT_PARIF & 0xff}
+       },
+       /* class_tid: 1, thor, table: l2_cntxt_tcam_cache.gre_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 = "l2_cntxt_tcam_index",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_cntxt_id",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "src_property_ptr",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: fkb_select.gre */
+       {
+       .description = "l2_cntxt_id.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "parif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "spif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "svif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "lcos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "rcyc_cnt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "loopback.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "tl3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tuntype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tflags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tids.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tqos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "terr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_ack.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_win.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_tsval.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_txecr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: profile_tcam.gre */
+       {
+       .description = "wc_key_id",
+       .field_bit_size = 6,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 & 0xff}
+       },
+       {
+       .description = "wc_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_2 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_2 & 0xff}
+       },
+       {
+       .description = "wc_search_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "em_key_type",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_key_id",
+       .field_bit_size = 6,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_search_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "pl_byp_lkup_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: wm.gre */
+       {
+       .description = "ctxt_data",
+       .field_bit_size = 14,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       },
+       {
+       .description = "strength",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       /* class_tid: 1, thor, table: wm.gre_low */
+       {
+       .description = "ctxt_data",
+       .field_bit_size = 14,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       },
+       {
+       .description = "strength",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       /* class_tid: 1, thor, table: l2_cntxt_tcam.0 */
+       {
+       .description = "prof_func_id",
+       .field_bit_size = 7,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+       },
+       {
+       .description = "ctxt_meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "def_ctxt_data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR & 0xff}
+       },
+       {
+       .description = "ctxt_opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       ULP_THOR_SYM_CTXT_OPCODE_NORMAL_FLOW}
+       },
+       {
+       .description = "l2_cntxt_id",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+       .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr2 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+       .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr3 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+       },
+       {
+       .description = "parif",
+       .field_bit_size = 4,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+       .field_opr1 = {
+       (BNXT_ULP_CF_IDX_PHY_PORT_PARIF >> 8) & 0xff,
+       BNXT_ULP_CF_IDX_PHY_PORT_PARIF & 0xff}
+       },
+       /* class_tid: 1, thor, table: mac_addr_cache.gre_frag_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 = "l2_cntxt_tcam_index",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_cntxt_id",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "src_property_ptr",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: fkb_select.gre_frag */
+       {
+       .description = "l2_cntxt_id.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "parif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "spif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "svif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "lcos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "rcyc_cnt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "loopback.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "tl3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tuntype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tflags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tids.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tqos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "terr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_ack.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_win.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_tsval.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_txecr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: profile_tcam.gre_frag */
+       {
+       .description = "wc_key_id",
+       .field_bit_size = 6,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 & 0xff}
+       },
+       {
+       .description = "wc_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff}
+       },
+       {
+       .description = "wc_search_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "em_key_type",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_key_id",
+       .field_bit_size = 6,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_search_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "pl_byp_lkup_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: wm.gre_frag */
+       {
+       .description = "ctxt_data",
+       .field_bit_size = 14,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       },
+       {
+       .description = "strength",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       /* class_tid: 1, thor, table: wm.gre_frag_low */
+       {
+       .description = "ctxt_data",
+       .field_bit_size = 14,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       },
+       {
+       .description = "strength",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       /* class_tid: 1, thor, table: l2_cntxt_tcam.0 */
+       {
+       .description = "prof_func_id",
+       .field_bit_size = 7,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+       },
+       {
+       .description = "ctxt_meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "def_ctxt_data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR & 0xff}
+       },
+       {
+       .description = "ctxt_opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       ULP_THOR_SYM_CTXT_OPCODE_NORMAL_FLOW}
+       },
+       {
+       .description = "l2_cntxt_id",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+       .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr2 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+       .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr3 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+       },
+       {
+       .description = "parif",
+       .field_bit_size = 4,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+       .field_opr1 = {
+       (BNXT_ULP_CF_IDX_PHY_PORT_PARIF >> 8) & 0xff,
+       BNXT_ULP_CF_IDX_PHY_PORT_PARIF & 0xff}
+       },
+       /* class_tid: 1, thor, table: mac_addr_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 = "l2_cntxt_tcam_index",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_cntxt_id",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "src_property_ptr",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: fkb_select.icmpv4 */
+       {
+       .description = "l2_cntxt_id.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "parif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "spif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "svif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "lcos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "rcyc_cnt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "loopback.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "tl3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tuntype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tflags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tids.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tqos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "terr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_ack.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_win.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_tsval.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_txecr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: profile_tcam.icmpv4 */
+       {
+       .description = "wc_key_id",
+       .field_bit_size = 6,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 & 0xff}
+       },
+       {
+       .description = "wc_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff}
+       },
+       {
+       .description = "wc_search_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "em_key_type",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_key_id",
+       .field_bit_size = 6,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_search_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "pl_byp_lkup_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: profile_tcam_cache.icmpv4_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 = "profile_tcam_index",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_key_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "wc_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "wc_key_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "flow_sig_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: wm.icmpv4 */
+       {
+       .description = "ctxt_data",
+       .field_bit_size = 14,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       },
+       {
+       .description = "strength",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       /* class_tid: 1, thor, table: wm.icmpv4_low */
+       {
+       .description = "ctxt_data",
+       .field_bit_size = 14,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       },
+       {
+       .description = "strength",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       /* class_tid: 1, thor, table: fkb_select.icmpv6 */
+       {
+       .description = "l2_cntxt_id.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "parif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "spif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "svif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "lcos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "rcyc_cnt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "loopback.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "tl3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tuntype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tflags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tids.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tqos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "terr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_ack.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_win.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_tsval.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_txecr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: profile_tcam.icmpv6 */
+       {
+       .description = "wc_key_id",
+       .field_bit_size = 6,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 & 0xff}
+       },
+       {
+       .description = "wc_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff}
+       },
+       {
+       .description = "wc_search_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "em_key_type",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_key_id",
+       .field_bit_size = 6,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_search_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "pl_byp_lkup_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: profile_tcam_cache.icmpv6_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 = "profile_tcam_index",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_key_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "wc_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "wc_key_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "flow_sig_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: wm.icmpv6 */
+       {
+       .description = "ctxt_data",
+       .field_bit_size = 14,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       },
+       {
+       .description = "strength",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       /* class_tid: 1, thor, table: wm.icmpv6_low */
+       {
+       .description = "ctxt_data",
+       .field_bit_size = 14,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       },
+       {
+       .description = "strength",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       /* class_tid: 1, thor, table: fkb_select.l3_l4_wm */
+       {
+       .description = "l2_cntxt_id.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "parif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "spif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "svif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "lcos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "rcyc_cnt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "loopback.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "tl3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tuntype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tflags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tids.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tqos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "terr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_ack.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_win.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_tsval.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_txecr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: profile_tcam.l3_l4 */
+       {
+       .description = "wc_key_id",
+       .field_bit_size = 6,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 & 0xff}
+       },
+       {
+       .description = "wc_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+       .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
+       .field_opr1 = {
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+       (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+       .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr2 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff},
+       .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr3 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 & 0xff}
+       },
+       {
+       .description = "wc_search_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "em_key_type",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_key_id",
+       .field_bit_size = 6,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_search_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "pl_byp_lkup_en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: profile_tcam_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 = "profile_tcam_index",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "em_key_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "wc_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "wc_key_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "flow_sig_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 1, thor, table: wm.l4 */
+       {
+       .description = "ctxt_data",
+       .field_bit_size = 14,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       },
+       {
+       .description = "strength",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       /* class_tid: 1, thor, table: wm.l4_low */
+       {
+       .description = "ctxt_data",
+       .field_bit_size = 14,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "data",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       },
+       {
+       .description = "strength",
+       .field_bit_size = 2,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       /* class_tid: 2, thor, table: l2_cntxt_tcam.0 */
+       {
+       .description = "prof_func_id",
+       .field_bit_size = 7,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr1 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_PROF_FUNC_ID_0 & 0xff}
+       },
+       {
+       .description = "ctxt_meta_prof",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "def_ctxt_data",
        .field_bit_size = 16,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR & 0xff}
+       },
+       {
+       .description = "ctxt_opcode",
+       .field_bit_size = 3,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       ULP_THOR_SYM_CTXT_OPCODE_NORMAL_FLOW}
+       },
+       {
+       .description = "l2_cntxt_id",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_PHY_PORT >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_PHY_PORT & 0xff},
+       .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr2 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_1 & 0xff},
+       .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr3 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_L2_CNTXT_ID_0 & 0xff}
+       },
+       {
+       .description = "parif",
+       .field_bit_size = 4,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+       .field_opr1 = {
+       (BNXT_ULP_CF_IDX_PHY_PORT_PARIF >> 8) & 0xff,
+       BNXT_ULP_CF_IDX_PHY_PORT_PARIF & 0xff}
+       },
+       /* class_tid: 2, thor, table: mac_addr_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 = "l2_cntxt_tcam_index",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_cntxt_id",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "src_property_ptr",
+       .field_bit_size = 10,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       /* class_tid: 2, thor, table: fkb_select.l3_l4_wm */
+       {
+       .description = "l2_cntxt_id.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "parif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "spif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "svif.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "lcos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "meta.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "rcyc_cnt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "loopback.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "tl3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_pa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_opt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_tcpts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tl4_err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tuntype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tflags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tids.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxts.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tctxt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "tqos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "terr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_l2type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dmac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_smac.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_dt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_sa.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_nvt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ovt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivd.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivv.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_ivt.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l2_etype.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_sip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_dip_selcmp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ttl.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_prot.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l3_fid.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_qos.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_nonext.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_esp.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_auth.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_dest.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_rthdr.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_hop.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_ieh_1frag.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_df.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l3_l3err.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_l4type.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_src.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_dst.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_opr1 = {
+       1}
+       },
+       {
+       .description = "l4_flags.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_seq.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "l4_ack.en",
+       .field_bit_size = 1,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "vnic_or_vport",
-       .field_bit_size = 11,
+       .description = "l4_win.en",
+       .field_bit_size = 1,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_CF,
-       .field_opr1 = {
-       (BNXT_ULP_CF_IDX_DRV_FUNC_VNIC >> 8) & 0xff,
-       BNXT_ULP_CF_IDX_DRV_FUNC_VNIC & 0xff}
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "use_default",
+       .description = "l4_pa.en",
        .field_bit_size = 1,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "mirror",
-       .field_bit_size = 4,
+       .description = "l4_opt.en",
+       .field_bit_size = 1,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "cond_copy",
+       .description = "l4_tcpts.en",
        .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,
+       .description = "l4_tsval.en",
+       .field_bit_size = 1,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "drop",
+       .description = "l4_txecr.en",
        .field_bit_size = 1,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "hit",
+       .description = "l4_err.en",
        .field_bit_size = 1,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
+       /* class_tid: 2, thor, table: profile_tcam.l3_l4 */
        {
-       .description = "type",
-       .field_bit_size = 3,
+       .description = "wc_key_id",
+       .field_bit_size = 6,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
        .field_opr1 = {
-       1}
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_KEY_ID_0 & 0xff}
        },
-       /* class_tid: 3, thor, table: parif_def_arec_ptr.ing_0 */
        {
-       .description = "act_rec_ptr",
-       .field_bit_size = 32,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .description = "wc_profile_id",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+       .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT,
        .field_opr1 = {
-       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
-       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+       ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+       (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+       .field_src2 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr2 = {
+               (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_0 & 0xff},
+       .field_src3 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_opr3 = {
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_WC_PROFILE_ID_1 & 0xff}
        },
-       /* class_tid: 3, thor, table: parif_def_err_arec_ptr.ing_0 */
        {
-       .description = "act_rec_ptr",
-       .field_bit_size = 32,
+       .description = "wc_search_en",
+       .field_bit_size = 1,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
        .field_opr1 = {
-       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
-       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       1}
        },
-       /* class_tid: 3, thor, table: int_full_act_record.egr_vfr */
        {
-       .description = "sp_rec_ptr",
-       .field_bit_size = 16,
+       .description = "em_key_type",
+       .field_bit_size = 2,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "encap_ptr",
-       .field_bit_size = 16,
+       .description = "em_key_id",
+       .field_bit_size = 6,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "mod_rec_ptr",
-       .field_bit_size = 16,
+       .description = "em_profile_id",
+       .field_bit_size = 8,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "rsvd1",
-       .field_bit_size = 16,
+       .description = "em_search_en",
+       .field_bit_size = 1,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "rsvd0",
-       .field_bit_size = 8,
+       .description = "pl_byp_lkup_en",
+       .field_bit_size = 1,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
+       /* class_tid: 2, thor, table: profile_tcam_cache.wr */
        {
-       .description = "decap_func",
-       .field_bit_size = 5,
+       .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 = "meter",
+       .description = "profile_tcam_index",
        .field_bit_size = 10,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "stats_op",
-       .field_bit_size = 1,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-       },
-       {
-       .description = "stats_ptr",
-       .field_bit_size = 16,
+       .description = "em_profile_id",
+       .field_bit_size = 8,
        .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_CF,
-       .field_opr1 = {
-       (BNXT_ULP_CF_IDX_PHY_PORT_VPORT >> 8) & 0xff,
-       BNXT_ULP_CF_IDX_PHY_PORT_VPORT & 0xff}
-       },
-       {
-       .description = "use_default",
-       .field_bit_size = 1,
+       .description = "em_key_id",
+       .field_bit_size = 8,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "mirror",
-       .field_bit_size = 4,
+       .description = "wc_profile_id",
+       .field_bit_size = 8,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "cond_copy",
-       .field_bit_size = 1,
+       .description = "wc_key_id",
+       .field_bit_size = 8,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "vlan_del_rpt",
-       .field_bit_size = 2,
+       .description = "flow_sig_id",
+       .field_bit_size = 8,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
+       /* class_tid: 2, thor, table: wm.l4 */
        {
-       .description = "drop",
-       .field_bit_size = 1,
+       .description = "ctxt_data",
+       .field_bit_size = 14,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "hit",
-       .field_bit_size = 1,
+       .description = "meta_prof",
+       .field_bit_size = 3,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "type",
+       .description = "opcode",
        .field_bit_size = 3,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-       .field_opr1 = {
-       1}
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
-       /* class_tid: 3, thor, table: parif_def_arec_ptr.egr_0 */
        {
-       .description = "act_rec_ptr",
-       .field_bit_size = 32,
+       .description = "data",
+       .field_bit_size = 16,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_RF,
        .field_opr1 = {
        (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
        BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
        },
-       /* class_tid: 3, thor, table: parif_def_err_arec_ptr.egr_0 */
        {
-       .description = "act_rec_ptr",
-       .field_bit_size = 32,
+       .description = "strength",
+       .field_bit_size = 2,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
        .field_opr1 = {
-       (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
-       BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+       1}
        },
-       /* class_tid: 4, thor, table: int_full_act_record.loopback */
+       /* class_tid: 4, thor, table: int_full_act_record.0 */
        {
        .description = "sp_rec_ptr",
        .field_bit_size = 16,
@@ -611,10 +28844,10 @@ struct bnxt_ulp_mapper_field_info ulp_thor_class_result_field_list[] = {
        .description = "vnic_or_vport",
        .field_bit_size = 11,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_src1 = BNXT_ULP_FIELD_SRC_PORT_TABLE,
        .field_opr1 = {
-       (ULP_THOR_SYM_LOOPBACK_PORT >> 8) & 0xff,
-       ULP_THOR_SYM_LOOPBACK_PORT & 0xff}
+               (BNXT_ULP_PORT_TABLE_DRV_FUNC_PARENT_VNIC >> 8) & 0xff,
+               BNXT_ULP_PORT_TABLE_DRV_FUNC_PARENT_VNIC & 0xff}
        },
        {
        .description = "use_default",
@@ -660,27 +28893,44 @@ struct bnxt_ulp_mapper_field_info ulp_thor_class_result_field_list[] = {
        .field_opr1 = {
        1}
        },
-       /* class_tid: 4, thor, table: parif_def_arec_ptr.vf_egr */
+       /* class_tid: 4, thor, table: port_table.wr_0 */
        {
-       .description = "act_rec_ptr",
+       .description = "rid",
        .field_bit_size = 32,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "drv_func.mac",
+       .field_bit_size = 48,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "drv_func.parent.mac",
+       .field_bit_size = 48,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
        .field_opr1 = {
-       (BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR >> 8) & 0xff,
-       BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR & 0xff}
+       (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
        },
-       /* class_tid: 4, thor, table: parif_def_err_arec_ptr.vf_egr */
        {
-       .description = "act_rec_ptr",
-       .field_bit_size = 32,
+       .description = "phy_port",
+       .field_bit_size = 8,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       },
+       {
+       .description = "default_arec_ptr",
+       .field_bit_size = 16,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
        .field_opr1 = {
-       (BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR >> 8) & 0xff,
-       BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR & 0xff}
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_0 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_0 & 0xff}
        },
-       /* class_tid: 4, thor, table: int_full_act_record.vf_ing */
+       /* class_tid: 4, thor, table: int_full_act_record.1 */
        {
        .description = "sp_rec_ptr",
        .field_bit_size = 16,
@@ -739,10 +28989,10 @@ struct bnxt_ulp_mapper_field_info ulp_thor_class_result_field_list[] = {
        .description = "vnic_or_vport",
        .field_bit_size = 11,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+       .field_src1 = BNXT_ULP_FIELD_SRC_PORT_TABLE,
        .field_opr1 = {
-       (BNXT_ULP_CF_IDX_DRV_FUNC_VNIC >> 8) & 0xff,
-       BNXT_ULP_CF_IDX_DRV_FUNC_VNIC & 0xff}
+               (BNXT_ULP_PORT_TABLE_DRV_FUNC_PARENT_VNIC >> 8) & 0xff,
+               BNXT_ULP_PORT_TABLE_DRV_FUNC_PARENT_VNIC & 0xff}
        },
        {
        .description = "use_default",
@@ -788,202 +29038,148 @@ struct bnxt_ulp_mapper_field_info ulp_thor_class_result_field_list[] = {
        .field_opr1 = {
        1}
        },
-       /* class_tid: 4, thor, table: vtag_encap_record.vfr_egr0 */
-       {
-       .description = "ecv_tun_type",
-       .field_bit_size = 3,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-       },
-       {
-       .description = "ecv_l4_type",
-       .field_bit_size = 3,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-       },
+       /* class_tid: 4, thor, table: port_table.wr_1 */
        {
-       .description = "ecv_l3_type",
-       .field_bit_size = 3,
+       .description = "rid",
+       .field_bit_size = 32,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "ecv_l2_en",
-       .field_bit_size = 1,
+       .description = "drv_func.mac",
+       .field_bit_size = 48,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
        {
-       .description = "ecv_vtag_type",
-       .field_bit_size = 4,
+       .description = "drv_func.parent.mac",
+       .field_bit_size = 48,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
        .field_opr1 = {
-       ULP_THOR_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
-       },
-       {
-       .description = "rsrvd",
-       .field_bit_size = 1,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       (BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC & 0xff}
        },
        {
-       .description = "ecv_valid",
-       .field_bit_size = 1,
+       .description = "phy_port",
+       .field_bit_size = 8,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
        .field_opr1 = {
        1}
        },
        {
-       .description = "vtag_tpid",
+       .description = "default_arec_ptr",
        .field_bit_size = 16,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-       .field_opr1 = {
-               0x81,
-               0x00}
-       },
-       {
-       .description = "vtag_vid",
-       .field_bit_size = 12,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_CF,
+       .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
        .field_opr1 = {
-       (BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
-       BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff}
-       },
-       {
-       .description = "vtag_de",
-       .field_bit_size = 1,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       (BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_1 >> 8) & 0xff,
+       BNXT_ULP_GLB_RF_IDX_APP_GLB_AREC_PTR_1 & 0xff}
        },
+       /* class_tid: 4, thor, table: parif_def_arec_ptr.ing_0 */
        {
-       .description = "vtag_pcp",
-       .field_bit_size = 3,
+       .description = "act_rec_ptr",
+       .field_bit_size = 32,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
        .field_opr1 = {
-       (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
-       BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
-       },
-       /* class_tid: 4, thor, table: int_full_act_record.vfr_egr0 */
-       {
-       .description = "sp_rec_ptr",
-       .field_bit_size = 16,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       (BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR & 0xff}
        },
+       /* class_tid: 4, thor, table: parif_def_err_arec_ptr.ing_0 */
        {
-       .description = "encap_ptr",
-       .field_bit_size = 16,
+       .description = "act_rec_ptr",
+       .field_bit_size = 32,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_RF,
        .field_opr1 = {
-       (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
-       BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
-       },
-       {
-       .description = "mod_rec_ptr",
-       .field_bit_size = 16,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-       },
-       {
-       .description = "rsvd1",
-       .field_bit_size = 16,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-       },
-       {
-       .description = "rsvd0",
-       .field_bit_size = 8,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-       },
-       {
-       .description = "decap_func",
-       .field_bit_size = 5,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-       },
+       (BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR & 0xff}
+       }
+};
+
+struct bnxt_ulp_mapper_ident_info ulp_thor_class_ident_list[] = {
+       /* class_tid: 1, thor, table: port_table.rd */
        {
-       .description = "meter",
-       .field_bit_size = 10,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .description = "default_arec_ptr",
+       .regfile_idx = BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 136
        },
        {
-       .description = "stats_op",
-       .field_bit_size = 1,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .description = "drv_func.parent.mac",
+       .regfile_idx = BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC,
+       .ident_bit_size = 48,
+       .ident_bit_pos = 80
        },
        {
-       .description = "stats_ptr",
-       .field_bit_size = 16,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .description = "phy_port",
+       .regfile_idx = BNXT_ULP_RF_IDX_PHY_PORT,
+       .ident_bit_size = 8,
+       .ident_bit_pos = 128
        },
+       /* class_tid: 1, thor, table: l2_cntxt_tcam.gre */
        {
-       .description = "vnic_or_vport",
-       .field_bit_size = 11,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-       .field_opr1 = {
-       (ULP_THOR_SYM_LOOPBACK_PORT >> 8) & 0xff,
-       ULP_THOR_SYM_LOOPBACK_PORT & 0xff}
+       .description = "l2_cntxt_id",
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
+       .ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH,
+       .regfile_idx = BNXT_ULP_RF_IDX_L2_CNTXT_ID_0,
+       .ident_bit_size = 10,
+       .ident_bit_pos = 29
        },
+       /* class_tid: 1, thor, table: profile_tcam.icmpv4 */
        {
-       .description = "use_default",
-       .field_bit_size = 1,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .description = "em_profile_id",
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
+       .ident_type = TF_IDENT_TYPE_EM_PROF,
+       .regfile_idx = BNXT_ULP_RF_IDX_EM_PROFILE_ID_0,
+       .ident_bit_size = 8,
+       .ident_bit_pos = 23
        },
+       /* class_tid: 1, thor, table: profile_tcam.icmpv6 */
        {
-       .description = "mirror",
-       .field_bit_size = 4,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .description = "em_profile_id",
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
+       .ident_type = TF_IDENT_TYPE_EM_PROF,
+       .regfile_idx = BNXT_ULP_RF_IDX_EM_PROFILE_ID_0,
+       .ident_bit_size = 8,
+       .ident_bit_pos = 23
        },
+       /* class_tid: 2, thor, table: port_table.rd */
        {
-       .description = "cond_copy",
-       .field_bit_size = 1,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .description = "default_arec_ptr",
+       .regfile_idx = BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 136
        },
        {
-       .description = "vlan_del_rpt",
-       .field_bit_size = 2,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .description = "drv_func.parent.mac",
+       .regfile_idx = BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC,
+       .ident_bit_size = 48,
+       .ident_bit_pos = 80
        },
        {
-       .description = "drop",
-       .field_bit_size = 1,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .description = "phy_port",
+       .regfile_idx = BNXT_ULP_RF_IDX_PHY_PORT,
+       .ident_bit_size = 8,
+       .ident_bit_pos = 128
        },
+       /* class_tid: 2, thor, table: l2_cntxt_tcam.0 */
        {
-       .description = "hit",
-       .field_bit_size = 1,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .description = "l2_cntxt_id",
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
+       .ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH,
+       .regfile_idx = BNXT_ULP_RF_IDX_L2_CNTXT_ID_0,
+       .ident_bit_size = 10,
+       .ident_bit_pos = 29
        },
+       /* class_tid: 4, thor, table: port_table.rd */
        {
-       .description = "type",
-       .field_bit_size = 3,
-       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-       .field_opr1 = {
-               1}
+       .description = "default_arec_ptr",
+       .regfile_idx = BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 136
        }
 };
 
-struct
-bnxt_ulp_mapper_key_info ulp_thor_class_key_info_list[] = {
-};
-
-struct bnxt_ulp_mapper_ident_info ulp_thor_class_ident_list[] = {
-};
index ca385b6..fa3c350 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Sun Mar 21 13:04:51 2021 */
+/* date: Wed Apr 14 09:56:27 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -94,8 +94,8 @@ struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_class_tbl_list[] = {
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
        .key_start_idx = 1,
-       .blob_key_bit_size = 70,
-       .key_bit_size = 70,
+       .blob_key_bit_size = 73,
+       .key_bit_size = 73,
        .key_num_fields = 5,
        .ident_start_idx = 1,
        .ident_nums = 1
@@ -156,8 +156,8 @@ struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_class_tbl_list[] = {
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
        .key_start_idx = 19,
-       .blob_key_bit_size = 70,
-       .key_bit_size = 70,
+       .blob_key_bit_size = 73,
+       .key_bit_size = 73,
        .key_num_fields = 5,
        .result_start_idx = 13,
        .result_bit_size = 62,
@@ -209,13 +209,13 @@ struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_class_tbl_list[] = {
                .cond_start_idx = 4,
                .cond_nums = 1 },
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .cc_upd_info = {
-               .cc_opc = BNXT_ULP_CC_UPD_OPC_EQ,
-               .cc_src1 = BNXT_ULP_CC_UPD_SRC_REGFILE,
-               .cc_opr1 = BNXT_ULP_RF_IDX_FLOW_SIG_ID,
-               .cc_src2 = BNXT_ULP_CC_UPD_SRC_REGFILE,
-               .cc_opr2 = BNXT_ULP_RF_IDX_CF_FLOW_SIG_ID,
-               .cc_dst_opr = BNXT_ULP_RF_IDX_CC },
+       .func_info = {
+               .func_opc = BNXT_ULP_FUNC_OPC_EQ,
+               .func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
+               .func_opr1 = BNXT_ULP_RF_IDX_FLOW_SIG_ID,
+               .func_src2 = BNXT_ULP_FUNC_SRC_COMP_FIELD,
+               .func_opr2 = BNXT_ULP_CF_IDX_FLOW_SIG_ID,
+               .func_dst_opr = BNXT_ULP_RF_IDX_CC },
        .byte_order = BNXT_ULP_BYTE_ORDER_LE
        },
        { /* class_tid: 1, wh_plus, table: profile_tcam.ipv4 */
@@ -320,7 +320,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_class_tbl_list[] = {
        .key_bit_size = 14,
        .key_num_fields = 3,
        .result_start_idx = 68,
-       .result_bit_size = 74,
+       .result_bit_size = 90,
        .result_num_fields = 5
        },
        { /* class_tid: 1, wh_plus, table: em.ipv4 */
@@ -493,8 +493,8 @@ struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_class_tbl_list[] = {
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
        .key_start_idx = 224,
-       .blob_key_bit_size = 70,
-       .key_bit_size = 70,
+       .blob_key_bit_size = 73,
+       .key_bit_size = 73,
        .key_num_fields = 5,
        .ident_start_idx = 10,
        .ident_nums = 1
@@ -555,8 +555,8 @@ struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_class_tbl_list[] = {
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .byte_order = BNXT_ULP_BYTE_ORDER_LE,
        .key_start_idx = 242,
-       .blob_key_bit_size = 70,
-       .key_bit_size = 70,
+       .blob_key_bit_size = 73,
+       .key_bit_size = 73,
        .key_num_fields = 5,
        .result_start_idx = 140,
        .result_bit_size = 62,
@@ -607,13 +607,13 @@ struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_class_tbl_list[] = {
                .cond_start_idx = 28,
                .cond_nums = 1 },
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .cc_upd_info = {
-               .cc_opc = BNXT_ULP_CC_UPD_OPC_EQ,
-               .cc_src1 = BNXT_ULP_CC_UPD_SRC_REGFILE,
-               .cc_opr1 = BNXT_ULP_RF_IDX_FLOW_SIG_ID,
-               .cc_src2 = BNXT_ULP_CC_UPD_SRC_COMP_FIELD,
-               .cc_opr2 = BNXT_ULP_CF_IDX_FLOW_SIG_ID,
-               .cc_dst_opr = BNXT_ULP_RF_IDX_CC },
+       .func_info = {
+               .func_opc = BNXT_ULP_FUNC_OPC_EQ,
+               .func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
+               .func_opr1 = BNXT_ULP_RF_IDX_FLOW_SIG_ID,
+               .func_src2 = BNXT_ULP_FUNC_SRC_COMP_FIELD,
+               .func_opr2 = BNXT_ULP_CF_IDX_FLOW_SIG_ID,
+               .func_dst_opr = BNXT_ULP_RF_IDX_CC },
        .byte_order = BNXT_ULP_BYTE_ORDER_LE
        },
        { /* class_tid: 2, wh_plus, table: profile_tcam.ipv4 */
@@ -690,7 +690,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_class_tbl_list[] = {
        .key_bit_size = 14,
        .key_num_fields = 3,
        .result_start_idx = 178,
-       .result_bit_size = 74,
+       .result_bit_size = 90,
        .result_num_fields = 5
        },
        { /* class_tid: 2, wh_plus, table: em.ipv4 */
@@ -1883,7 +1883,7 @@ struct bnxt_ulp_mapper_key_info ulp_wh_plus_class_key_info_list[] = {
        {
        .field_info_mask = {
                .description = "tun_hdr",
-               .field_bit_size = 1,
+               .field_bit_size = 4,
                .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
                .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
                .field_opr1 = {
@@ -1891,7 +1891,7 @@ struct bnxt_ulp_mapper_key_info ulp_wh_plus_class_key_info_list[] = {
                },
        .field_info_spec = {
                .description = "tun_hdr",
-               .field_bit_size = 1,
+               .field_bit_size = 4,
                .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
                .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
                .field_opr1 = {
@@ -2239,7 +2239,7 @@ struct bnxt_ulp_mapper_key_info ulp_wh_plus_class_key_info_list[] = {
        {
        .field_info_mask = {
                .description = "tun_hdr",
-               .field_bit_size = 1,
+               .field_bit_size = 4,
                .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
                .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
                .field_opr1 = {
@@ -2247,7 +2247,7 @@ struct bnxt_ulp_mapper_key_info ulp_wh_plus_class_key_info_list[] = {
                },
        .field_info_spec = {
                .description = "tun_hdr",
-               .field_bit_size = 1,
+               .field_bit_size = 4,
                .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
                .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
                .field_opr1 = {
@@ -5714,7 +5714,7 @@ struct bnxt_ulp_mapper_key_info ulp_wh_plus_class_key_info_list[] = {
        {
        .field_info_mask = {
                .description = "tun_hdr",
-               .field_bit_size = 1,
+               .field_bit_size = 4,
                .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
                .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
                .field_opr1 = {
@@ -5722,7 +5722,7 @@ struct bnxt_ulp_mapper_key_info ulp_wh_plus_class_key_info_list[] = {
                },
        .field_info_spec = {
                .description = "tun_hdr",
-               .field_bit_size = 1,
+               .field_bit_size = 4,
                .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
                .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
                .field_opr1 = {
@@ -6070,7 +6070,7 @@ struct bnxt_ulp_mapper_key_info ulp_wh_plus_class_key_info_list[] = {
        {
        .field_info_mask = {
                .description = "tun_hdr",
-               .field_bit_size = 1,
+               .field_bit_size = 4,
                .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
                .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
                .field_opr1 = {
@@ -6078,7 +6078,7 @@ struct bnxt_ulp_mapper_key_info ulp_wh_plus_class_key_info_list[] = {
                },
        .field_info_spec = {
                .description = "tun_hdr",
-               .field_bit_size = 1,
+               .field_bit_size = 4,
                .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
                .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
                .field_opr1 = {
@@ -10076,7 +10076,7 @@ struct bnxt_ulp_mapper_key_info ulp_wh_plus_class_key_info_list[] = {
                1}
                }
        },
-       /* class_tid: 4, table: l2_cntxt_tcam_bypass.vfr_stagged_ing0 */
+       /* class_tid: 4,  table: l2_cntxt_tcam_bypass.vfr_stagged_ing0 */
        {
        .field_info_mask = {
                .description = "l2_ivlan_vid",
@@ -10852,7 +10852,7 @@ struct bnxt_ulp_mapper_field_info ulp_wh_plus_class_result_field_list[] = {
        },
        {
        .description = "flow_sig_id",
-       .field_bit_size = 16,
+       .field_bit_size = 32,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_CF,
        .field_opr1 = {
@@ -11711,7 +11711,7 @@ struct bnxt_ulp_mapper_field_info ulp_wh_plus_class_result_field_list[] = {
        },
        {
        .description = "flow_sig_id",
-       .field_bit_size = 16,
+       .field_bit_size = 32,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_CF,
        .field_opr1 = {
@@ -14176,7 +14176,7 @@ struct bnxt_ulp_mapper_ident_info ulp_wh_plus_class_ident_list[] = {
        {
        .description = "flow_sig_id",
        .regfile_idx = BNXT_ULP_RF_IDX_FLOW_SIG_ID,
-       .ident_bit_size = 16,
+       .ident_bit_size = 32,
        .ident_bit_pos = 58
        },
        {
@@ -14245,7 +14245,7 @@ struct bnxt_ulp_mapper_ident_info ulp_wh_plus_class_ident_list[] = {
        {
        .description = "flow_sig_id",
        .regfile_idx = BNXT_ULP_RF_IDX_FLOW_SIG_ID,
-       .ident_bit_size = 16,
+       .ident_bit_size = 32,
        .ident_bit_pos = 58
        },
        {
index 904710c..0cbac66 100644 (file)
@@ -70,7 +70,7 @@ struct ulp_rte_parser_params {
        struct ulp_rte_field_bitmap     fld_bitmap;
        struct ulp_rte_field_bitmap     fld_s_bitmap;
        struct ulp_rte_hdr_field        hdr_field[BNXT_ULP_PROTO_HDR_MAX];
-       uint32_t                        comp_fld[BNXT_ULP_CF_IDX_LAST];
+       uint64_t                        comp_fld[BNXT_ULP_CF_IDX_LAST];
        uint32_t                        field_idx;
        struct ulp_rte_act_bitmap       act_bitmap;
        struct ulp_rte_act_prop         act_prop;
@@ -176,13 +176,13 @@ struct bnxt_ulp_mapper_cond_list_info {
        int32_t cond_false_goto;
 };
 
-struct bnxt_ulp_mapper_cc_upd_info {
-       enum bnxt_ulp_cc_upd_opc        cc_opc;
-       enum bnxt_ulp_cc_upd_src        cc_src1;
-       enum bnxt_ulp_cc_upd_src        cc_src2;
-       uint16_t                        cc_opr1;
-       uint16_t                        cc_opr2;
-       uint16_t                        cc_dst_opr;
+struct bnxt_ulp_mapper_func_info {
+       enum bnxt_ulp_func_opc          func_opc;
+       enum bnxt_ulp_func_src          func_src1;
+       enum bnxt_ulp_func_src          func_src2;
+       uint16_t                        func_opr1;
+       uint16_t                        func_opr2;
+       uint16_t                        func_dst_opr;
 };
 
 struct bnxt_ulp_template_device_tbls {
@@ -244,7 +244,7 @@ struct bnxt_ulp_mapper_tbl_info {
        uint32_t                        resource_type; /* TF_ enum type */
        enum bnxt_ulp_resource_sub_type resource_sub_type;
        struct bnxt_ulp_mapper_cond_list_info execute_info;
-       struct bnxt_ulp_mapper_cc_upd_info cc_upd_info;
+       struct bnxt_ulp_mapper_func_info func_info;
        enum bnxt_ulp_cond_opc cond_opcode;
        uint32_t cond_operand;
        uint8_t                         direction;
index 1649e15..bafb539 100644 (file)
@@ -62,7 +62,7 @@ ulp_regfile_read(struct ulp_regfile *regfile,
  * data [in] The value is written into this variable.  It is going to be in the
  * same byte order as it was written.
  *
- * size [in] The size in bytes of the value beingritten into this
+ * size [in] The size in bytes of the value being written into this
  * variable.
  *
  * returns 0 on success
@@ -295,7 +295,7 @@ ulp_blob_push(struct ulp_blob *blob,
                                     datalen,
                                     data);
        if (!rc) {
-               BNXT_TF_DBG(ERR, "Failed ro write blob\n");
+               BNXT_TF_DBG(ERR, "Failed to write blob\n");
                return 0;
        }
        blob->write_idx += datalen;
@@ -355,7 +355,7 @@ ulp_blob_insert(struct ulp_blob *blob, uint32_t offset,
                                     datalen,
                                     data);
        if (!rc) {
-               BNXT_TF_DBG(ERR, "Failed ro write blob\n");
+               BNXT_TF_DBG(ERR, "Failed to write blob\n");
                return 0;
        }
        /* copy the previously stored data */
@@ -409,7 +409,7 @@ ulp_blob_push_64(struct ulp_blob *blob,
  *
  * data [in] 32-bit value to be added to the blob.
  *
- * datalen [in] The number of bits to be added ot the blob.
+ * datalen [in] The number of bits to be added to the blob.
  *
  * The offset of the data is updated after each push of data.
  * NULL returned on error, pointer pushed value otherwise.
index 209c8fa..e1b0e77 100644 (file)
 
 /* Macros to read the computed fields */
 #define ULP_COMP_FLD_IDX_RD(params, idx) \
-       rte_be_to_cpu_32((params)->comp_fld[(idx)])
+       rte_be_to_cpu_64((params)->comp_fld[(idx)])
 
 #define ULP_COMP_FLD_IDX_WR(params, idx, val)  \
-       ((params)->comp_fld[(idx)] = rte_cpu_to_be_32((val)))
+       ((params)->comp_fld[(idx)] = rte_cpu_to_be_64((uint64_t)(val)))
 /*
  * Making the blob statically sized to 128 bytes for now.
  * The blob must be initialized with ulp_blob_init prior to using.