bf5cd647d6a04a1ba9a22ed08b2f6382d97c0f68
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_template_db_wh_plus_class.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2021 Broadcom
3  * All rights reserved.
4  */
5
6 /* date: Wed Dec  2 12:05:11 2020 */
7
8 #include "ulp_template_db_enum.h"
9 #include "ulp_template_db_field.h"
10 #include "ulp_template_struct.h"
11 #include "ulp_template_db_tbl.h"
12
13 /* Mapper templates for header class list */
14 struct bnxt_ulp_mapper_tmpl_info ulp_wh_plus_class_tmpl_list[] = {
15         /* class_tid: 1, wh_plus, ingress */
16         [1] = {
17         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
18         .num_tbls = 9,
19         .start_tbl_idx = 0,
20         .reject_info = {
21                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
22                 .cond_start_idx = 0,
23                 .cond_nums = 0 }
24         },
25         /* class_tid: 2, wh_plus, ingress */
26         [2] = {
27         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
28         .num_tbls = 6,
29         .start_tbl_idx = 9,
30         .reject_info = {
31                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
32                 .cond_start_idx = 4,
33                 .cond_nums = 0 }
34         },
35         /* class_tid: 3, wh_plus, egress */
36         [3] = {
37         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
38         .num_tbls = 8,
39         .start_tbl_idx = 15,
40         .reject_info = {
41                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
42                 .cond_start_idx = 4,
43                 .cond_nums = 0 }
44         },
45         /* class_tid: 4, wh_plus, egress */
46         [4] = {
47         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
48         .num_tbls = 7,
49         .start_tbl_idx = 23,
50         .reject_info = {
51                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
52                 .cond_start_idx = 10,
53                 .cond_nums = 0 }
54         },
55         /* class_tid: 5, wh_plus, egress */
56         [5] = {
57         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
58         .num_tbls = 7,
59         .start_tbl_idx = 30,
60         .reject_info = {
61                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
62                 .cond_start_idx = 10,
63                 .cond_nums = 0 }
64         },
65         /* class_tid: 6, wh_plus, egress */
66         [6] = {
67         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
68         .num_tbls = 1,
69         .start_tbl_idx = 37,
70         .reject_info = {
71                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
72                 .cond_start_idx = 10,
73                 .cond_nums = 0 }
74         }
75 };
76
77 struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_class_tbl_list[] = {
78         { /* class_tid: 1, wh_plus, table: l2_cntxt_tcam_cache.rd */
79         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
80         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
81         .resource_sub_type =
82                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
83         .direction = TF_DIR_RX,
84         .execute_info = {
85                 .cond_goto = 2,
86                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
87                 .cond_start_idx = 0,
88                 .cond_nums = 1 },
89         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
90         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
91         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
92         .key_start_idx = 0,
93         .blob_key_bit_size = 8,
94         .key_bit_size = 8,
95         .key_num_fields = 1,
96         .ident_start_idx = 0,
97         .ident_nums = 1
98         },
99         { /* class_tid: 1, wh_plus, table: l2_cntxt_tcam.0 */
100         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
101         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
102         .direction = TF_DIR_RX,
103         .execute_info = {
104                 .cond_goto = 1,
105                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
106                 .cond_start_idx = 1,
107                 .cond_nums = 0 },
108         .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_SRCH_ALLOC_WR_REGFILE,
109         .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
110         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
111         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
112         .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
113         .pri_operand = 0,
114         .key_start_idx = 1,
115         .blob_key_bit_size = 167,
116         .key_bit_size = 167,
117         .key_num_fields = 13,
118         .result_start_idx = 0,
119         .result_bit_size = 64,
120         .result_num_fields = 13,
121         .encap_num_fields = 0,
122         .ident_start_idx = 1,
123         .ident_nums = 1
124         },
125         { /* class_tid: 1, wh_plus, table: profile_tcam_cache.rd */
126         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
127         .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
128         .resource_sub_type =
129                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM,
130         .direction = TF_DIR_RX,
131         .execute_info = {
132                 .cond_goto = 1,
133                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
134                 .cond_start_idx = 1,
135                 .cond_nums = 0 },
136         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
137         .accept_opcode = BNXT_ULP_ACCEPT_OPC_FLOW_SIG_ID_MATCH,
138         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
139         .key_start_idx = 14,
140         .blob_key_bit_size = 14,
141         .key_bit_size = 14,
142         .key_num_fields = 3,
143         .ident_start_idx = 2,
144         .ident_nums = 3
145         },
146         { /* class_tid: 1, wh_plus, table: branch.0 */
147         .resource_func = BNXT_ULP_RESOURCE_FUNC_BRANCH_TABLE,
148         .direction = TF_DIR_RX,
149         .execute_info = {
150                 .cond_goto = 3,
151                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
152                 .cond_start_idx = 1,
153                 .cond_nums = 1 },
154         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
155         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH
156         },
157         { /* class_tid: 1, wh_plus, table: profile_tcam.0 */
158         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
159         .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
160         .direction = TF_DIR_RX,
161         .execute_info = {
162                 .cond_goto = 1,
163                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
164                 .cond_start_idx = 2,
165                 .cond_nums = 0 },
166         .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
167         .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
168         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
169         .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_PUSH_REGFILE,
170         .fdb_operand = BNXT_ULP_RF_IDX_RID,
171         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
172         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
173         .key_start_idx = 17,
174         .blob_key_bit_size = 81,
175         .key_bit_size = 81,
176         .key_num_fields = 43,
177         .result_start_idx = 13,
178         .result_bit_size = 38,
179         .result_num_fields = 8,
180         .encap_num_fields = 0,
181         .ident_start_idx = 5,
182         .ident_nums = 1
183         },
184         { /* class_tid: 1, wh_plus, table: profile_tcam_cache.wr */
185         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
186         .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
187         .resource_sub_type =
188                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_PROFILE_TCAM,
189         .direction = TF_DIR_RX,
190         .execute_info = {
191                 .cond_goto = 1,
192                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
193                 .cond_start_idx = 2,
194                 .cond_nums = 0 },
195         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
196         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
197         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
198         .key_start_idx = 60,
199         .blob_key_bit_size = 14,
200         .key_bit_size = 14,
201         .key_num_fields = 3,
202         .result_start_idx = 21,
203         .result_bit_size = 66,
204         .result_num_fields = 5,
205         .encap_num_fields = 0
206         },
207         { /* class_tid: 1, wh_plus, table: em.int_0 */
208         .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
209         .resource_type = TF_MEM_INTERNAL,
210         .direction = TF_DIR_RX,
211         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
212         .execute_info = {
213                 .cond_goto = 1,
214                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
215                 .cond_start_idx = 2,
216                 .cond_nums = 1 },
217         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
218         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
219         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_PUSH_IF_MARK_ACTION,
220         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
221         .key_start_idx = 63,
222         .blob_key_bit_size = 176,
223         .key_bit_size = 176,
224         .key_num_fields = 10,
225         .result_start_idx = 26,
226         .result_bit_size = 64,
227         .result_num_fields = 9,
228         .encap_num_fields = 0
229         },
230         { /* class_tid: 1, wh_plus, table: eem.ext_0 */
231         .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
232         .resource_type = TF_MEM_EXTERNAL,
233         .direction = TF_DIR_RX,
234         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
235         .execute_info = {
236                 .cond_goto = 1,
237                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
238                 .cond_start_idx = 3,
239                 .cond_nums = 1 },
240         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
241         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
242         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_PUSH_IF_MARK_ACTION,
243         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
244         .key_start_idx = 73,
245         .blob_key_bit_size = 448,
246         .key_bit_size = 448,
247         .key_num_fields = 10,
248         .result_start_idx = 35,
249         .result_bit_size = 64,
250         .result_num_fields = 9,
251         .encap_num_fields = 0
252         },
253         { /* class_tid: 1, wh_plus, table: last */
254         .resource_func = BNXT_ULP_RESOURCE_FUNC_BRANCH_TABLE,
255         .direction = TF_DIR_RX,
256         .execute_info = {
257                 .cond_goto = 0,
258                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
259                 .cond_start_idx = 4,
260                 .cond_nums = 0 },
261         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
262         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH
263         },
264         { /* class_tid: 2, wh_plus, table: int_full_act_record.0 */
265         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
266         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
267         .resource_sub_type =
268                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
269         .direction = TF_DIR_RX,
270         .execute_info = {
271                 .cond_goto = 1,
272                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
273                 .cond_start_idx = 4,
274                 .cond_nums = 0 },
275         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
276         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
277         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
278         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
279         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
280         .result_start_idx = 44,
281         .result_bit_size = 128,
282         .result_num_fields = 26,
283         .encap_num_fields = 0
284         },
285         { /* class_tid: 2, wh_plus, table: l2_cntxt_tcam.0 */
286         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
287         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
288         .direction = TF_DIR_RX,
289         .execute_info = {
290                 .cond_goto = 1,
291                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
292                 .cond_start_idx = 4,
293                 .cond_nums = 0 },
294         .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
295         .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
296         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
297         .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_PUSH_REGFILE,
298         .fdb_operand = BNXT_ULP_RF_IDX_RID,
299         .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
300         .pri_operand = 0,
301         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
302         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
303         .key_start_idx = 83,
304         .blob_key_bit_size = 167,
305         .key_bit_size = 167,
306         .key_num_fields = 13,
307         .result_start_idx = 70,
308         .result_bit_size = 64,
309         .result_num_fields = 13,
310         .encap_num_fields = 0,
311         .ident_start_idx = 6,
312         .ident_nums = 1
313         },
314         { /* class_tid: 2, wh_plus, table: l2_cntxt_tcam_cache.wr */
315         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
316         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
317         .resource_sub_type =
318                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
319         .direction = TF_DIR_RX,
320         .execute_info = {
321                 .cond_goto = 1,
322                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
323                 .cond_start_idx = 4,
324                 .cond_nums = 0 },
325         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
326         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
327         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
328         .key_start_idx = 96,
329         .blob_key_bit_size = 8,
330         .key_bit_size = 8,
331         .key_num_fields = 1,
332         .result_start_idx = 83,
333         .result_bit_size = 62,
334         .result_num_fields = 4,
335         .encap_num_fields = 0
336         },
337         { /* class_tid: 2, wh_plus, table: parif_def_lkup_arec_ptr.0 */
338         .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
339         .resource_type = TF_IF_TBL_TYPE_LKUP_PARIF_DFLT_ACT_REC_PTR,
340         .direction = TF_DIR_RX,
341         .execute_info = {
342                 .cond_goto = 1,
343                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
344                 .cond_start_idx = 4,
345                 .cond_nums = 0 },
346         .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
347         .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
348         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
349         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
350         .result_start_idx = 87,
351         .result_bit_size = 32,
352         .result_num_fields = 1,
353         .encap_num_fields = 0
354         },
355         { /* class_tid: 2, wh_plus, table: parif_def_arec_ptr.0 */
356         .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
357         .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_DFLT_ACT_REC_PTR,
358         .direction = TF_DIR_RX,
359         .execute_info = {
360                 .cond_goto = 1,
361                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
362                 .cond_start_idx = 4,
363                 .cond_nums = 0 },
364         .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
365         .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
366         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
367         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
368         .result_start_idx = 88,
369         .result_bit_size = 32,
370         .result_num_fields = 1,
371         .encap_num_fields = 0
372         },
373         { /* class_tid: 2, wh_plus, table: parif_def_err_arec_ptr.0 */
374         .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
375         .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_ERR_ACT_REC_PTR,
376         .direction = TF_DIR_RX,
377         .execute_info = {
378                 .cond_goto = 0,
379                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
380                 .cond_start_idx = 4,
381                 .cond_nums = 0 },
382         .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
383         .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
384         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
385         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
386         .result_start_idx = 89,
387         .result_bit_size = 32,
388         .result_num_fields = 1,
389         .encap_num_fields = 0
390         },
391         { /* class_tid: 3, wh_plus, table: int_full_act_record.0 */
392         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
393         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
394         .resource_sub_type =
395                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_VFR_CFA_ACTION,
396         .direction = TF_DIR_TX,
397         .execute_info = {
398                 .cond_goto = 1,
399                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
400                 .cond_start_idx = 4,
401                 .cond_nums = 0 },
402         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
403         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
404         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
405         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
406         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
407         .result_start_idx = 90,
408         .result_bit_size = 128,
409         .result_num_fields = 26,
410         .encap_num_fields = 0
411         },
412         { /* class_tid: 3, wh_plus, table: l2_cntxt_tcam_bypass.vfr_0 */
413         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
414         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
415         .direction = TF_DIR_TX,
416         .execute_info = {
417                 .cond_goto = 1,
418                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
419                 .cond_start_idx = 4,
420                 .cond_nums = 1 },
421         .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
422         .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
423         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
424         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
425         .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
426         .pri_operand = 0,
427         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
428         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
429         .key_start_idx = 97,
430         .blob_key_bit_size = 167,
431         .key_bit_size = 167,
432         .key_num_fields = 13,
433         .result_start_idx = 116,
434         .result_bit_size = 64,
435         .result_num_fields = 13,
436         .encap_num_fields = 0,
437         .ident_start_idx = 7,
438         .ident_nums = 0
439         },
440         { /* class_tid: 3, wh_plus, table: l2_cntxt_tcam_cache.rd */
441         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
442         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
443         .resource_sub_type =
444                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
445         .direction = TF_DIR_TX,
446         .execute_info = {
447                 .cond_goto = 1,
448                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
449                 .cond_start_idx = 5,
450                 .cond_nums = 1 },
451         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
452         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
453         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
454         .key_start_idx = 110,
455         .blob_key_bit_size = 8,
456         .key_bit_size = 8,
457         .key_num_fields = 1,
458         .ident_start_idx = 7,
459         .ident_nums = 1
460         },
461         { /* class_tid: 3, wh_plus, table: l2_cntxt_tcam.0 */
462         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
463         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
464         .direction = TF_DIR_TX,
465         .execute_info = {
466                 .cond_goto = 1,
467                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
468                 .cond_start_idx = 6,
469                 .cond_nums = 2 },
470         .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
471         .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
472         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
473         .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_PUSH_REGFILE,
474         .fdb_operand = BNXT_ULP_RF_IDX_RID,
475         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
476         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
477         .key_start_idx = 111,
478         .blob_key_bit_size = 167,
479         .key_bit_size = 167,
480         .key_num_fields = 13,
481         .result_start_idx = 129,
482         .result_bit_size = 64,
483         .result_num_fields = 13,
484         .encap_num_fields = 0,
485         .ident_start_idx = 8,
486         .ident_nums = 1
487         },
488         { /* class_tid: 3, wh_plus, table: l2_cntxt_tcam_cache.wr */
489         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
490         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
491         .resource_sub_type =
492                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
493         .direction = TF_DIR_TX,
494         .execute_info = {
495                 .cond_goto = 1,
496                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
497                 .cond_start_idx = 8,
498                 .cond_nums = 2 },
499         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
500         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
501         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
502         .key_start_idx = 124,
503         .blob_key_bit_size = 8,
504         .key_bit_size = 8,
505         .key_num_fields = 1,
506         .result_start_idx = 142,
507         .result_bit_size = 62,
508         .result_num_fields = 4,
509         .encap_num_fields = 0
510         },
511         { /* class_tid: 3, wh_plus, table: parif_def_lkup_arec_ptr.0 */
512         .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
513         .resource_type = TF_IF_TBL_TYPE_LKUP_PARIF_DFLT_ACT_REC_PTR,
514         .direction = TF_DIR_TX,
515         .execute_info = {
516                 .cond_goto = 1,
517                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
518                 .cond_start_idx = 10,
519                 .cond_nums = 0 },
520         .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
521         .tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_PARIF,
522         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
523         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
524         .result_start_idx = 146,
525         .result_bit_size = 32,
526         .result_num_fields = 1,
527         .encap_num_fields = 0
528         },
529         { /* class_tid: 3, wh_plus, table: parif_def_arec_ptr.0 */
530         .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
531         .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_DFLT_ACT_REC_PTR,
532         .direction = TF_DIR_TX,
533         .execute_info = {
534                 .cond_goto = 1,
535                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
536                 .cond_start_idx = 10,
537                 .cond_nums = 0 },
538         .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
539         .tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_PARIF,
540         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
541         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
542         .result_start_idx = 147,
543         .result_bit_size = 32,
544         .result_num_fields = 1,
545         .encap_num_fields = 0
546         },
547         { /* class_tid: 3, wh_plus, table: parif_def_err_arec_ptr.0 */
548         .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
549         .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_ERR_ACT_REC_PTR,
550         .direction = TF_DIR_TX,
551         .execute_info = {
552                 .cond_goto = 0,
553                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
554                 .cond_start_idx = 10,
555                 .cond_nums = 0 },
556         .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
557         .tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_PARIF,
558         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
559         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
560         .result_start_idx = 148,
561         .result_bit_size = 32,
562         .result_num_fields = 1,
563         .encap_num_fields = 0
564         },
565         { /* class_tid: 4, wh_plus, table: int_vtag_encap_record.egr0 */
566         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
567         .resource_type = TF_TBL_TYPE_ACT_ENCAP_8B,
568         .resource_sub_type =
569                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
570         .direction = TF_DIR_TX,
571         .execute_info = {
572                 .cond_goto = 1,
573                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
574                 .cond_start_idx = 10,
575                 .cond_nums = 0 },
576         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
577         .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
578         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
579         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
580         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
581         .result_start_idx = 149,
582         .result_bit_size = 0,
583         .result_num_fields = 0,
584         .encap_num_fields = 12
585         },
586         { /* class_tid: 4, wh_plus, table: int_full_act_record.egr0 */
587         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
588         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
589         .resource_sub_type =
590                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_VFR_CFA_ACTION,
591         .direction = TF_DIR_TX,
592         .execute_info = {
593                 .cond_goto = 1,
594                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
595                 .cond_start_idx = 10,
596                 .cond_nums = 0 },
597         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
598         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
599         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
600         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
601         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
602         .result_start_idx = 161,
603         .result_bit_size = 128,
604         .result_num_fields = 26,
605         .encap_num_fields = 0
606         },
607         { /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_bypass.egr0 */
608         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
609         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
610         .direction = TF_DIR_TX,
611         .execute_info = {
612                 .cond_goto = 1,
613                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
614                 .cond_start_idx = 10,
615                 .cond_nums = 0 },
616         .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
617         .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
618         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
619         .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_PUSH_REGFILE,
620         .fdb_operand = BNXT_ULP_RF_IDX_RID,
621         .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
622         .pri_operand = 0,
623         .key_start_idx = 125,
624         .blob_key_bit_size = 167,
625         .key_bit_size = 167,
626         .key_num_fields = 13,
627         .result_start_idx = 187,
628         .result_bit_size = 64,
629         .result_num_fields = 13,
630         .encap_num_fields = 0,
631         .ident_start_idx = 9,
632         .ident_nums = 0
633         },
634         { /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_cache.wr_egr0 */
635         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
636         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
637         .resource_sub_type =
638                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
639         .direction = TF_DIR_TX,
640         .execute_info = {
641                 .cond_goto = 1,
642                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
643                 .cond_start_idx = 10,
644                 .cond_nums = 0 },
645         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
646         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
647         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
648         .key_start_idx = 138,
649         .blob_key_bit_size = 8,
650         .key_bit_size = 8,
651         .key_num_fields = 1,
652         .result_start_idx = 200,
653         .result_bit_size = 62,
654         .result_num_fields = 4,
655         .encap_num_fields = 0,
656         .ident_start_idx = 9,
657         .ident_nums = 0
658         },
659         { /* class_tid: 4, wh_plus, table: int_full_act_record.ing0 */
660         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
661         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
662         .resource_sub_type =
663                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
664         .direction = TF_DIR_RX,
665         .execute_info = {
666                 .cond_goto = 1,
667                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
668                 .cond_start_idx = 10,
669                 .cond_nums = 0 },
670         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
671         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
672         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
673         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
674         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
675         .result_start_idx = 204,
676         .result_bit_size = 128,
677         .result_num_fields = 26,
678         .encap_num_fields = 0
679         },
680         { /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_bypass.dtagged_ing0 */
681         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
682         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
683         .direction = TF_DIR_RX,
684         .execute_info = {
685                 .cond_goto = 1,
686                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
687                 .cond_start_idx = 10,
688                 .cond_nums = 0 },
689         .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
690         .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
691         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
692         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
693         .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
694         .pri_operand = 0,
695         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
696         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
697         .key_start_idx = 139,
698         .blob_key_bit_size = 167,
699         .key_bit_size = 167,
700         .key_num_fields = 13,
701         .result_start_idx = 230,
702         .result_bit_size = 64,
703         .result_num_fields = 13,
704         .encap_num_fields = 0,
705         .ident_start_idx = 9,
706         .ident_nums = 0
707         },
708         { /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_bypass.stagged_ing0 */
709         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
710         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
711         .direction = TF_DIR_RX,
712         .execute_info = {
713                 .cond_goto = 0,
714                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
715                 .cond_start_idx = 10,
716                 .cond_nums = 0 },
717         .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
718         .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
719         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
720         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
721         .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
722         .pri_operand = 0,
723         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
724         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
725         .key_start_idx = 152,
726         .blob_key_bit_size = 167,
727         .key_bit_size = 167,
728         .key_num_fields = 13,
729         .result_start_idx = 243,
730         .result_bit_size = 64,
731         .result_num_fields = 13,
732         .encap_num_fields = 0,
733         .ident_start_idx = 9,
734         .ident_nums = 0
735         },
736         { /* class_tid: 5, wh_plus, table: l2_cntxt_tcam.egr */
737         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
738         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
739         .direction = TF_DIR_TX,
740         .execute_info = {
741                 .cond_goto = 1,
742                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
743                 .cond_start_idx = 10,
744                 .cond_nums = 0 },
745         .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
746         .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
747         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
748         .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_PUSH_REGFILE,
749         .fdb_operand = BNXT_ULP_RF_IDX_RID,
750         .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
751         .pri_operand = 0,
752         .key_start_idx = 165,
753         .blob_key_bit_size = 167,
754         .key_bit_size = 167,
755         .key_num_fields = 13,
756         .result_start_idx = 256,
757         .result_bit_size = 64,
758         .result_num_fields = 13,
759         .encap_num_fields = 0,
760         .ident_start_idx = 9,
761         .ident_nums = 1
762         },
763         { /* class_tid: 5, wh_plus, table: l2_cntxt_tcam_cache.egr_wr */
764         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
765         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
766         .resource_sub_type =
767                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_L2_CNTXT_TCAM,
768         .direction = TF_DIR_TX,
769         .execute_info = {
770                 .cond_goto = 1,
771                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
772                 .cond_start_idx = 10,
773                 .cond_nums = 0 },
774         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
775         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
776         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
777         .key_start_idx = 178,
778         .blob_key_bit_size = 8,
779         .key_bit_size = 8,
780         .key_num_fields = 1,
781         .result_start_idx = 269,
782         .result_bit_size = 62,
783         .result_num_fields = 4,
784         .encap_num_fields = 0
785         },
786         { /* class_tid: 5, wh_plus, table: parif_def_lkup_arec_ptr.egr */
787         .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
788         .resource_type = TF_IF_TBL_TYPE_LKUP_PARIF_DFLT_ACT_REC_PTR,
789         .direction = TF_DIR_TX,
790         .execute_info = {
791                 .cond_goto = 1,
792                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
793                 .cond_start_idx = 10,
794                 .cond_nums = 0 },
795         .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
796         .tbl_operand = BNXT_ULP_CF_IDX_VF_FUNC_PARIF,
797         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
798         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
799         .result_start_idx = 273,
800         .result_bit_size = 32,
801         .result_num_fields = 1,
802         .encap_num_fields = 0
803         },
804         { /* class_tid: 5, wh_plus, table: parif_def_arec_ptr.egr */
805         .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
806         .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_DFLT_ACT_REC_PTR,
807         .direction = TF_DIR_TX,
808         .execute_info = {
809                 .cond_goto = 1,
810                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
811                 .cond_start_idx = 10,
812                 .cond_nums = 0 },
813         .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
814         .tbl_operand = BNXT_ULP_CF_IDX_VF_FUNC_PARIF,
815         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
816         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
817         .result_start_idx = 274,
818         .result_bit_size = 32,
819         .result_num_fields = 1,
820         .encap_num_fields = 0
821         },
822         { /* class_tid: 5, wh_plus, table: parif_def_err_arec_ptr.egr */
823         .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
824         .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_ERR_ACT_REC_PTR,
825         .direction = TF_DIR_TX,
826         .execute_info = {
827                 .cond_goto = 1,
828                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
829                 .cond_start_idx = 10,
830                 .cond_nums = 0 },
831         .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
832         .tbl_operand = BNXT_ULP_CF_IDX_VF_FUNC_PARIF,
833         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
834         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
835         .result_start_idx = 275,
836         .result_bit_size = 32,
837         .result_num_fields = 1,
838         .encap_num_fields = 0
839         },
840         { /* class_tid: 5, wh_plus, table: int_full_act_record.ing */
841         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
842         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
843         .resource_sub_type =
844                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
845         .direction = TF_DIR_RX,
846         .execute_info = {
847                 .cond_goto = 1,
848                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
849                 .cond_start_idx = 10,
850                 .cond_nums = 0 },
851         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
852         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
853         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
854         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
855         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_PUSH_AND_SET_VFR_FLAG,
856         .result_start_idx = 276,
857         .result_bit_size = 128,
858         .result_num_fields = 26,
859         .encap_num_fields = 0
860         },
861         { /* class_tid: 5, wh_plus, table: l2_cntxt_tcam_bypass.ing */
862         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
863         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
864         .direction = TF_DIR_RX,
865         .execute_info = {
866                 .cond_goto = 0,
867                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
868                 .cond_start_idx = 10,
869                 .cond_nums = 0 },
870         .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
871         .tbl_operand = BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0,
872         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
873         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
874         .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
875         .pri_operand = 0,
876         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
877         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
878         .key_start_idx = 179,
879         .blob_key_bit_size = 167,
880         .key_bit_size = 167,
881         .key_num_fields = 13,
882         .result_start_idx = 302,
883         .result_bit_size = 64,
884         .result_num_fields = 13,
885         .encap_num_fields = 0,
886         .ident_start_idx = 10,
887         .ident_nums = 0
888         },
889         { /* class_tid: 6, wh_plus, table: int_full_act_record.0 */
890         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
891         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
892         .resource_sub_type =
893                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_VFR_CFA_ACTION,
894         .direction = TF_DIR_TX,
895         .execute_info = {
896                 .cond_goto = 0,
897                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
898                 .cond_start_idx = 10,
899                 .cond_nums = 0 },
900         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
901         .tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR,
902         .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
903         .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
904         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
905         .result_start_idx = 315,
906         .result_bit_size = 128,
907         .result_num_fields = 26,
908         .encap_num_fields = 0
909         }
910 };
911
912 struct bnxt_ulp_mapper_cond_info ulp_wh_plus_class_cond_list[] = {
913         {
914         .cond_opcode = BNXT_ULP_COND_OPC_FIELD_BIT_NOT_SET,
915         .cond_operand = BNXT_ULP_GLB_HF_ID_O_ETH_DMAC
916         },
917         {
918         .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
919         .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_HIT
920         },
921         {
922         .cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
923         .cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
924         },
925         {
926         .cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
927         .cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
928         },
929         {
930         .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
931         .cond_operand = BNXT_ULP_CF_IDX_VFR_MODE
932         },
933         {
934         .cond_opcode = BNXT_ULP_COND_OPC_CF_NOT_SET,
935         .cond_operand = BNXT_ULP_CF_IDX_VFR_MODE
936         },
937         {
938         .cond_opcode = BNXT_ULP_COND_OPC_CF_NOT_SET,
939         .cond_operand = BNXT_ULP_CF_IDX_VFR_MODE
940         },
941         {
942         .cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
943         .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_HIT
944         },
945         {
946         .cond_opcode = BNXT_ULP_COND_OPC_CF_NOT_SET,
947         .cond_operand = BNXT_ULP_CF_IDX_VFR_MODE
948         },
949         {
950         .cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
951         .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_HIT
952         }
953 };
954
955 struct bnxt_ulp_mapper_key_info ulp_wh_plus_class_key_info_list[] = {
956         /* class_tid: 1, wh_plus, table: l2_cntxt_tcam_cache.rd */
957         {
958         .field_info_mask = {
959                 .description = "svif",
960                 .field_bit_size = 8,
961                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
962                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
963                 .field_opr1 = {
964                         (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
965                         BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
966                 },
967         .field_info_spec = {
968                 .description = "svif",
969                 .field_bit_size = 8,
970                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
971                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
972                 .field_opr1 = {
973                         (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
974                         BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
975                 }
976         },
977         /* class_tid: 1, wh_plus, table: l2_cntxt_tcam.0 */
978         {
979         .field_info_mask = {
980                 .description = "l2_ivlan_vid",
981                 .field_bit_size = 12,
982                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
983                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
984                 .field_opr1 = {
985                         (BNXT_ULP_GLB_HF_ID_OO_VLAN_VID >> 8) & 0xff,
986                         BNXT_ULP_GLB_HF_ID_OO_VLAN_VID & 0xff}
987                 },
988         .field_info_spec = {
989                 .description = "l2_ivlan_vid",
990                 .field_bit_size = 12,
991                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
992                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
993                 .field_opr1 = {
994                         (BNXT_ULP_GLB_HF_ID_OO_VLAN_VID >> 8) & 0xff,
995                         BNXT_ULP_GLB_HF_ID_OO_VLAN_VID & 0xff}
996                 }
997         },
998         {
999         .field_info_mask = {
1000                 .description = "l2_ovlan_vid",
1001                 .field_bit_size = 12,
1002                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1003                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1004                 },
1005         .field_info_spec = {
1006                 .description = "l2_ovlan_vid",
1007                 .field_bit_size = 12,
1008                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1009                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1010                 }
1011         },
1012         {
1013         .field_info_mask = {
1014                 .description = "mac0_addr",
1015                 .field_bit_size = 48,
1016                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1017                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
1018                 .field_opr1 = {
1019                         (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
1020                         BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff}
1021                 },
1022         .field_info_spec = {
1023                 .description = "mac0_addr",
1024                 .field_bit_size = 48,
1025                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1026                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
1027                 .field_opr1 = {
1028                         (BNXT_ULP_GLB_HF_ID_O_ETH_DMAC >> 8) & 0xff,
1029                         BNXT_ULP_GLB_HF_ID_O_ETH_DMAC & 0xff}
1030                 }
1031         },
1032         {
1033         .field_info_mask = {
1034                 .description = "svif",
1035                 .field_bit_size = 8,
1036                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1037                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
1038                 .field_opr1 = {
1039                         (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
1040                         BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
1041                 },
1042         .field_info_spec = {
1043                 .description = "svif",
1044                 .field_bit_size = 8,
1045                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1046                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
1047                 .field_opr1 = {
1048                         (BNXT_ULP_GLB_HF_ID_SVIF_INDEX >> 8) & 0xff,
1049                         BNXT_ULP_GLB_HF_ID_SVIF_INDEX & 0xff}
1050                 }
1051         },
1052         {
1053         .field_info_mask = {
1054                 .description = "sparif",
1055                 .field_bit_size = 4,
1056                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1057                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1058                 },
1059         .field_info_spec = {
1060                 .description = "sparif",
1061                 .field_bit_size = 4,
1062                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1063                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1064                 }
1065         },
1066         {
1067         .field_info_mask = {
1068                 .description = "tl2_ivlan_vid",
1069                 .field_bit_size = 12,
1070                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1071                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1072                 },
1073         .field_info_spec = {
1074                 .description = "tl2_ivlan_vid",
1075                 .field_bit_size = 12,
1076                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1077                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1078                 }
1079         },
1080         {
1081         .field_info_mask = {
1082                 .description = "tl2_ovlan_vid",
1083                 .field_bit_size = 12,
1084                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1085                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1086                 },
1087         .field_info_spec = {
1088                 .description = "tl2_ovlan_vid",
1089                 .field_bit_size = 12,
1090                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1091                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1092                 }
1093         },
1094         {
1095         .field_info_mask = {
1096                 .description = "mac1_addr",
1097                 .field_bit_size = 48,
1098                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1099                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1100                 },
1101         .field_info_spec = {
1102                 .description = "mac1_addr",
1103                 .field_bit_size = 48,
1104                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1105                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1106                 }
1107         },
1108         {
1109         .field_info_mask = {
1110                 .description = "l2_num_vtags",
1111                 .field_bit_size = 2,
1112                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1113                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1114                 .field_opr1 = {
1115                         0xff}
1116                 },
1117         .field_info_spec = {
1118                 .description = "l2_num_vtags",
1119                 .field_bit_size = 2,
1120                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1121                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1122                 .field_opr1 = {
1123                         (BNXT_ULP_CF_IDX_O_VTAG_NUM >> 8) & 0xff,
1124                         BNXT_ULP_CF_IDX_O_VTAG_NUM & 0xff}
1125                 }
1126         },
1127         {
1128         .field_info_mask = {
1129                 .description = "tl2_num_vtags",
1130                 .field_bit_size = 2,
1131                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1132                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1133                 },
1134         .field_info_spec = {
1135                 .description = "tl2_num_vtags",
1136                 .field_bit_size = 2,
1137                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1138                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1139                 }
1140         },
1141         {
1142         .field_info_mask = {
1143                 .description = "tun_hdr_type",
1144                 .field_bit_size = 4,
1145                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1146                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1147                 },
1148         .field_info_spec = {
1149                 .description = "tun_hdr_type",
1150                 .field_bit_size = 4,
1151                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1152                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1153                 }
1154         },
1155         {
1156         .field_info_mask = {
1157                 .description = "key_type",
1158                 .field_bit_size = 2,
1159                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1160                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1161                 .field_opr1 = {
1162                         0xff}
1163                 },
1164         .field_info_spec = {
1165                 .description = "key_type",
1166                 .field_bit_size = 2,
1167                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1168                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1169                 }
1170         },
1171         {
1172         .field_info_mask = {
1173                 .description = "valid",
1174                 .field_bit_size = 1,
1175                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1176                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1177                 .field_opr1 = {
1178                         0xff}
1179                 },
1180         .field_info_spec = {
1181                 .description = "valid",
1182                 .field_bit_size = 1,
1183                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1184                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1185                 .field_opr1 = {
1186                         1}
1187                 }
1188         },
1189         /* class_tid: 1, wh_plus, table: profile_tcam_cache.rd */
1190         {
1191         .field_info_mask = {
1192                 .description = "recycle_cnt",
1193                 .field_bit_size = 2,
1194                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1195                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1196                 .field_opr1 = {
1197                         0xff}
1198                 },
1199         .field_info_spec = {
1200                 .description = "recycle_cnt",
1201                 .field_bit_size = 2,
1202                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1203                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1204                 }
1205         },
1206         {
1207         .field_info_mask = {
1208                 .description = "prof_func_id",
1209                 .field_bit_size = 7,
1210                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1211                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1212                 .field_opr1 = {
1213                         0xff}
1214                 },
1215         .field_info_spec = {
1216                 .description = "prof_func_id",
1217                 .field_bit_size = 7,
1218                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1219                 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
1220                 .field_opr1 = {
1221                         (BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID >> 8) & 0xff,
1222                         BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID & 0xff}
1223                 }
1224         },
1225         {
1226         .field_info_mask = {
1227                 .description = "hdr_sig_id",
1228                 .field_bit_size = 5,
1229                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1230                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1231                 .field_opr1 = {
1232                         0xff}
1233                 },
1234         .field_info_spec = {
1235                 .description = "hdr_sig_id",
1236                 .field_bit_size = 5,
1237                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1238                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1239                 .field_opr1 = {
1240                         (BNXT_ULP_CF_IDX_HDR_SIG_ID >> 8) & 0xff,
1241                         BNXT_ULP_CF_IDX_HDR_SIG_ID & 0xff}
1242                 }
1243         },
1244         /* class_tid: 1, wh_plus, table: profile_tcam.0 */
1245         {
1246         .field_info_mask = {
1247                 .description = "l4_hdr_is_udp_tcp",
1248                 .field_bit_size = 1,
1249                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1250                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1251                 },
1252         .field_info_spec = {
1253                 .description = "l4_hdr_is_udp_tcp",
1254                 .field_bit_size = 1,
1255                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1256                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1257                 }
1258         },
1259         {
1260         .field_info_mask = {
1261                 .description = "l4_hdr_type",
1262                 .field_bit_size = 4,
1263                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1264                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1265                 .field_opr1 = {
1266                         0xff}
1267                 },
1268         .field_info_spec = {
1269                 .description = "l4_hdr_type",
1270                 .field_bit_size = 4,
1271                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
1272                 .field_cond_opr = {
1273                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
1274                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
1275                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
1276                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
1277                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
1278                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
1279                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
1280                         (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
1281                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1282                 .field_opr1 = {
1283                         ULP_WP_SYM_L4_HDR_TYPE_TCP},
1284                 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
1285                 .field_opr2 = {
1286                         ULP_WP_SYM_L4_HDR_TYPE_UDP}
1287                 }
1288         },
1289         {
1290         .field_info_mask = {
1291                 .description = "l4_hdr_error",
1292                 .field_bit_size = 1,
1293                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1294                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1295                 .field_opr1 = {
1296                         0xff}
1297                 },
1298         .field_info_spec = {
1299                 .description = "l4_hdr_error",
1300                 .field_bit_size = 1,
1301                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1302                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1303                 }
1304         },
1305         {
1306         .field_info_mask = {
1307                 .description = "l4_hdr_valid",
1308                 .field_bit_size = 1,
1309                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1310                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1311                 .field_opr1 = {
1312                         0xff}
1313                 },
1314         .field_info_spec = {
1315                 .description = "l4_hdr_valid",
1316                 .field_bit_size = 1,
1317                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1318                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1319                 .field_opr1 = {
1320                         ULP_WP_SYM_L4_HDR_VALID_YES}
1321                 }
1322         },
1323         {
1324         .field_info_mask = {
1325                 .description = "l3_ipv6_cmp_dst",
1326                 .field_bit_size = 1,
1327                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1328                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1329                 },
1330         .field_info_spec = {
1331                 .description = "l3_ipv6_cmp_dst",
1332                 .field_bit_size = 1,
1333                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1334                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1335                 }
1336         },
1337         {
1338         .field_info_mask = {
1339                 .description = "l3_ipv6_cmp_src",
1340                 .field_bit_size = 1,
1341                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1342                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1343                 },
1344         .field_info_spec = {
1345                 .description = "l3_ipv6_cmp_src",
1346                 .field_bit_size = 1,
1347                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1348                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1349                 }
1350         },
1351         {
1352         .field_info_mask = {
1353                 .description = "l3_hdr_isIP",
1354                 .field_bit_size = 1,
1355                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1356                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1357                 },
1358         .field_info_spec = {
1359                 .description = "l3_hdr_isIP",
1360                 .field_bit_size = 1,
1361                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1362                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1363                 }
1364         },
1365         {
1366         .field_info_mask = {
1367                 .description = "l3_hdr_type",
1368                 .field_bit_size = 4,
1369                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1370                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1371                 .field_opr1 = {
1372                         0xff}
1373                 },
1374         .field_info_spec = {
1375                 .description = "l3_hdr_type",
1376                 .field_bit_size = 4,
1377                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
1378                 .field_cond_opr = {
1379                         ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
1380                         ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
1381                         ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
1382                         ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
1383                         ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
1384                         ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
1385                         ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
1386                         (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
1387                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1388                 .field_opr1 = {
1389                         ULP_WP_SYM_L3_HDR_TYPE_IPV4},
1390                 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
1391                 .field_opr2 = {
1392                         ULP_WP_SYM_L3_HDR_TYPE_IPV6}
1393                 }
1394         },
1395         {
1396         .field_info_mask = {
1397                 .description = "l3_hdr_error",
1398                 .field_bit_size = 1,
1399                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1400                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1401                 .field_opr1 = {
1402                         0xff}
1403                 },
1404         .field_info_spec = {
1405                 .description = "l3_hdr_error",
1406                 .field_bit_size = 1,
1407                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1408                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1409                 }
1410         },
1411         {
1412         .field_info_mask = {
1413                 .description = "l3_hdr_valid",
1414                 .field_bit_size = 1,
1415                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1416                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1417                 .field_opr1 = {
1418                         0xff}
1419                 },
1420         .field_info_spec = {
1421                 .description = "l3_hdr_valid",
1422                 .field_bit_size = 1,
1423                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1424                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1425                 .field_opr1 = {
1426                         ULP_WP_SYM_L3_HDR_VALID_YES}
1427                 }
1428         },
1429         {
1430         .field_info_mask = {
1431                 .description = "l2_two_vtags",
1432                 .field_bit_size = 1,
1433                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1434                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1435                 .field_opr1 = {
1436                         0xff}
1437                 },
1438         .field_info_spec = {
1439                 .description = "l2_two_vtags",
1440                 .field_bit_size = 1,
1441                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1442                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1443                 }
1444         },
1445         {
1446         .field_info_mask = {
1447                 .description = "l2_vtag_present",
1448                 .field_bit_size = 1,
1449                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1450                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1451                 .field_opr1 = {
1452                         0xff}
1453                 },
1454         .field_info_spec = {
1455                 .description = "l2_vtag_present",
1456                 .field_bit_size = 1,
1457                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1458                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1459                 .field_opr1 = {
1460                         (BNXT_ULP_CF_IDX_O_ONE_VTAG >> 8) & 0xff,
1461                         BNXT_ULP_CF_IDX_O_ONE_VTAG & 0xff}
1462                 }
1463         },
1464         {
1465         .field_info_mask = {
1466                 .description = "l2_uc_mc_bc",
1467                 .field_bit_size = 2,
1468                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1469                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1470                 .field_opr1 = {
1471                         0xff}
1472                 },
1473         .field_info_spec = {
1474                 .description = "l2_uc_mc_bc",
1475                 .field_bit_size = 2,
1476                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1477                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1478                 }
1479         },
1480         {
1481         .field_info_mask = {
1482                 .description = "l2_hdr_type",
1483                 .field_bit_size = 2,
1484                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1485                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1486                 .field_opr1 = {
1487                         0xff}
1488                 },
1489         .field_info_spec = {
1490                 .description = "l2_hdr_type",
1491                 .field_bit_size = 2,
1492                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1493                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1494                 }
1495         },
1496         {
1497         .field_info_mask = {
1498                 .description = "l2_hdr_error",
1499                 .field_bit_size = 1,
1500                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1501                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1502                 .field_opr1 = {
1503                         0xff}
1504                 },
1505         .field_info_spec = {
1506                 .description = "l2_hdr_error",
1507                 .field_bit_size = 1,
1508                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1509                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1510                 }
1511         },
1512         {
1513         .field_info_mask = {
1514                 .description = "l2_hdr_valid",
1515                 .field_bit_size = 1,
1516                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1517                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1518                 .field_opr1 = {
1519                         0xff}
1520                 },
1521         .field_info_spec = {
1522                 .description = "l2_hdr_valid",
1523                 .field_bit_size = 1,
1524                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1525                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1526                 .field_opr1 = {
1527                         ULP_WP_SYM_L2_HDR_VALID_YES}
1528                 }
1529         },
1530         {
1531         .field_info_mask = {
1532                 .description = "tun_hdr_flags",
1533                 .field_bit_size = 3,
1534                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1535                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1536                 },
1537         .field_info_spec = {
1538                 .description = "tun_hdr_flags",
1539                 .field_bit_size = 3,
1540                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1541                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1542                 }
1543         },
1544         {
1545         .field_info_mask = {
1546                 .description = "tun_hdr_type",
1547                 .field_bit_size = 4,
1548                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1549                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1550                 },
1551         .field_info_spec = {
1552                 .description = "tun_hdr_type",
1553                 .field_bit_size = 4,
1554                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1555                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1556                 }
1557         },
1558         {
1559         .field_info_mask = {
1560                 .description = "tun_hdr_err",
1561                 .field_bit_size = 1,
1562                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1563                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1564                 },
1565         .field_info_spec = {
1566                 .description = "tun_hdr_err",
1567                 .field_bit_size = 1,
1568                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1569                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1570                 }
1571         },
1572         {
1573         .field_info_mask = {
1574                 .description = "tun_hdr_valid",
1575                 .field_bit_size = 1,
1576                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1577                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1578                 .field_opr1 = {
1579                         0xff}
1580                 },
1581         .field_info_spec = {
1582                 .description = "tun_hdr_valid",
1583                 .field_bit_size = 1,
1584                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1585                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1586                 }
1587         },
1588         {
1589         .field_info_mask = {
1590                 .description = "tl4_hdr_is_udp_tcp",
1591                 .field_bit_size = 1,
1592                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1593                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1594                 },
1595         .field_info_spec = {
1596                 .description = "tl4_hdr_is_udp_tcp",
1597                 .field_bit_size = 1,
1598                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1599                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1600                 }
1601         },
1602         {
1603         .field_info_mask = {
1604                 .description = "tl4_hdr_type",
1605                 .field_bit_size = 4,
1606                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1607                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1608                 },
1609         .field_info_spec = {
1610                 .description = "tl4_hdr_type",
1611                 .field_bit_size = 4,
1612                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1613                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1614                 }
1615         },
1616         {
1617         .field_info_mask = {
1618                 .description = "tl4_hdr_error",
1619                 .field_bit_size = 1,
1620                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1621                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1622                 },
1623         .field_info_spec = {
1624                 .description = "tl4_hdr_error",
1625                 .field_bit_size = 1,
1626                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1627                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1628                 }
1629         },
1630         {
1631         .field_info_mask = {
1632                 .description = "tl4_hdr_valid",
1633                 .field_bit_size = 1,
1634                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1635                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1636                 .field_opr1 = {
1637                         0xff}
1638                 },
1639         .field_info_spec = {
1640                 .description = "tl4_hdr_valid",
1641                 .field_bit_size = 1,
1642                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1643                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1644                 }
1645         },
1646         {
1647         .field_info_mask = {
1648                 .description = "tl3_ipv6_cmp_dst",
1649                 .field_bit_size = 1,
1650                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1651                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1652                 },
1653         .field_info_spec = {
1654                 .description = "tl3_ipv6_cmp_dst",
1655                 .field_bit_size = 1,
1656                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1657                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1658                 }
1659         },
1660         {
1661         .field_info_mask = {
1662                 .description = "tl3_ipv6_cmp_src",
1663                 .field_bit_size = 1,
1664                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1665                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1666                 },
1667         .field_info_spec = {
1668                 .description = "tl3_ipv6_cmp_src",
1669                 .field_bit_size = 1,
1670                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1671                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1672                 }
1673         },
1674         {
1675         .field_info_mask = {
1676                 .description = "tl3_hdr_isIP",
1677                 .field_bit_size = 1,
1678                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1679                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1680                 },
1681         .field_info_spec = {
1682                 .description = "tl3_hdr_isIP",
1683                 .field_bit_size = 1,
1684                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1685                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1686                 }
1687         },
1688         {
1689         .field_info_mask = {
1690                 .description = "tl3_hdr_type",
1691                 .field_bit_size = 4,
1692                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1693                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1694                 },
1695         .field_info_spec = {
1696                 .description = "tl3_hdr_type",
1697                 .field_bit_size = 4,
1698                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1699                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1700                 }
1701         },
1702         {
1703         .field_info_mask = {
1704                 .description = "tl3_hdr_error",
1705                 .field_bit_size = 1,
1706                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1707                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1708                 },
1709         .field_info_spec = {
1710                 .description = "tl3_hdr_error",
1711                 .field_bit_size = 1,
1712                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1713                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1714                 }
1715         },
1716         {
1717         .field_info_mask = {
1718                 .description = "tl3_hdr_valid",
1719                 .field_bit_size = 1,
1720                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1721                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1722                 .field_opr1 = {
1723                         0xff}
1724                 },
1725         .field_info_spec = {
1726                 .description = "tl3_hdr_valid",
1727                 .field_bit_size = 1,
1728                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1729                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1730                 }
1731         },
1732         {
1733         .field_info_mask = {
1734                 .description = "tl2_two_vtags",
1735                 .field_bit_size = 1,
1736                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1737                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1738                 },
1739         .field_info_spec = {
1740                 .description = "tl2_two_vtags",
1741                 .field_bit_size = 1,
1742                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1743                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1744                 }
1745         },
1746         {
1747         .field_info_mask = {
1748                 .description = "tl2_vtag_present",
1749                 .field_bit_size = 1,
1750                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1751                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1752                 },
1753         .field_info_spec = {
1754                 .description = "tl2_vtag_present",
1755                 .field_bit_size = 1,
1756                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1757                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1758                 }
1759         },
1760         {
1761         .field_info_mask = {
1762                 .description = "tl2_uc_mc_bc",
1763                 .field_bit_size = 2,
1764                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1765                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1766                 },
1767         .field_info_spec = {
1768                 .description = "tl2_uc_mc_bc",
1769                 .field_bit_size = 2,
1770                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1771                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1772                 }
1773         },
1774         {
1775         .field_info_mask = {
1776                 .description = "tl2_hdr_type",
1777                 .field_bit_size = 2,
1778                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1779                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1780                 },
1781         .field_info_spec = {
1782                 .description = "tl2_hdr_type",
1783                 .field_bit_size = 2,
1784                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1785                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1786                 }
1787         },
1788         {
1789         .field_info_mask = {
1790                 .description = "tl2_hdr_valid",
1791                 .field_bit_size = 1,
1792                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1793                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1794                 .field_opr1 = {
1795                         0xff}
1796                 },
1797         .field_info_spec = {
1798                 .description = "tl2_hdr_valid",
1799                 .field_bit_size = 1,
1800                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1801                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1802                 }
1803         },
1804         {
1805         .field_info_mask = {
1806                 .description = "hrec_next",
1807                 .field_bit_size = 1,
1808                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1809                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1810                 },
1811         .field_info_spec = {
1812                 .description = "hrec_next",
1813                 .field_bit_size = 1,
1814                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1815                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1816                 }
1817         },
1818         {
1819         .field_info_mask = {
1820                 .description = "reserved",
1821                 .field_bit_size = 9,
1822                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1823                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1824                 },
1825         .field_info_spec = {
1826                 .description = "reserved",
1827                 .field_bit_size = 9,
1828                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1829                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1830                 }
1831         },
1832         {
1833         .field_info_mask = {
1834                 .description = "prof_func_id",
1835                 .field_bit_size = 7,
1836                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1837                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1838                 .field_opr1 = {
1839                         0xff}
1840                 },
1841         .field_info_spec = {
1842                 .description = "prof_func_id",
1843                 .field_bit_size = 7,
1844                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1845                 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
1846                 .field_opr1 = {
1847                         (BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID >> 8) & 0xff,
1848                         BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID & 0xff}
1849                 }
1850         },
1851         {
1852         .field_info_mask = {
1853                 .description = "agg_error",
1854                 .field_bit_size = 1,
1855                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1856                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1857                 },
1858         .field_info_spec = {
1859                 .description = "agg_error",
1860                 .field_bit_size = 1,
1861                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1862                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1863                 }
1864         },
1865         {
1866         .field_info_mask = {
1867                 .description = "recycle_cnt",
1868                 .field_bit_size = 2,
1869                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1870                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1871                 .field_opr1 = {
1872                         0xff}
1873                 },
1874         .field_info_spec = {
1875                 .description = "recycle_cnt",
1876                 .field_bit_size = 2,
1877                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1878                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1879                 }
1880         },
1881         {
1882         .field_info_mask = {
1883                 .description = "pkt_type_0",
1884                 .field_bit_size = 2,
1885                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1886                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1887                 },
1888         .field_info_spec = {
1889                 .description = "pkt_type_0",
1890                 .field_bit_size = 2,
1891                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1892                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1893                 }
1894         },
1895         {
1896         .field_info_mask = {
1897                 .description = "pkt_type_1",
1898                 .field_bit_size = 2,
1899                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1900                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1901                 .field_opr1 = {
1902                         0xff}
1903                 },
1904         .field_info_spec = {
1905                 .description = "pkt_type_1",
1906                 .field_bit_size = 2,
1907                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1908                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1909                 }
1910         },
1911         {
1912         .field_info_mask = {
1913                 .description = "valid",
1914                 .field_bit_size = 1,
1915                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1916                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1917                 .field_opr1 = {
1918                         0xff}
1919                 },
1920         .field_info_spec = {
1921                 .description = "valid",
1922                 .field_bit_size = 1,
1923                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1924                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1925                 .field_opr1 = {
1926                         1}
1927                 }
1928         },
1929         /* class_tid: 1, wh_plus, table: profile_tcam_cache.wr */
1930         {
1931         .field_info_mask = {
1932                 .description = "recycle_cnt",
1933                 .field_bit_size = 2,
1934                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1935                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1936                 .field_opr1 = {
1937                         0xff}
1938                 },
1939         .field_info_spec = {
1940                 .description = "recycle_cnt",
1941                 .field_bit_size = 2,
1942                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1943                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1944                 }
1945         },
1946         {
1947         .field_info_mask = {
1948                 .description = "prof_func_id",
1949                 .field_bit_size = 7,
1950                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1951                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1952                 .field_opr1 = {
1953                         0xff}
1954                 },
1955         .field_info_spec = {
1956                 .description = "prof_func_id",
1957                 .field_bit_size = 7,
1958                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1959                 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
1960                 .field_opr1 = {
1961                         (BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID >> 8) & 0xff,
1962                         BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID & 0xff}
1963                 }
1964         },
1965         {
1966         .field_info_mask = {
1967                 .description = "hdr_sig_id",
1968                 .field_bit_size = 5,
1969                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1970                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1971                 .field_opr1 = {
1972                         0xff}
1973                 },
1974         .field_info_spec = {
1975                 .description = "hdr_sig_id",
1976                 .field_bit_size = 5,
1977                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1978                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1979                 .field_opr1 = {
1980                         (BNXT_ULP_CF_IDX_HDR_SIG_ID >> 8) & 0xff,
1981                         BNXT_ULP_CF_IDX_HDR_SIG_ID & 0xff}
1982                 }
1983         },
1984         /* class_tid: 1, wh_plus, table: em.int_0 */
1985         {
1986         .field_info_mask = {
1987                 .description = "spare",
1988                 .field_bit_size = 3,
1989                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1990                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1991                 },
1992         .field_info_spec = {
1993                 .description = "spare",
1994                 .field_bit_size = 3,
1995                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1996                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1997                 }
1998         },
1999         {
2000         .field_info_mask = {
2001                 .description = "local_cos",
2002                 .field_bit_size = 3,
2003                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2004                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2005                 .field_opr1 = {
2006                         0xff}
2007                 },
2008         .field_info_spec = {
2009                 .description = "local_cos",
2010                 .field_bit_size = 3,
2011                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2012                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2013                 }
2014         },
2015         {
2016         .field_info_mask = {
2017                 .description = "o_l4.dport",
2018                 .field_bit_size = 16,
2019                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2020                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2021                 .field_opr1 = {
2022                         0xff,
2023                         0xff}
2024                 },
2025         .field_info_spec = {
2026                 .description = "o_l4.dport",
2027                 .field_bit_size = 16,
2028                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
2029                 .field_cond_opr = {
2030                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
2031                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
2032                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
2033                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
2034                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
2035                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
2036                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
2037                         (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
2038                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2039                 .field_opr1 = {
2040                         (BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT >> 8) & 0xff,
2041                         BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT & 0xff},
2042                 .field_src2 = BNXT_ULP_FIELD_SRC_HF,
2043                 .field_opr2 = {
2044                         (BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT >> 8) & 0xff,
2045                         BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT & 0xff}
2046                 }
2047         },
2048         {
2049         .field_info_mask = {
2050                 .description = "o_l4.sport",
2051                 .field_bit_size = 16,
2052                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2053                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2054                 .field_opr1 = {
2055                         0xff,
2056                         0xff}
2057                 },
2058         .field_info_spec = {
2059                 .description = "o_l4.sport",
2060                 .field_bit_size = 16,
2061                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
2062                 .field_cond_opr = {
2063                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
2064                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
2065                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
2066                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
2067                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
2068                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
2069                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
2070                         (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
2071                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2072                 .field_opr1 = {
2073                         (BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT >> 8) & 0xff,
2074                         BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT & 0xff},
2075                 .field_src2 = BNXT_ULP_FIELD_SRC_HF,
2076                 .field_opr2 = {
2077                         (BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT >> 8) & 0xff,
2078                         BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT & 0xff}
2079                 }
2080         },
2081         {
2082         .field_info_mask = {
2083                 .description = "o_ipv4.ip_proto",
2084                 .field_bit_size = 8,
2085                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2086                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2087                 .field_opr1 = {
2088                         0xff}
2089                 },
2090         .field_info_spec = {
2091                 .description = "o_ipv4.ip_proto",
2092                 .field_bit_size = 8,
2093                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
2094                 .field_cond_opr = {
2095                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
2096                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
2097                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
2098                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
2099                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
2100                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
2101                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
2102                         (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
2103                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2104                 .field_opr1 = {
2105                         ULP_WP_SYM_IP_PROTO_TCP},
2106                 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2107                 .field_opr2 = {
2108                         ULP_WP_SYM_IP_PROTO_UDP}
2109                 }
2110         },
2111         {
2112         .field_info_mask = {
2113                 .description = "o_ipv4.dst",
2114                 .field_bit_size = 32,
2115                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2116                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2117                 .field_opr1 = {
2118                         (BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR >> 8) & 0xff,
2119                         BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR & 0xff}
2120                 },
2121         .field_info_spec = {
2122                 .description = "o_ipv4.dst",
2123                 .field_bit_size = 32,
2124                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2125                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2126                 .field_opr1 = {
2127                         (BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR >> 8) & 0xff,
2128                         BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR & 0xff}
2129                 }
2130         },
2131         {
2132         .field_info_mask = {
2133                 .description = "o_ipv4.src",
2134                 .field_bit_size = 32,
2135                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2136                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2137                 .field_opr1 = {
2138                         (BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR >> 8) & 0xff,
2139                         BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR & 0xff}
2140                 },
2141         .field_info_spec = {
2142                 .description = "o_ipv4.src",
2143                 .field_bit_size = 32,
2144                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2145                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2146                 .field_opr1 = {
2147                         (BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR >> 8) & 0xff,
2148                         BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR & 0xff}
2149                 }
2150         },
2151         {
2152         .field_info_mask = {
2153                 .description = "o_eth.smac",
2154                 .field_bit_size = 48,
2155                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2156                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2157                 .field_opr1 = {
2158                         0xff,
2159                         0xff,
2160                         0xff,
2161                         0xff,
2162                         0xff,
2163                         0xff}
2164                 },
2165         .field_info_spec = {
2166                 .description = "o_eth.smac",
2167                 .field_bit_size = 48,
2168                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2169                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2170                 }
2171         },
2172         {
2173         .field_info_mask = {
2174                 .description = "l2_cntxt_id",
2175                 .field_bit_size = 10,
2176                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2177                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2178                 .field_opr1 = {
2179                         0xff,
2180                         0xff}
2181                 },
2182         .field_info_spec = {
2183                 .description = "l2_cntxt_id",
2184                 .field_bit_size = 10,
2185                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2186                 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2187                 .field_opr1 = {
2188                         (BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 >> 8) & 0xff,
2189                         BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 & 0xff}
2190                 }
2191         },
2192         {
2193         .field_info_mask = {
2194                 .description = "em_profile_id",
2195                 .field_bit_size = 8,
2196                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2197                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2198                 .field_opr1 = {
2199                         0xff}
2200                 },
2201         .field_info_spec = {
2202                 .description = "em_profile_id",
2203                 .field_bit_size = 8,
2204                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2205                 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2206                 .field_opr1 = {
2207                         (BNXT_ULP_RF_IDX_EM_PROFILE_ID_0 >> 8) & 0xff,
2208                         BNXT_ULP_RF_IDX_EM_PROFILE_ID_0 & 0xff}
2209                 }
2210         },
2211         /* class_tid: 1, wh_plus, table: eem.ext_0 */
2212         {
2213         .field_info_mask = {
2214                 .description = "spare",
2215                 .field_bit_size = 275,
2216                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2217                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2218                 },
2219         .field_info_spec = {
2220                 .description = "spare",
2221                 .field_bit_size = 275,
2222                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2223                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2224                 }
2225         },
2226         {
2227         .field_info_mask = {
2228                 .description = "local_cos",
2229                 .field_bit_size = 3,
2230                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2231                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2232                 .field_opr1 = {
2233                         0xff}
2234                 },
2235         .field_info_spec = {
2236                 .description = "local_cos",
2237                 .field_bit_size = 3,
2238                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2239                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2240                 }
2241         },
2242         {
2243         .field_info_mask = {
2244                 .description = "o_l4.dport",
2245                 .field_bit_size = 16,
2246                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2247                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2248                 .field_opr1 = {
2249                         0xff,
2250                         0xff}
2251                 },
2252         .field_info_spec = {
2253                 .description = "o_l4.dport",
2254                 .field_bit_size = 16,
2255                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
2256                 .field_cond_opr = {
2257                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
2258                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
2259                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
2260                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
2261                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
2262                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
2263                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
2264                         (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
2265                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2266                 .field_opr1 = {
2267                         (BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT >> 8) & 0xff,
2268                         BNXT_ULP_GLB_HF_ID_O_TCP_DST_PORT & 0xff},
2269                 .field_src2 = BNXT_ULP_FIELD_SRC_HF,
2270                 .field_opr2 = {
2271                         (BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT >> 8) & 0xff,
2272                         BNXT_ULP_GLB_HF_ID_O_UDP_DST_PORT & 0xff}
2273                 }
2274         },
2275         {
2276         .field_info_mask = {
2277                 .description = "o_l4.sport",
2278                 .field_bit_size = 16,
2279                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2280                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2281                 .field_opr1 = {
2282                         0xff,
2283                         0xff}
2284                 },
2285         .field_info_spec = {
2286                 .description = "o_l4.sport",
2287                 .field_bit_size = 16,
2288                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
2289                 .field_cond_opr = {
2290                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
2291                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
2292                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
2293                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
2294                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
2295                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
2296                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
2297                         (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
2298                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2299                 .field_opr1 = {
2300                         (BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT >> 8) & 0xff,
2301                         BNXT_ULP_GLB_HF_ID_O_TCP_SRC_PORT & 0xff},
2302                 .field_src2 = BNXT_ULP_FIELD_SRC_HF,
2303                 .field_opr2 = {
2304                         (BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT >> 8) & 0xff,
2305                         BNXT_ULP_GLB_HF_ID_O_UDP_SRC_PORT & 0xff}
2306                 }
2307         },
2308         {
2309         .field_info_mask = {
2310                 .description = "o_ipv4.ip_proto",
2311                 .field_bit_size = 8,
2312                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2313                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2314                 .field_opr1 = {
2315                         0xff}
2316                 },
2317         .field_info_spec = {
2318                 .description = "o_ipv4.ip_proto",
2319                 .field_bit_size = 8,
2320                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
2321                 .field_cond_opr = {
2322                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 56) & 0xff,
2323                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 48) & 0xff,
2324                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 40) & 0xff,
2325                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 32) & 0xff,
2326                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 24) & 0xff,
2327                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 16) & 0xff,
2328                         ((uint64_t)BNXT_ULP_HDR_BIT_O_TCP >> 8) & 0xff,
2329                         (uint64_t)BNXT_ULP_HDR_BIT_O_TCP & 0xff},
2330                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2331                 .field_opr1 = {
2332                         ULP_WP_SYM_IP_PROTO_TCP},
2333                 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2334                 .field_opr2 = {
2335                         ULP_WP_SYM_IP_PROTO_UDP}
2336                 }
2337         },
2338         {
2339         .field_info_mask = {
2340                 .description = "o_ipv4.dst",
2341                 .field_bit_size = 32,
2342                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2343                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2344                 .field_opr1 = {
2345                         (BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR >> 8) & 0xff,
2346                         BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR & 0xff}
2347                 },
2348         .field_info_spec = {
2349                 .description = "o_ipv4.dst",
2350                 .field_bit_size = 32,
2351                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2352                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2353                 .field_opr1 = {
2354                         (BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR >> 8) & 0xff,
2355                         BNXT_ULP_GLB_HF_ID_O_IPV4_DST_ADDR & 0xff}
2356                 }
2357         },
2358         {
2359         .field_info_mask = {
2360                 .description = "o_ipv4.src",
2361                 .field_bit_size = 32,
2362                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2363                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2364                 .field_opr1 = {
2365                         (BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR >> 8) & 0xff,
2366                         BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR & 0xff}
2367                 },
2368         .field_info_spec = {
2369                 .description = "o_ipv4.src",
2370                 .field_bit_size = 32,
2371                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2372                 .field_src1 = BNXT_ULP_FIELD_SRC_HF,
2373                 .field_opr1 = {
2374                         (BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR >> 8) & 0xff,
2375                         BNXT_ULP_GLB_HF_ID_O_IPV4_SRC_ADDR & 0xff}
2376                 }
2377         },
2378         {
2379         .field_info_mask = {
2380                 .description = "o_eth.smac",
2381                 .field_bit_size = 48,
2382                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2383                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2384                 .field_opr1 = {
2385                         0xff,
2386                         0xff,
2387                         0xff,
2388                         0xff,
2389                         0xff,
2390                         0xff}
2391                 },
2392         .field_info_spec = {
2393                 .description = "o_eth.smac",
2394                 .field_bit_size = 48,
2395                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2396                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2397                 }
2398         },
2399         {
2400         .field_info_mask = {
2401                 .description = "l2_cntxt_id",
2402                 .field_bit_size = 10,
2403                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2404                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2405                 .field_opr1 = {
2406                         0xff,
2407                         0xff}
2408                 },
2409         .field_info_spec = {
2410                 .description = "l2_cntxt_id",
2411                 .field_bit_size = 10,
2412                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2413                 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2414                 .field_opr1 = {
2415                         (BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 >> 8) & 0xff,
2416                         BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 & 0xff}
2417                 }
2418         },
2419         {
2420         .field_info_mask = {
2421                 .description = "em_profile_id",
2422                 .field_bit_size = 8,
2423                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2424                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2425                 .field_opr1 = {
2426                         0xff}
2427                 },
2428         .field_info_spec = {
2429                 .description = "em_profile_id",
2430                 .field_bit_size = 8,
2431                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2432                 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2433                 .field_opr1 = {
2434                         (BNXT_ULP_RF_IDX_EM_PROFILE_ID_0 >> 8) & 0xff,
2435                         BNXT_ULP_RF_IDX_EM_PROFILE_ID_0 & 0xff}
2436                 }
2437         },
2438         /* class_tid: 2, wh_plus, table: l2_cntxt_tcam.0 */
2439         {
2440         .field_info_mask = {
2441                 .description = "l2_ivlan_vid",
2442                 .field_bit_size = 12,
2443                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2444                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2445                 },
2446         .field_info_spec = {
2447                 .description = "l2_ivlan_vid",
2448                 .field_bit_size = 12,
2449                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2450                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2451                 }
2452         },
2453         {
2454         .field_info_mask = {
2455                 .description = "l2_ovlan_vid",
2456                 .field_bit_size = 12,
2457                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2458                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2459                 },
2460         .field_info_spec = {
2461                 .description = "l2_ovlan_vid",
2462                 .field_bit_size = 12,
2463                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2464                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2465                 }
2466         },
2467         {
2468         .field_info_mask = {
2469                 .description = "mac0_addr",
2470                 .field_bit_size = 48,
2471                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2472                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2473                 },
2474         .field_info_spec = {
2475                 .description = "mac0_addr",
2476                 .field_bit_size = 48,
2477                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2478                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2479                 }
2480         },
2481         {
2482         .field_info_mask = {
2483                 .description = "svif",
2484                 .field_bit_size = 8,
2485                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2486                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2487                 .field_opr1 = {
2488                         0xff}
2489                 },
2490         .field_info_spec = {
2491                 .description = "svif",
2492                 .field_bit_size = 8,
2493                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2494                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2495                 .field_opr1 = {
2496                         (BNXT_ULP_CF_IDX_PHY_PORT_SVIF >> 8) & 0xff,
2497                         BNXT_ULP_CF_IDX_PHY_PORT_SVIF & 0xff}
2498                 }
2499         },
2500         {
2501         .field_info_mask = {
2502                 .description = "sparif",
2503                 .field_bit_size = 4,
2504                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2505                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2506                 },
2507         .field_info_spec = {
2508                 .description = "sparif",
2509                 .field_bit_size = 4,
2510                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2511                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2512                 }
2513         },
2514         {
2515         .field_info_mask = {
2516                 .description = "tl2_ivlan_vid",
2517                 .field_bit_size = 12,
2518                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2519                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2520                 },
2521         .field_info_spec = {
2522                 .description = "tl2_ivlan_vid",
2523                 .field_bit_size = 12,
2524                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2525                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2526                 }
2527         },
2528         {
2529         .field_info_mask = {
2530                 .description = "tl2_ovlan_vid",
2531                 .field_bit_size = 12,
2532                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2533                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2534                 },
2535         .field_info_spec = {
2536                 .description = "tl2_ovlan_vid",
2537                 .field_bit_size = 12,
2538                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2539                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2540                 }
2541         },
2542         {
2543         .field_info_mask = {
2544                 .description = "mac1_addr",
2545                 .field_bit_size = 48,
2546                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2547                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2548                 },
2549         .field_info_spec = {
2550                 .description = "mac1_addr",
2551                 .field_bit_size = 48,
2552                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2553                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2554                 }
2555         },
2556         {
2557         .field_info_mask = {
2558                 .description = "l2_num_vtags",
2559                 .field_bit_size = 2,
2560                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2561                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2562                 },
2563         .field_info_spec = {
2564                 .description = "l2_num_vtags",
2565                 .field_bit_size = 2,
2566                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2567                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2568                 }
2569         },
2570         {
2571         .field_info_mask = {
2572                 .description = "tl2_num_vtags",
2573                 .field_bit_size = 2,
2574                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2575                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2576                 },
2577         .field_info_spec = {
2578                 .description = "tl2_num_vtags",
2579                 .field_bit_size = 2,
2580                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2581                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2582                 }
2583         },
2584         {
2585         .field_info_mask = {
2586                 .description = "tun_hdr_type",
2587                 .field_bit_size = 4,
2588                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2589                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2590                 },
2591         .field_info_spec = {
2592                 .description = "tun_hdr_type",
2593                 .field_bit_size = 4,
2594                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2595                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2596                 }
2597         },
2598         {
2599         .field_info_mask = {
2600                 .description = "key_type",
2601                 .field_bit_size = 2,
2602                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2603                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2604                 .field_opr1 = {
2605                         0xff}
2606                 },
2607         .field_info_spec = {
2608                 .description = "key_type",
2609                 .field_bit_size = 2,
2610                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2611                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2612                 }
2613         },
2614         {
2615         .field_info_mask = {
2616                 .description = "valid",
2617                 .field_bit_size = 1,
2618                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2619                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2620                 .field_opr1 = {
2621                         0xff}
2622                 },
2623         .field_info_spec = {
2624                 .description = "valid",
2625                 .field_bit_size = 1,
2626                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2627                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2628                 .field_opr1 = {
2629                         1}
2630                 }
2631         },
2632         /* class_tid: 2, wh_plus, table: l2_cntxt_tcam_cache.wr */
2633         {
2634         .field_info_mask = {
2635                 .description = "svif",
2636                 .field_bit_size = 8,
2637                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2638                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2639                 .field_opr1 = {
2640                         0xff}
2641                 },
2642         .field_info_spec = {
2643                 .description = "svif",
2644                 .field_bit_size = 8,
2645                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2646                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2647                 .field_opr1 = {
2648                         (BNXT_ULP_CF_IDX_PHY_PORT_SVIF >> 8) & 0xff,
2649                         BNXT_ULP_CF_IDX_PHY_PORT_SVIF & 0xff}
2650                 }
2651         },
2652         /* class_tid: 3, wh_plus, table: l2_cntxt_tcam_bypass.vfr_0 */
2653         {
2654         .field_info_mask = {
2655                 .description = "l2_ivlan_vid",
2656                 .field_bit_size = 12,
2657                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2658                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2659                 },
2660         .field_info_spec = {
2661                 .description = "l2_ivlan_vid",
2662                 .field_bit_size = 12,
2663                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2664                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2665                 }
2666         },
2667         {
2668         .field_info_mask = {
2669                 .description = "l2_ovlan_vid",
2670                 .field_bit_size = 12,
2671                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2672                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2673                 },
2674         .field_info_spec = {
2675                 .description = "l2_ovlan_vid",
2676                 .field_bit_size = 12,
2677                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2678                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2679                 }
2680         },
2681         {
2682         .field_info_mask = {
2683                 .description = "mac0_addr",
2684                 .field_bit_size = 48,
2685                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2686                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2687                 },
2688         .field_info_spec = {
2689                 .description = "mac0_addr",
2690                 .field_bit_size = 48,
2691                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2692                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2693                 }
2694         },
2695         {
2696         .field_info_mask = {
2697                 .description = "svif",
2698                 .field_bit_size = 8,
2699                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2700                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2701                 .field_opr1 = {
2702                         0xff}
2703                 },
2704         .field_info_spec = {
2705                 .description = "svif",
2706                 .field_bit_size = 8,
2707                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2708                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2709                 .field_opr1 = {
2710                         (BNXT_ULP_CF_IDX_DRV_FUNC_SVIF >> 8) & 0xff,
2711                         BNXT_ULP_CF_IDX_DRV_FUNC_SVIF & 0xff}
2712                 }
2713         },
2714         {
2715         .field_info_mask = {
2716                 .description = "sparif",
2717                 .field_bit_size = 4,
2718                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2719                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2720                 },
2721         .field_info_spec = {
2722                 .description = "sparif",
2723                 .field_bit_size = 4,
2724                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2725                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2726                 }
2727         },
2728         {
2729         .field_info_mask = {
2730                 .description = "tl2_ivlan_vid",
2731                 .field_bit_size = 12,
2732                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2733                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2734                 },
2735         .field_info_spec = {
2736                 .description = "tl2_ivlan_vid",
2737                 .field_bit_size = 12,
2738                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2739                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2740                 }
2741         },
2742         {
2743         .field_info_mask = {
2744                 .description = "tl2_ovlan_vid",
2745                 .field_bit_size = 12,
2746                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2747                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2748                 },
2749         .field_info_spec = {
2750                 .description = "tl2_ovlan_vid",
2751                 .field_bit_size = 12,
2752                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2753                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2754                 }
2755         },
2756         {
2757         .field_info_mask = {
2758                 .description = "mac1_addr",
2759                 .field_bit_size = 48,
2760                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2761                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2762                 },
2763         .field_info_spec = {
2764                 .description = "mac1_addr",
2765                 .field_bit_size = 48,
2766                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2767                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2768                 }
2769         },
2770         {
2771         .field_info_mask = {
2772                 .description = "l2_num_vtags",
2773                 .field_bit_size = 2,
2774                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2775                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2776                 },
2777         .field_info_spec = {
2778                 .description = "l2_num_vtags",
2779                 .field_bit_size = 2,
2780                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2781                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2782                 }
2783         },
2784         {
2785         .field_info_mask = {
2786                 .description = "tl2_num_vtags",
2787                 .field_bit_size = 2,
2788                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2789                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2790                 },
2791         .field_info_spec = {
2792                 .description = "tl2_num_vtags",
2793                 .field_bit_size = 2,
2794                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2795                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2796                 }
2797         },
2798         {
2799         .field_info_mask = {
2800                 .description = "tun_hdr_type",
2801                 .field_bit_size = 4,
2802                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2803                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2804                 },
2805         .field_info_spec = {
2806                 .description = "tun_hdr_type",
2807                 .field_bit_size = 4,
2808                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2809                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2810                 }
2811         },
2812         {
2813         .field_info_mask = {
2814                 .description = "key_type",
2815                 .field_bit_size = 2,
2816                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2817                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2818                 .field_opr1 = {
2819                         0xff}
2820                 },
2821         .field_info_spec = {
2822                 .description = "key_type",
2823                 .field_bit_size = 2,
2824                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2825                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2826                 }
2827         },
2828         {
2829         .field_info_mask = {
2830                 .description = "valid",
2831                 .field_bit_size = 1,
2832                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2833                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2834                 .field_opr1 = {
2835                         0xff}
2836                 },
2837         .field_info_spec = {
2838                 .description = "valid",
2839                 .field_bit_size = 1,
2840                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2841                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2842                 .field_opr1 = {
2843                         1}
2844                 }
2845         },
2846         /* class_tid: 3, wh_plus, table: l2_cntxt_tcam_cache.rd */
2847         {
2848         .field_info_mask = {
2849                 .description = "svif",
2850                 .field_bit_size = 8,
2851                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2852                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2853                 .field_opr1 = {
2854                         0xff}
2855                 },
2856         .field_info_spec = {
2857                 .description = "svif",
2858                 .field_bit_size = 8,
2859                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2860                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2861                 .field_opr1 = {
2862                         (BNXT_ULP_CF_IDX_DRV_FUNC_SVIF >> 8) & 0xff,
2863                         BNXT_ULP_CF_IDX_DRV_FUNC_SVIF & 0xff}
2864                 }
2865         },
2866         /* class_tid: 3, wh_plus, table: l2_cntxt_tcam.0 */
2867         {
2868         .field_info_mask = {
2869                 .description = "l2_ivlan_vid",
2870                 .field_bit_size = 12,
2871                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2872                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2873                 },
2874         .field_info_spec = {
2875                 .description = "l2_ivlan_vid",
2876                 .field_bit_size = 12,
2877                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2878                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2879                 }
2880         },
2881         {
2882         .field_info_mask = {
2883                 .description = "l2_ovlan_vid",
2884                 .field_bit_size = 12,
2885                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2886                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2887                 },
2888         .field_info_spec = {
2889                 .description = "l2_ovlan_vid",
2890                 .field_bit_size = 12,
2891                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2892                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2893                 }
2894         },
2895         {
2896         .field_info_mask = {
2897                 .description = "mac0_addr",
2898                 .field_bit_size = 48,
2899                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2900                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2901                 },
2902         .field_info_spec = {
2903                 .description = "mac0_addr",
2904                 .field_bit_size = 48,
2905                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2906                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2907                 }
2908         },
2909         {
2910         .field_info_mask = {
2911                 .description = "svif",
2912                 .field_bit_size = 8,
2913                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2914                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2915                 .field_opr1 = {
2916                         0xff}
2917                 },
2918         .field_info_spec = {
2919                 .description = "svif",
2920                 .field_bit_size = 8,
2921                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2922                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2923                 .field_opr1 = {
2924                         (BNXT_ULP_CF_IDX_DRV_FUNC_SVIF >> 8) & 0xff,
2925                         BNXT_ULP_CF_IDX_DRV_FUNC_SVIF & 0xff}
2926                 }
2927         },
2928         {
2929         .field_info_mask = {
2930                 .description = "sparif",
2931                 .field_bit_size = 4,
2932                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2933                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2934                 },
2935         .field_info_spec = {
2936                 .description = "sparif",
2937                 .field_bit_size = 4,
2938                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2939                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2940                 }
2941         },
2942         {
2943         .field_info_mask = {
2944                 .description = "tl2_ivlan_vid",
2945                 .field_bit_size = 12,
2946                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2947                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2948                 },
2949         .field_info_spec = {
2950                 .description = "tl2_ivlan_vid",
2951                 .field_bit_size = 12,
2952                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2953                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2954                 }
2955         },
2956         {
2957         .field_info_mask = {
2958                 .description = "tl2_ovlan_vid",
2959                 .field_bit_size = 12,
2960                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2961                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2962                 },
2963         .field_info_spec = {
2964                 .description = "tl2_ovlan_vid",
2965                 .field_bit_size = 12,
2966                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2967                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2968                 }
2969         },
2970         {
2971         .field_info_mask = {
2972                 .description = "mac1_addr",
2973                 .field_bit_size = 48,
2974                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2975                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2976                 },
2977         .field_info_spec = {
2978                 .description = "mac1_addr",
2979                 .field_bit_size = 48,
2980                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2981                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2982                 }
2983         },
2984         {
2985         .field_info_mask = {
2986                 .description = "l2_num_vtags",
2987                 .field_bit_size = 2,
2988                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2989                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2990                 },
2991         .field_info_spec = {
2992                 .description = "l2_num_vtags",
2993                 .field_bit_size = 2,
2994                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2995                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2996                 }
2997         },
2998         {
2999         .field_info_mask = {
3000                 .description = "tl2_num_vtags",
3001                 .field_bit_size = 2,
3002                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3003                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3004                 },
3005         .field_info_spec = {
3006                 .description = "tl2_num_vtags",
3007                 .field_bit_size = 2,
3008                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3009                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3010                 }
3011         },
3012         {
3013         .field_info_mask = {
3014                 .description = "tun_hdr_type",
3015                 .field_bit_size = 4,
3016                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3017                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3018                 },
3019         .field_info_spec = {
3020                 .description = "tun_hdr_type",
3021                 .field_bit_size = 4,
3022                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3023                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3024                 }
3025         },
3026         {
3027         .field_info_mask = {
3028                 .description = "key_type",
3029                 .field_bit_size = 2,
3030                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3031                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3032                 .field_opr1 = {
3033                         0xff}
3034                 },
3035         .field_info_spec = {
3036                 .description = "key_type",
3037                 .field_bit_size = 2,
3038                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3039                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3040                 }
3041         },
3042         {
3043         .field_info_mask = {
3044                 .description = "valid",
3045                 .field_bit_size = 1,
3046                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3047                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3048                 .field_opr1 = {
3049                         0xff}
3050                 },
3051         .field_info_spec = {
3052                 .description = "valid",
3053                 .field_bit_size = 1,
3054                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3055                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3056                 .field_opr1 = {
3057                         1}
3058                 }
3059         },
3060         /* class_tid: 3, wh_plus, table: l2_cntxt_tcam_cache.wr */
3061         {
3062         .field_info_mask = {
3063                 .description = "svif",
3064                 .field_bit_size = 8,
3065                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3066                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3067                 .field_opr1 = {
3068                         0xff}
3069                 },
3070         .field_info_spec = {
3071                 .description = "svif",
3072                 .field_bit_size = 8,
3073                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3074                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3075                 .field_opr1 = {
3076                         (BNXT_ULP_CF_IDX_DRV_FUNC_SVIF >> 8) & 0xff,
3077                         BNXT_ULP_CF_IDX_DRV_FUNC_SVIF & 0xff}
3078                 }
3079         },
3080         /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_bypass.egr0 */
3081         {
3082         .field_info_mask = {
3083                 .description = "l2_ivlan_vid",
3084                 .field_bit_size = 12,
3085                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3086                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3087                 },
3088         .field_info_spec = {
3089                 .description = "l2_ivlan_vid",
3090                 .field_bit_size = 12,
3091                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3092                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3093                 }
3094         },
3095         {
3096         .field_info_mask = {
3097                 .description = "l2_ovlan_vid",
3098                 .field_bit_size = 12,
3099                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3100                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3101                 },
3102         .field_info_spec = {
3103                 .description = "l2_ovlan_vid",
3104                 .field_bit_size = 12,
3105                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3106                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3107                 }
3108         },
3109         {
3110         .field_info_mask = {
3111                 .description = "mac0_addr",
3112                 .field_bit_size = 48,
3113                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3114                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3115                 },
3116         .field_info_spec = {
3117                 .description = "mac0_addr",
3118                 .field_bit_size = 48,
3119                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3120                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3121                 }
3122         },
3123         {
3124         .field_info_mask = {
3125                 .description = "svif",
3126                 .field_bit_size = 8,
3127                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3128                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3129                 .field_opr1 = {
3130                         0xff}
3131                 },
3132         .field_info_spec = {
3133                 .description = "svif",
3134                 .field_bit_size = 8,
3135                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3136                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3137                 .field_opr1 = {
3138                         (BNXT_ULP_CF_IDX_DRV_FUNC_SVIF >> 8) & 0xff,
3139                         BNXT_ULP_CF_IDX_DRV_FUNC_SVIF & 0xff}
3140                 }
3141         },
3142         {
3143         .field_info_mask = {
3144                 .description = "sparif",
3145                 .field_bit_size = 4,
3146                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3147                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3148                 },
3149         .field_info_spec = {
3150                 .description = "sparif",
3151                 .field_bit_size = 4,
3152                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3153                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3154                 }
3155         },
3156         {
3157         .field_info_mask = {
3158                 .description = "tl2_ivlan_vid",
3159                 .field_bit_size = 12,
3160                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3161                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3162                 },
3163         .field_info_spec = {
3164                 .description = "tl2_ivlan_vid",
3165                 .field_bit_size = 12,
3166                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3167                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3168                 }
3169         },
3170         {
3171         .field_info_mask = {
3172                 .description = "tl2_ovlan_vid",
3173                 .field_bit_size = 12,
3174                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3175                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3176                 },
3177         .field_info_spec = {
3178                 .description = "tl2_ovlan_vid",
3179                 .field_bit_size = 12,
3180                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3181                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3182                 }
3183         },
3184         {
3185         .field_info_mask = {
3186                 .description = "mac1_addr",
3187                 .field_bit_size = 48,
3188                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3189                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3190                 },
3191         .field_info_spec = {
3192                 .description = "mac1_addr",
3193                 .field_bit_size = 48,
3194                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3195                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3196                 }
3197         },
3198         {
3199         .field_info_mask = {
3200                 .description = "l2_num_vtags",
3201                 .field_bit_size = 2,
3202                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3203                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3204                 },
3205         .field_info_spec = {
3206                 .description = "l2_num_vtags",
3207                 .field_bit_size = 2,
3208                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3209                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3210                 }
3211         },
3212         {
3213         .field_info_mask = {
3214                 .description = "tl2_num_vtags",
3215                 .field_bit_size = 2,
3216                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3217                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3218                 },
3219         .field_info_spec = {
3220                 .description = "tl2_num_vtags",
3221                 .field_bit_size = 2,
3222                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3223                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3224                 }
3225         },
3226         {
3227         .field_info_mask = {
3228                 .description = "tun_hdr_type",
3229                 .field_bit_size = 4,
3230                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3231                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3232                 },
3233         .field_info_spec = {
3234                 .description = "tun_hdr_type",
3235                 .field_bit_size = 4,
3236                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3237                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3238                 }
3239         },
3240         {
3241         .field_info_mask = {
3242                 .description = "key_type",
3243                 .field_bit_size = 2,
3244                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3245                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3246                 .field_opr1 = {
3247                         0xff}
3248                 },
3249         .field_info_spec = {
3250                 .description = "key_type",
3251                 .field_bit_size = 2,
3252                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3253                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3254                 }
3255         },
3256         {
3257         .field_info_mask = {
3258                 .description = "valid",
3259                 .field_bit_size = 1,
3260                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3261                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3262                 .field_opr1 = {
3263                         0xff}
3264                 },
3265         .field_info_spec = {
3266                 .description = "valid",
3267                 .field_bit_size = 1,
3268                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3269                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3270                 .field_opr1 = {
3271                         1}
3272                 }
3273         },
3274         /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_cache.wr_egr0 */
3275         {
3276         .field_info_mask = {
3277                 .description = "svif",
3278                 .field_bit_size = 8,
3279                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3280                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3281                 .field_opr1 = {
3282                         0xff}
3283                 },
3284         .field_info_spec = {
3285                 .description = "svif",
3286                 .field_bit_size = 8,
3287                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3288                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3289                 .field_opr1 = {
3290                         (BNXT_ULP_CF_IDX_DRV_FUNC_SVIF >> 8) & 0xff,
3291                         BNXT_ULP_CF_IDX_DRV_FUNC_SVIF & 0xff}
3292                 }
3293         },
3294         /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_bypass.dtagged_ing0 */
3295         {
3296         .field_info_mask = {
3297                 .description = "l2_ivlan_vid",
3298                 .field_bit_size = 12,
3299                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3300                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3301                 },
3302         .field_info_spec = {
3303                 .description = "l2_ivlan_vid",
3304                 .field_bit_size = 12,
3305                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3306                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3307                 }
3308         },
3309         {
3310         .field_info_mask = {
3311                 .description = "l2_ovlan_vid",
3312                 .field_bit_size = 12,
3313                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3314                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3315                 .field_opr1 = {
3316                         0xff,
3317                         0xff}
3318                 },
3319         .field_info_spec = {
3320                 .description = "l2_ovlan_vid",
3321                 .field_bit_size = 12,
3322                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3323                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3324                 .field_opr1 = {
3325                         (BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
3326                         BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff}
3327                 }
3328         },
3329         {
3330         .field_info_mask = {
3331                 .description = "mac0_addr",
3332                 .field_bit_size = 48,
3333                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3334                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3335                 },
3336         .field_info_spec = {
3337                 .description = "mac0_addr",
3338                 .field_bit_size = 48,
3339                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3340                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3341                 }
3342         },
3343         {
3344         .field_info_mask = {
3345                 .description = "svif",
3346                 .field_bit_size = 8,
3347                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3348                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3349                 .field_opr1 = {
3350                         0xff}
3351                 },
3352         .field_info_spec = {
3353                 .description = "svif",
3354                 .field_bit_size = 8,
3355                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3356                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3357                 .field_opr1 = {
3358                         (BNXT_ULP_CF_IDX_DRV_FUNC_SVIF >> 8) & 0xff,
3359                         BNXT_ULP_CF_IDX_DRV_FUNC_SVIF & 0xff}
3360                 }
3361         },
3362         {
3363         .field_info_mask = {
3364                 .description = "sparif",
3365                 .field_bit_size = 4,
3366                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3367                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3368                 },
3369         .field_info_spec = {
3370                 .description = "sparif",
3371                 .field_bit_size = 4,
3372                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3373                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3374                 }
3375         },
3376         {
3377         .field_info_mask = {
3378                 .description = "tl2_ivlan_vid",
3379                 .field_bit_size = 12,
3380                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3381                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3382                 },
3383         .field_info_spec = {
3384                 .description = "tl2_ivlan_vid",
3385                 .field_bit_size = 12,
3386                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3387                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3388                 }
3389         },
3390         {
3391         .field_info_mask = {
3392                 .description = "tl2_ovlan_vid",
3393                 .field_bit_size = 12,
3394                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3395                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3396                 },
3397         .field_info_spec = {
3398                 .description = "tl2_ovlan_vid",
3399                 .field_bit_size = 12,
3400                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3401                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3402                 }
3403         },
3404         {
3405         .field_info_mask = {
3406                 .description = "mac1_addr",
3407                 .field_bit_size = 48,
3408                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3409                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3410                 },
3411         .field_info_spec = {
3412                 .description = "mac1_addr",
3413                 .field_bit_size = 48,
3414                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3415                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3416                 }
3417         },
3418         {
3419         .field_info_mask = {
3420                 .description = "l2_num_vtags",
3421                 .field_bit_size = 2,
3422                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3423                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3424                 .field_opr1 = {
3425                         0xff}
3426                 },
3427         .field_info_spec = {
3428                 .description = "l2_num_vtags",
3429                 .field_bit_size = 2,
3430                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3431                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3432                 .field_opr1 = {
3433                         2}
3434                 }
3435         },
3436         {
3437         .field_info_mask = {
3438                 .description = "tl2_num_vtags",
3439                 .field_bit_size = 2,
3440                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3441                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3442                 },
3443         .field_info_spec = {
3444                 .description = "tl2_num_vtags",
3445                 .field_bit_size = 2,
3446                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3447                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3448                 }
3449         },
3450         {
3451         .field_info_mask = {
3452                 .description = "tun_hdr_type",
3453                 .field_bit_size = 4,
3454                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3455                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3456                 .field_opr1 = {
3457                         0xff}
3458                 },
3459         .field_info_spec = {
3460                 .description = "tun_hdr_type",
3461                 .field_bit_size = 4,
3462                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3463                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3464                 .field_opr1 = {
3465                         ULP_WP_SYM_TUN_HDR_TYPE_NONE}
3466                 }
3467         },
3468         {
3469         .field_info_mask = {
3470                 .description = "key_type",
3471                 .field_bit_size = 2,
3472                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3473                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3474                 .field_opr1 = {
3475                         0xff}
3476                 },
3477         .field_info_spec = {
3478                 .description = "key_type",
3479                 .field_bit_size = 2,
3480                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3481                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3482                 }
3483         },
3484         {
3485         .field_info_mask = {
3486                 .description = "valid",
3487                 .field_bit_size = 1,
3488                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3489                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3490                 .field_opr1 = {
3491                         0xff}
3492                 },
3493         .field_info_spec = {
3494                 .description = "valid",
3495                 .field_bit_size = 1,
3496                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3497                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3498                 .field_opr1 = {
3499                         1}
3500                 }
3501         },
3502         /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_bypass.stagged_ing0 */
3503         {
3504         .field_info_mask = {
3505                 .description = "l2_ivlan_vid",
3506                 .field_bit_size = 12,
3507                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3508                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3509                 .field_opr1 = {
3510                         0xff,
3511                         0xff}
3512                 },
3513         .field_info_spec = {
3514                 .description = "l2_ivlan_vid",
3515                 .field_bit_size = 12,
3516                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3517                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3518                 .field_opr1 = {
3519                         (BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
3520                         BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff}
3521                 }
3522         },
3523         {
3524         .field_info_mask = {
3525                 .description = "l2_ovlan_vid",
3526                 .field_bit_size = 12,
3527                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3528                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3529                 },
3530         .field_info_spec = {
3531                 .description = "l2_ovlan_vid",
3532                 .field_bit_size = 12,
3533                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3534                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3535                 }
3536         },
3537         {
3538         .field_info_mask = {
3539                 .description = "mac0_addr",
3540                 .field_bit_size = 48,
3541                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3542                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3543                 },
3544         .field_info_spec = {
3545                 .description = "mac0_addr",
3546                 .field_bit_size = 48,
3547                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3548                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3549                 }
3550         },
3551         {
3552         .field_info_mask = {
3553                 .description = "svif",
3554                 .field_bit_size = 8,
3555                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3556                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3557                 .field_opr1 = {
3558                         0xff}
3559                 },
3560         .field_info_spec = {
3561                 .description = "svif",
3562                 .field_bit_size = 8,
3563                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3564                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3565                 .field_opr1 = {
3566                         (BNXT_ULP_CF_IDX_DRV_FUNC_SVIF >> 8) & 0xff,
3567                         BNXT_ULP_CF_IDX_DRV_FUNC_SVIF & 0xff}
3568                 }
3569         },
3570         {
3571         .field_info_mask = {
3572                 .description = "sparif",
3573                 .field_bit_size = 4,
3574                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3575                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3576                 },
3577         .field_info_spec = {
3578                 .description = "sparif",
3579                 .field_bit_size = 4,
3580                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3581                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3582                 }
3583         },
3584         {
3585         .field_info_mask = {
3586                 .description = "tl2_ivlan_vid",
3587                 .field_bit_size = 12,
3588                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3589                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3590                 },
3591         .field_info_spec = {
3592                 .description = "tl2_ivlan_vid",
3593                 .field_bit_size = 12,
3594                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3595                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3596                 }
3597         },
3598         {
3599         .field_info_mask = {
3600                 .description = "tl2_ovlan_vid",
3601                 .field_bit_size = 12,
3602                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3603                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3604                 },
3605         .field_info_spec = {
3606                 .description = "tl2_ovlan_vid",
3607                 .field_bit_size = 12,
3608                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3609                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3610                 }
3611         },
3612         {
3613         .field_info_mask = {
3614                 .description = "mac1_addr",
3615                 .field_bit_size = 48,
3616                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3617                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3618                 },
3619         .field_info_spec = {
3620                 .description = "mac1_addr",
3621                 .field_bit_size = 48,
3622                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3623                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3624                 }
3625         },
3626         {
3627         .field_info_mask = {
3628                 .description = "l2_num_vtags",
3629                 .field_bit_size = 2,
3630                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3631                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3632                 .field_opr1 = {
3633                         0xff}
3634                 },
3635         .field_info_spec = {
3636                 .description = "l2_num_vtags",
3637                 .field_bit_size = 2,
3638                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3639                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3640                 .field_opr1 = {
3641                         1}
3642                 }
3643         },
3644         {
3645         .field_info_mask = {
3646                 .description = "tl2_num_vtags",
3647                 .field_bit_size = 2,
3648                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3649                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3650                 },
3651         .field_info_spec = {
3652                 .description = "tl2_num_vtags",
3653                 .field_bit_size = 2,
3654                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3655                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3656                 }
3657         },
3658         {
3659         .field_info_mask = {
3660                 .description = "tun_hdr_type",
3661                 .field_bit_size = 4,
3662                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3663                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3664                 .field_opr1 = {
3665                         0xff}
3666                 },
3667         .field_info_spec = {
3668                 .description = "tun_hdr_type",
3669                 .field_bit_size = 4,
3670                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3671                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3672                 .field_opr1 = {
3673                         ULP_WP_SYM_TUN_HDR_TYPE_NONE}
3674                 }
3675         },
3676         {
3677         .field_info_mask = {
3678                 .description = "key_type",
3679                 .field_bit_size = 2,
3680                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3681                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3682                 .field_opr1 = {
3683                         0xff}
3684                 },
3685         .field_info_spec = {
3686                 .description = "key_type",
3687                 .field_bit_size = 2,
3688                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3689                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3690                 }
3691         },
3692         {
3693         .field_info_mask = {
3694                 .description = "valid",
3695                 .field_bit_size = 1,
3696                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3697                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3698                 .field_opr1 = {
3699                         0xff}
3700                 },
3701         .field_info_spec = {
3702                 .description = "valid",
3703                 .field_bit_size = 1,
3704                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3705                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3706                 .field_opr1 = {
3707                         1}
3708                 }
3709         },
3710         /* class_tid: 5, wh_plus, table: l2_cntxt_tcam.egr */
3711         {
3712         .field_info_mask = {
3713                 .description = "l2_ivlan_vid",
3714                 .field_bit_size = 12,
3715                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3716                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3717                 },
3718         .field_info_spec = {
3719                 .description = "l2_ivlan_vid",
3720                 .field_bit_size = 12,
3721                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3722                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3723                 }
3724         },
3725         {
3726         .field_info_mask = {
3727                 .description = "l2_ovlan_vid",
3728                 .field_bit_size = 12,
3729                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3730                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3731                 },
3732         .field_info_spec = {
3733                 .description = "l2_ovlan_vid",
3734                 .field_bit_size = 12,
3735                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3736                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3737                 }
3738         },
3739         {
3740         .field_info_mask = {
3741                 .description = "mac0_addr",
3742                 .field_bit_size = 48,
3743                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3744                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3745                 },
3746         .field_info_spec = {
3747                 .description = "mac0_addr",
3748                 .field_bit_size = 48,
3749                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3750                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3751                 }
3752         },
3753         {
3754         .field_info_mask = {
3755                 .description = "svif",
3756                 .field_bit_size = 8,
3757                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3758                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3759                 .field_opr1 = {
3760                         0xff}
3761                 },
3762         .field_info_spec = {
3763                 .description = "svif",
3764                 .field_bit_size = 8,
3765                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3766                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3767                 .field_opr1 = {
3768                         (BNXT_ULP_CF_IDX_VF_FUNC_SVIF >> 8) & 0xff,
3769                         BNXT_ULP_CF_IDX_VF_FUNC_SVIF & 0xff}
3770                 }
3771         },
3772         {
3773         .field_info_mask = {
3774                 .description = "sparif",
3775                 .field_bit_size = 4,
3776                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3777                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3778                 },
3779         .field_info_spec = {
3780                 .description = "sparif",
3781                 .field_bit_size = 4,
3782                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3783                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3784                 }
3785         },
3786         {
3787         .field_info_mask = {
3788                 .description = "tl2_ivlan_vid",
3789                 .field_bit_size = 12,
3790                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3791                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3792                 },
3793         .field_info_spec = {
3794                 .description = "tl2_ivlan_vid",
3795                 .field_bit_size = 12,
3796                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3797                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3798                 }
3799         },
3800         {
3801         .field_info_mask = {
3802                 .description = "tl2_ovlan_vid",
3803                 .field_bit_size = 12,
3804                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3805                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3806                 },
3807         .field_info_spec = {
3808                 .description = "tl2_ovlan_vid",
3809                 .field_bit_size = 12,
3810                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3811                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3812                 }
3813         },
3814         {
3815         .field_info_mask = {
3816                 .description = "mac1_addr",
3817                 .field_bit_size = 48,
3818                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3819                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3820                 },
3821         .field_info_spec = {
3822                 .description = "mac1_addr",
3823                 .field_bit_size = 48,
3824                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3825                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3826                 }
3827         },
3828         {
3829         .field_info_mask = {
3830                 .description = "l2_num_vtags",
3831                 .field_bit_size = 2,
3832                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3833                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3834                 },
3835         .field_info_spec = {
3836                 .description = "l2_num_vtags",
3837                 .field_bit_size = 2,
3838                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3839                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3840                 }
3841         },
3842         {
3843         .field_info_mask = {
3844                 .description = "tl2_num_vtags",
3845                 .field_bit_size = 2,
3846                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3847                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3848                 },
3849         .field_info_spec = {
3850                 .description = "tl2_num_vtags",
3851                 .field_bit_size = 2,
3852                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3853                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3854                 }
3855         },
3856         {
3857         .field_info_mask = {
3858                 .description = "tun_hdr_type",
3859                 .field_bit_size = 4,
3860                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3861                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3862                 },
3863         .field_info_spec = {
3864                 .description = "tun_hdr_type",
3865                 .field_bit_size = 4,
3866                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3867                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3868                 }
3869         },
3870         {
3871         .field_info_mask = {
3872                 .description = "key_type",
3873                 .field_bit_size = 2,
3874                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3875                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3876                 .field_opr1 = {
3877                         0xff}
3878                 },
3879         .field_info_spec = {
3880                 .description = "key_type",
3881                 .field_bit_size = 2,
3882                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3883                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3884                 }
3885         },
3886         {
3887         .field_info_mask = {
3888                 .description = "valid",
3889                 .field_bit_size = 1,
3890                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3891                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3892                 .field_opr1 = {
3893                         0xff}
3894                 },
3895         .field_info_spec = {
3896                 .description = "valid",
3897                 .field_bit_size = 1,
3898                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3899                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3900                 .field_opr1 = {
3901                         1}
3902                 }
3903         },
3904         /* class_tid: 5, wh_plus, table: l2_cntxt_tcam_cache.egr_wr */
3905         {
3906         .field_info_mask = {
3907                 .description = "svif",
3908                 .field_bit_size = 8,
3909                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3910                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3911                 .field_opr1 = {
3912                         0xff}
3913                 },
3914         .field_info_spec = {
3915                 .description = "svif",
3916                 .field_bit_size = 8,
3917                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3918                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3919                 .field_opr1 = {
3920                         (BNXT_ULP_CF_IDX_VF_FUNC_SVIF >> 8) & 0xff,
3921                         BNXT_ULP_CF_IDX_VF_FUNC_SVIF & 0xff}
3922                 }
3923         },
3924         /* class_tid: 5, wh_plus, table: l2_cntxt_tcam_bypass.ing */
3925         {
3926         .field_info_mask = {
3927                 .description = "l2_ivlan_vid",
3928                 .field_bit_size = 12,
3929                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3930                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3931                 },
3932         .field_info_spec = {
3933                 .description = "l2_ivlan_vid",
3934                 .field_bit_size = 12,
3935                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3936                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3937                 }
3938         },
3939         {
3940         .field_info_mask = {
3941                 .description = "l2_ovlan_vid",
3942                 .field_bit_size = 12,
3943                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3944                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3945                 },
3946         .field_info_spec = {
3947                 .description = "l2_ovlan_vid",
3948                 .field_bit_size = 12,
3949                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3950                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3951                 }
3952         },
3953         {
3954         .field_info_mask = {
3955                 .description = "mac0_addr",
3956                 .field_bit_size = 48,
3957                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3958                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3959                 },
3960         .field_info_spec = {
3961                 .description = "mac0_addr",
3962                 .field_bit_size = 48,
3963                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3964                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3965                 }
3966         },
3967         {
3968         .field_info_mask = {
3969                 .description = "svif",
3970                 .field_bit_size = 8,
3971                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3972                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3973                 .field_opr1 = {
3974                         0xff}
3975                 },
3976         .field_info_spec = {
3977                 .description = "svif",
3978                 .field_bit_size = 8,
3979                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3980                 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3981                 .field_opr1 = {
3982                         (BNXT_ULP_CF_IDX_VF_FUNC_SVIF >> 8) & 0xff,
3983                         BNXT_ULP_CF_IDX_VF_FUNC_SVIF & 0xff}
3984                 }
3985         },
3986         {
3987         .field_info_mask = {
3988                 .description = "sparif",
3989                 .field_bit_size = 4,
3990                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3991                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3992                 },
3993         .field_info_spec = {
3994                 .description = "sparif",
3995                 .field_bit_size = 4,
3996                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3997                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3998                 }
3999         },
4000         {
4001         .field_info_mask = {
4002                 .description = "tl2_ivlan_vid",
4003                 .field_bit_size = 12,
4004                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4005                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4006                 },
4007         .field_info_spec = {
4008                 .description = "tl2_ivlan_vid",
4009                 .field_bit_size = 12,
4010                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4011                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4012                 }
4013         },
4014         {
4015         .field_info_mask = {
4016                 .description = "tl2_ovlan_vid",
4017                 .field_bit_size = 12,
4018                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4019                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4020                 },
4021         .field_info_spec = {
4022                 .description = "tl2_ovlan_vid",
4023                 .field_bit_size = 12,
4024                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4025                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4026                 }
4027         },
4028         {
4029         .field_info_mask = {
4030                 .description = "mac1_addr",
4031                 .field_bit_size = 48,
4032                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4033                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4034                 },
4035         .field_info_spec = {
4036                 .description = "mac1_addr",
4037                 .field_bit_size = 48,
4038                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4039                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4040                 }
4041         },
4042         {
4043         .field_info_mask = {
4044                 .description = "l2_num_vtags",
4045                 .field_bit_size = 2,
4046                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4047                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4048                 },
4049         .field_info_spec = {
4050                 .description = "l2_num_vtags",
4051                 .field_bit_size = 2,
4052                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4053                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4054                 }
4055         },
4056         {
4057         .field_info_mask = {
4058                 .description = "tl2_num_vtags",
4059                 .field_bit_size = 2,
4060                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4061                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4062                 },
4063         .field_info_spec = {
4064                 .description = "tl2_num_vtags",
4065                 .field_bit_size = 2,
4066                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4067                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4068                 }
4069         },
4070         {
4071         .field_info_mask = {
4072                 .description = "tun_hdr_type",
4073                 .field_bit_size = 4,
4074                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4075                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4076                 },
4077         .field_info_spec = {
4078                 .description = "tun_hdr_type",
4079                 .field_bit_size = 4,
4080                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4081                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4082                 }
4083         },
4084         {
4085         .field_info_mask = {
4086                 .description = "key_type",
4087                 .field_bit_size = 2,
4088                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4089                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4090                 .field_opr1 = {
4091                         0xff}
4092                 },
4093         .field_info_spec = {
4094                 .description = "key_type",
4095                 .field_bit_size = 2,
4096                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4097                 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4098                 }
4099         },
4100         {
4101         .field_info_mask = {
4102                 .description = "valid",
4103                 .field_bit_size = 1,
4104                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4105                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4106                 .field_opr1 = {
4107                         0xff}
4108                 },
4109         .field_info_spec = {
4110                 .description = "valid",
4111                 .field_bit_size = 1,
4112                 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4113                 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4114                 .field_opr1 = {
4115                         1}
4116                 }
4117         }
4118 };
4119
4120 struct bnxt_ulp_mapper_field_info ulp_wh_plus_class_result_field_list[] = {
4121         /* class_tid: 1, wh_plus, table: l2_cntxt_tcam.0 */
4122         {
4123         .description = "l2_cntxt_id",
4124         .field_bit_size = 10,
4125         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4126         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4127         .field_opr1 = {
4128                 (BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 >> 8) & 0xff,
4129                 BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 & 0xff}
4130         },
4131         {
4132         .description = "prof_func_id",
4133         .field_bit_size = 7,
4134         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4135         .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
4136         .field_opr1 = {
4137                 (BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID >> 8) & 0xff,
4138                 BNXT_ULP_GLB_RF_IDX_L2_PROF_FUNC_ID & 0xff}
4139         },
4140         {
4141         .description = "l2_byp_lkup_en",
4142         .field_bit_size = 1,
4143         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4144         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4145         },
4146         {
4147         .description = "parif",
4148         .field_bit_size = 4,
4149         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4150         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4151         .field_opr1 = {
4152                 (BNXT_ULP_CF_IDX_PHY_PORT_PARIF >> 8) & 0xff,
4153                 BNXT_ULP_CF_IDX_PHY_PORT_PARIF & 0xff}
4154         },
4155         {
4156         .description = "allowed_pri",
4157         .field_bit_size = 8,
4158         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4159         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4160         },
4161         {
4162         .description = "default_pri",
4163         .field_bit_size = 3,
4164         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4165         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4166         },
4167         {
4168         .description = "allowed_tpid",
4169         .field_bit_size = 6,
4170         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4171         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4172         },
4173         {
4174         .description = "default_tpid",
4175         .field_bit_size = 3,
4176         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4177         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4178         },
4179         {
4180         .description = "bd_act_en",
4181         .field_bit_size = 1,
4182         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4183         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4184         },
4185         {
4186         .description = "sp_rec_ptr",
4187         .field_bit_size = 16,
4188         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4189         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4190         },
4191         {
4192         .description = "byp_sp_lkup",
4193         .field_bit_size = 1,
4194         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4195         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4196         .field_opr1 = {
4197                 1}
4198         },
4199         {
4200         .description = "pri_anti_spoof_ctl",
4201         .field_bit_size = 2,
4202         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4203         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4204         },
4205         {
4206         .description = "tpid_anti_spoof_ctl",
4207         .field_bit_size = 2,
4208         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4209         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4210         },
4211         /* class_tid: 1, wh_plus, table: profile_tcam.0 */
4212         {
4213         .description = "wc_key_id",
4214         .field_bit_size = 4,
4215         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4216         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4217         .field_opr1 = {
4218                 3}
4219         },
4220         {
4221         .description = "wc_profile_id",
4222         .field_bit_size = 8,
4223         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4224         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4225         },
4226         {
4227         .description = "wc_search_en",
4228         .field_bit_size = 1,
4229         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4230         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4231         },
4232         {
4233         .description = "em_key_mask",
4234         .field_bit_size = 10,
4235         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4236         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4237         .field_opr1 = {
4238                 (125 >> 8) & 0xff,
4239                 125 & 0xff}
4240         },
4241         {
4242         .description = "em_key_id",
4243         .field_bit_size = 5,
4244         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4245         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4246         .field_opr1 = {
4247                 3}
4248         },
4249         {
4250         .description = "em_profile_id",
4251         .field_bit_size = 8,
4252         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4253         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4254         .field_opr1 = {
4255                 (BNXT_ULP_RF_IDX_EM_PROFILE_ID_0 >> 8) & 0xff,
4256                 BNXT_ULP_RF_IDX_EM_PROFILE_ID_0 & 0xff}
4257         },
4258         {
4259         .description = "em_search_en",
4260         .field_bit_size = 1,
4261         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4262         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4263         .field_opr1 = {
4264                 1}
4265         },
4266         {
4267         .description = "pl_byp_lkup_en",
4268         .field_bit_size = 1,
4269         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4270         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4271         },
4272         /* class_tid: 1, wh_plus, table: profile_tcam_cache.wr */
4273         {
4274         .description = "rid",
4275         .field_bit_size = 32,
4276         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4277         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4278         .field_opr1 = {
4279                 (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
4280                 BNXT_ULP_RF_IDX_RID & 0xff}
4281         },
4282         {
4283         .description = "profile_tcam_index",
4284         .field_bit_size = 10,
4285         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4286         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4287         .field_opr1 = {
4288                 (BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0 >> 8) & 0xff,
4289                 BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0 & 0xff}
4290         },
4291         {
4292         .description = "em_profile_id",
4293         .field_bit_size = 8,
4294         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4295         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4296         .field_opr1 = {
4297                 (BNXT_ULP_RF_IDX_EM_PROFILE_ID_0 >> 8) & 0xff,
4298                 BNXT_ULP_RF_IDX_EM_PROFILE_ID_0 & 0xff}
4299         },
4300         {
4301         .description = "wm_profile_id",
4302         .field_bit_size = 8,
4303         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4304         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4305         },
4306         {
4307         .description = "flow_sig_id",
4308         .field_bit_size = 8,
4309         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4310         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4311         .field_opr1 = {
4312                 (BNXT_ULP_CF_IDX_FLOW_SIG_ID >> 8) & 0xff,
4313                 BNXT_ULP_CF_IDX_FLOW_SIG_ID & 0xff}
4314         },
4315         /* class_tid: 1, wh_plus, table: em.int_0 */
4316         {
4317         .description = "act_rec_ptr",
4318         .field_bit_size = 33,
4319         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4320         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4321         .field_opr1 = {
4322                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
4323                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
4324         },
4325         {
4326         .description = "ext_flow_cntr",
4327         .field_bit_size = 1,
4328         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4329         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4330         },
4331         {
4332         .description = "act_rec_int",
4333         .field_bit_size = 1,
4334         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4335         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4336         },
4337         {
4338         .description = "act_rec_size",
4339         .field_bit_size = 5,
4340         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4341         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4342         },
4343         {
4344         .description = "key_size",
4345         .field_bit_size = 9,
4346         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4347         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4348         },
4349         {
4350         .description = "reserved",
4351         .field_bit_size = 11,
4352         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4353         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4354         },
4355         {
4356         .description = "strength",
4357         .field_bit_size = 2,
4358         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4359         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4360         .field_opr1 = {
4361                 3}
4362         },
4363         {
4364         .description = "l1_cacheable",
4365         .field_bit_size = 1,
4366         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4367         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4368         },
4369         {
4370         .description = "valid",
4371         .field_bit_size = 1,
4372         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4373         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4374         .field_opr1 = {
4375                 1}
4376         },
4377         /* class_tid: 1, wh_plus, table: eem.ext_0 */
4378         {
4379         .description = "act_rec_ptr",
4380         .field_bit_size = 33,
4381         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4382         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4383         .field_opr1 = {
4384                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
4385                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
4386         },
4387         {
4388         .description = "ext_flow_cntr",
4389         .field_bit_size = 1,
4390         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4391         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4392         },
4393         {
4394         .description = "act_rec_int",
4395         .field_bit_size = 1,
4396         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4397         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4398         .field_opr1 = {
4399                 ULP_WP_SYM_EEM_ACT_REC_INT}
4400         },
4401         {
4402         .description = "act_rec_size",
4403         .field_bit_size = 5,
4404         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4405         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4406         .field_opr1 = {
4407                 (BNXT_ULP_RF_IDX_ACTION_REC_SIZE >> 8) & 0xff,
4408                 BNXT_ULP_RF_IDX_ACTION_REC_SIZE & 0xff}
4409         },
4410         {
4411         .description = "key_size",
4412         .field_bit_size = 9,
4413         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4414         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4415         .field_opr1 = {
4416                 (173 >> 8) & 0xff,
4417                 173 & 0xff}
4418         },
4419         {
4420         .description = "reserved",
4421         .field_bit_size = 11,
4422         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4423         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4424         },
4425         {
4426         .description = "strength",
4427         .field_bit_size = 2,
4428         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4429         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4430         .field_opr1 = {
4431                 3}
4432         },
4433         {
4434         .description = "l1_cacheable",
4435         .field_bit_size = 1,
4436         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4437         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4438         },
4439         {
4440         .description = "valid",
4441         .field_bit_size = 1,
4442         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4443         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4444         .field_opr1 = {
4445                 1}
4446         },
4447         /* class_tid: 2, wh_plus, table: int_full_act_record.0 */
4448         {
4449         .description = "flow_cntr_ptr",
4450         .field_bit_size = 14,
4451         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4452         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4453         },
4454         {
4455         .description = "age_enable",
4456         .field_bit_size = 1,
4457         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4458         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4459         },
4460         {
4461         .description = "agg_cntr_en",
4462         .field_bit_size = 1,
4463         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4464         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4465         },
4466         {
4467         .description = "rate_cntr_en",
4468         .field_bit_size = 1,
4469         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4470         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4471         },
4472         {
4473         .description = "flow_cntr_en",
4474         .field_bit_size = 1,
4475         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4476         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4477         },
4478         {
4479         .description = "tcpflags_key",
4480         .field_bit_size = 8,
4481         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4482         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4483         },
4484         {
4485         .description = "tcpflags_mir",
4486         .field_bit_size = 1,
4487         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4488         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4489         },
4490         {
4491         .description = "tcpflags_match",
4492         .field_bit_size = 1,
4493         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4494         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4495         },
4496         {
4497         .description = "encap_ptr",
4498         .field_bit_size = 11,
4499         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4500         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4501         },
4502         {
4503         .description = "dst_ip_ptr",
4504         .field_bit_size = 10,
4505         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4506         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4507         },
4508         {
4509         .description = "tcp_dst_port",
4510         .field_bit_size = 16,
4511         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4512         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4513         },
4514         {
4515         .description = "src_ip_ptr",
4516         .field_bit_size = 10,
4517         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4518         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4519         },
4520         {
4521         .description = "tcp_src_port",
4522         .field_bit_size = 16,
4523         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4524         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4525         },
4526         {
4527         .description = "meter_id",
4528         .field_bit_size = 10,
4529         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4530         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4531         },
4532         {
4533         .description = "l3_rdir",
4534         .field_bit_size = 1,
4535         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4536         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4537         },
4538         {
4539         .description = "tl3_rdir",
4540         .field_bit_size = 1,
4541         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4542         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4543         },
4544         {
4545         .description = "l3_ttl_dec",
4546         .field_bit_size = 1,
4547         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4548         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4549         },
4550         {
4551         .description = "tl3_ttl_dec",
4552         .field_bit_size = 1,
4553         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4554         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4555         },
4556         {
4557         .description = "decap_func",
4558         .field_bit_size = 4,
4559         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4560         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4561         },
4562         {
4563         .description = "vnic_or_vport",
4564         .field_bit_size = 12,
4565         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4566         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4567         .field_opr1 = {
4568                 (BNXT_ULP_CF_IDX_DRV_FUNC_VNIC >> 8) & 0xff,
4569                 BNXT_ULP_CF_IDX_DRV_FUNC_VNIC & 0xff}
4570         },
4571         {
4572         .description = "pop_vlan",
4573         .field_bit_size = 1,
4574         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4575         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4576         },
4577         {
4578         .description = "meter",
4579         .field_bit_size = 1,
4580         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4581         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4582         },
4583         {
4584         .description = "mirror",
4585         .field_bit_size = 2,
4586         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4587         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4588         },
4589         {
4590         .description = "drop",
4591         .field_bit_size = 1,
4592         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4593         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4594         },
4595         {
4596         .description = "hit",
4597         .field_bit_size = 1,
4598         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4599         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4600         },
4601         {
4602         .description = "type",
4603         .field_bit_size = 1,
4604         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4605         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4606         },
4607         /* class_tid: 2, wh_plus, table: l2_cntxt_tcam.0 */
4608         {
4609         .description = "l2_cntxt_id",
4610         .field_bit_size = 10,
4611         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4612         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4613         .field_opr1 = {
4614                 (BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 >> 8) & 0xff,
4615                 BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 & 0xff}
4616         },
4617         {
4618         .description = "prof_func_id",
4619         .field_bit_size = 7,
4620         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4621         .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
4622         .field_opr1 = {
4623                 (BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID >> 8) & 0xff,
4624                 BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID & 0xff}
4625         },
4626         {
4627         .description = "l2_byp_lkup_en",
4628         .field_bit_size = 1,
4629         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4630         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4631         },
4632         {
4633         .description = "parif",
4634         .field_bit_size = 4,
4635         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4636         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4637         .field_opr1 = {
4638                 (BNXT_ULP_CF_IDX_PHY_PORT_PARIF >> 8) & 0xff,
4639                 BNXT_ULP_CF_IDX_PHY_PORT_PARIF & 0xff}
4640         },
4641         {
4642         .description = "allowed_pri",
4643         .field_bit_size = 8,
4644         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4645         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4646         },
4647         {
4648         .description = "default_pri",
4649         .field_bit_size = 3,
4650         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4651         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4652         },
4653         {
4654         .description = "allowed_tpid",
4655         .field_bit_size = 6,
4656         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4657         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4658         },
4659         {
4660         .description = "default_tpid",
4661         .field_bit_size = 3,
4662         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4663         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4664         },
4665         {
4666         .description = "bd_act_en",
4667         .field_bit_size = 1,
4668         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4669         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4670         },
4671         {
4672         .description = "sp_rec_ptr",
4673         .field_bit_size = 16,
4674         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4675         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4676         },
4677         {
4678         .description = "byp_sp_lkup",
4679         .field_bit_size = 1,
4680         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4681         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4682         .field_opr1 = {
4683                 1}
4684         },
4685         {
4686         .description = "pri_anti_spoof_ctl",
4687         .field_bit_size = 2,
4688         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4689         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4690         },
4691         {
4692         .description = "tpid_anti_spoof_ctl",
4693         .field_bit_size = 2,
4694         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4695         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4696         },
4697         /* class_tid: 2, wh_plus, table: l2_cntxt_tcam_cache.wr */
4698         {
4699         .description = "rid",
4700         .field_bit_size = 32,
4701         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4702         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4703         .field_opr1 = {
4704                 (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
4705                 BNXT_ULP_RF_IDX_RID & 0xff}
4706         },
4707         {
4708         .description = "l2_cntxt_tcam_index",
4709         .field_bit_size = 10,
4710         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4711         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4712         .field_opr1 = {
4713                 (BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0 >> 8) & 0xff,
4714                 BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0 & 0xff}
4715         },
4716         {
4717         .description = "l2_cntxt_id",
4718         .field_bit_size = 10,
4719         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4720         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4721         .field_opr1 = {
4722                 (BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 >> 8) & 0xff,
4723                 BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 & 0xff}
4724         },
4725         {
4726         .description = "src_property_ptr",
4727         .field_bit_size = 10,
4728         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4729         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4730         },
4731         /* class_tid: 2, wh_plus, table: parif_def_lkup_arec_ptr.0 */
4732         {
4733         .description = "act_rec_ptr",
4734         .field_bit_size = 32,
4735         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4736         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4737         .field_opr1 = {
4738                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
4739                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
4740         },
4741         /* class_tid: 2, wh_plus, table: parif_def_arec_ptr.0 */
4742         {
4743         .description = "act_rec_ptr",
4744         .field_bit_size = 32,
4745         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4746         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4747         .field_opr1 = {
4748                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
4749                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
4750         },
4751         /* class_tid: 2, wh_plus, table: parif_def_err_arec_ptr.0 */
4752         {
4753         .description = "act_rec_ptr",
4754         .field_bit_size = 32,
4755         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4756         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4757         .field_opr1 = {
4758                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
4759                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
4760         },
4761         /* class_tid: 3, wh_plus, table: int_full_act_record.0 */
4762         {
4763         .description = "flow_cntr_ptr",
4764         .field_bit_size = 14,
4765         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4766         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4767         },
4768         {
4769         .description = "age_enable",
4770         .field_bit_size = 1,
4771         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4772         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4773         },
4774         {
4775         .description = "agg_cntr_en",
4776         .field_bit_size = 1,
4777         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4778         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4779         },
4780         {
4781         .description = "rate_cntr_en",
4782         .field_bit_size = 1,
4783         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4784         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4785         },
4786         {
4787         .description = "flow_cntr_en",
4788         .field_bit_size = 1,
4789         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4790         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4791         },
4792         {
4793         .description = "tcpflags_key",
4794         .field_bit_size = 8,
4795         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4796         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4797         },
4798         {
4799         .description = "tcpflags_mir",
4800         .field_bit_size = 1,
4801         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4802         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4803         },
4804         {
4805         .description = "tcpflags_match",
4806         .field_bit_size = 1,
4807         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4808         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4809         },
4810         {
4811         .description = "encap_ptr",
4812         .field_bit_size = 11,
4813         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4814         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4815         },
4816         {
4817         .description = "dst_ip_ptr",
4818         .field_bit_size = 10,
4819         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4820         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4821         },
4822         {
4823         .description = "tcp_dst_port",
4824         .field_bit_size = 16,
4825         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4826         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4827         },
4828         {
4829         .description = "src_ip_ptr",
4830         .field_bit_size = 10,
4831         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4832         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4833         },
4834         {
4835         .description = "tcp_src_port",
4836         .field_bit_size = 16,
4837         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4838         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4839         },
4840         {
4841         .description = "meter_id",
4842         .field_bit_size = 10,
4843         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4844         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4845         },
4846         {
4847         .description = "l3_rdir",
4848         .field_bit_size = 1,
4849         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4850         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4851         },
4852         {
4853         .description = "tl3_rdir",
4854         .field_bit_size = 1,
4855         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4856         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4857         },
4858         {
4859         .description = "l3_ttl_dec",
4860         .field_bit_size = 1,
4861         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4862         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4863         },
4864         {
4865         .description = "tl3_ttl_dec",
4866         .field_bit_size = 1,
4867         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4868         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4869         },
4870         {
4871         .description = "decap_func",
4872         .field_bit_size = 4,
4873         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4874         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4875         },
4876         {
4877         .description = "vnic_or_vport",
4878         .field_bit_size = 12,
4879         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4880         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4881         .field_opr1 = {
4882                 (BNXT_ULP_CF_IDX_PHY_PORT_VPORT >> 8) & 0xff,
4883                 BNXT_ULP_CF_IDX_PHY_PORT_VPORT & 0xff}
4884         },
4885         {
4886         .description = "pop_vlan",
4887         .field_bit_size = 1,
4888         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4889         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4890         },
4891         {
4892         .description = "meter",
4893         .field_bit_size = 1,
4894         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4895         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4896         },
4897         {
4898         .description = "mirror",
4899         .field_bit_size = 2,
4900         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4901         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4902         },
4903         {
4904         .description = "drop",
4905         .field_bit_size = 1,
4906         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4907         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4908         },
4909         {
4910         .description = "hit",
4911         .field_bit_size = 1,
4912         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4913         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4914         },
4915         {
4916         .description = "type",
4917         .field_bit_size = 1,
4918         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4919         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4920         },
4921         /* class_tid: 3, wh_plus, table: l2_cntxt_tcam_bypass.vfr_0 */
4922         {
4923         .description = "act_record_ptr",
4924         .field_bit_size = 16,
4925         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4926         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4927         },
4928         {
4929         .description = "reserved",
4930         .field_bit_size = 1,
4931         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4932         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4933         },
4934         {
4935         .description = "l2_byp_lkup_en",
4936         .field_bit_size = 1,
4937         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4938         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4939         .field_opr1 = {
4940                 1}
4941         },
4942         {
4943         .description = "parif",
4944         .field_bit_size = 4,
4945         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4946         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4947         .field_opr1 = {
4948                 (BNXT_ULP_CF_IDX_DRV_FUNC_PARIF >> 8) & 0xff,
4949                 BNXT_ULP_CF_IDX_DRV_FUNC_PARIF & 0xff}
4950         },
4951         {
4952         .description = "allowed_pri",
4953         .field_bit_size = 8,
4954         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4955         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4956         },
4957         {
4958         .description = "default_pri",
4959         .field_bit_size = 3,
4960         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4961         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4962         },
4963         {
4964         .description = "allowed_tpid",
4965         .field_bit_size = 6,
4966         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4967         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4968         },
4969         {
4970         .description = "default_tpid",
4971         .field_bit_size = 3,
4972         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4973         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4974         },
4975         {
4976         .description = "bd_act_en",
4977         .field_bit_size = 1,
4978         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4979         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4980         .field_opr1 = {
4981                 1}
4982         },
4983         {
4984         .description = "sp_rec_ptr",
4985         .field_bit_size = 16,
4986         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4987         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4988         },
4989         {
4990         .description = "byp_sp_lkup",
4991         .field_bit_size = 1,
4992         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4993         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4994         .field_opr1 = {
4995                 1}
4996         },
4997         {
4998         .description = "pri_anti_spoof_ctl",
4999         .field_bit_size = 2,
5000         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5001         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5002         },
5003         {
5004         .description = "tpid_anti_spoof_ctl",
5005         .field_bit_size = 2,
5006         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5007         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5008         },
5009         /* class_tid: 3, wh_plus, table: l2_cntxt_tcam.0 */
5010         {
5011         .description = "l2_cntxt_id",
5012         .field_bit_size = 10,
5013         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5014         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5015         .field_opr1 = {
5016                 (BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 >> 8) & 0xff,
5017                 BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 & 0xff}
5018         },
5019         {
5020         .description = "prof_func_id",
5021         .field_bit_size = 7,
5022         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5023         .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
5024         .field_opr1 = {
5025                 (BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID >> 8) & 0xff,
5026                 BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID & 0xff}
5027         },
5028         {
5029         .description = "l2_byp_lkup_en",
5030         .field_bit_size = 1,
5031         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5032         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5033         },
5034         {
5035         .description = "parif",
5036         .field_bit_size = 4,
5037         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5038         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
5039         .field_opr1 = {
5040                 (BNXT_ULP_CF_IDX_DRV_FUNC_PARIF >> 8) & 0xff,
5041                 BNXT_ULP_CF_IDX_DRV_FUNC_PARIF & 0xff}
5042         },
5043         {
5044         .description = "allowed_pri",
5045         .field_bit_size = 8,
5046         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5047         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5048         },
5049         {
5050         .description = "default_pri",
5051         .field_bit_size = 3,
5052         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5053         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5054         },
5055         {
5056         .description = "allowed_tpid",
5057         .field_bit_size = 6,
5058         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5059         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5060         },
5061         {
5062         .description = "default_tpid",
5063         .field_bit_size = 3,
5064         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5065         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5066         },
5067         {
5068         .description = "bd_act_en",
5069         .field_bit_size = 1,
5070         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5071         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5072         },
5073         {
5074         .description = "sp_rec_ptr",
5075         .field_bit_size = 16,
5076         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5077         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5078         },
5079         {
5080         .description = "byp_sp_lkup",
5081         .field_bit_size = 1,
5082         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5083         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5084         .field_opr1 = {
5085                 1}
5086         },
5087         {
5088         .description = "pri_anti_spoof_ctl",
5089         .field_bit_size = 2,
5090         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5091         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5092         },
5093         {
5094         .description = "tpid_anti_spoof_ctl",
5095         .field_bit_size = 2,
5096         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5097         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5098         },
5099         /* class_tid: 3, wh_plus, table: l2_cntxt_tcam_cache.wr */
5100         {
5101         .description = "rid",
5102         .field_bit_size = 32,
5103         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5104         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5105         .field_opr1 = {
5106                 (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
5107                 BNXT_ULP_RF_IDX_RID & 0xff}
5108         },
5109         {
5110         .description = "l2_cntxt_tcam_index",
5111         .field_bit_size = 10,
5112         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5113         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5114         .field_opr1 = {
5115                 (BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0 >> 8) & 0xff,
5116                 BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0 & 0xff}
5117         },
5118         {
5119         .description = "l2_cntxt_id",
5120         .field_bit_size = 10,
5121         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5122         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5123         .field_opr1 = {
5124                 (BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 >> 8) & 0xff,
5125                 BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 & 0xff}
5126         },
5127         {
5128         .description = "src_property_ptr",
5129         .field_bit_size = 10,
5130         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5131         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5132         },
5133         /* class_tid: 3, wh_plus, table: parif_def_lkup_arec_ptr.0 */
5134         {
5135         .description = "act_rec_ptr",
5136         .field_bit_size = 32,
5137         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5138         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5139         .field_opr1 = {
5140                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
5141                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
5142         },
5143         /* class_tid: 3, wh_plus, table: parif_def_arec_ptr.0 */
5144         {
5145         .description = "act_rec_ptr",
5146         .field_bit_size = 32,
5147         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5148         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5149         .field_opr1 = {
5150                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
5151                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
5152         },
5153         /* class_tid: 3, wh_plus, table: parif_def_err_arec_ptr.0 */
5154         {
5155         .description = "act_rec_ptr",
5156         .field_bit_size = 32,
5157         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5158         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5159         .field_opr1 = {
5160                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
5161                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
5162         },
5163         /* class_tid: 4, wh_plus, table: int_vtag_encap_record.egr0 */
5164         {
5165         .description = "ecv_tun_type",
5166         .field_bit_size = 3,
5167         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5168         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5169         },
5170         {
5171         .description = "ecv_l4_type",
5172         .field_bit_size = 3,
5173         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5174         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5175         },
5176         {
5177         .description = "ecv_l3_type",
5178         .field_bit_size = 3,
5179         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5180         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5181         },
5182         {
5183         .description = "ecv_l2_en",
5184         .field_bit_size = 1,
5185         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5186         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5187         },
5188         {
5189         .description = "ecv_vtag_type",
5190         .field_bit_size = 4,
5191         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5192         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5193         .field_opr1 = {
5194                 ULP_WP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
5195         },
5196         {
5197         .description = "ecv_custom_en",
5198         .field_bit_size = 1,
5199         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5200         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5201         },
5202         {
5203         .description = "ecv_valid",
5204         .field_bit_size = 1,
5205         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5206         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5207         },
5208         {
5209         .description = "vtag_tpid",
5210         .field_bit_size = 16,
5211         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5212         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5213         .field_opr1 = {
5214                 0x81,
5215                 0x00}
5216         },
5217         {
5218         .description = "vtag_vid",
5219         .field_bit_size = 12,
5220         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5221         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
5222         .field_opr1 = {
5223                 (BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
5224                 BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff}
5225         },
5226         {
5227         .description = "vtag_de",
5228         .field_bit_size = 1,
5229         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5230         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5231         },
5232         {
5233         .description = "vtag_pcp",
5234         .field_bit_size = 3,
5235         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5236         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5237         },
5238         {
5239         .description = "spare",
5240         .field_bit_size = 80,
5241         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5242         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5243         },
5244         /* class_tid: 4, wh_plus, table: int_full_act_record.egr0 */
5245         {
5246         .description = "flow_cntr_ptr",
5247         .field_bit_size = 14,
5248         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5249         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5250         },
5251         {
5252         .description = "age_enable",
5253         .field_bit_size = 1,
5254         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5255         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5256         },
5257         {
5258         .description = "agg_cntr_en",
5259         .field_bit_size = 1,
5260         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5261         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5262         },
5263         {
5264         .description = "rate_cntr_en",
5265         .field_bit_size = 1,
5266         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5267         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5268         },
5269         {
5270         .description = "flow_cntr_en",
5271         .field_bit_size = 1,
5272         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5273         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5274         },
5275         {
5276         .description = "tcpflags_key",
5277         .field_bit_size = 8,
5278         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5279         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5280         },
5281         {
5282         .description = "tcpflags_mir",
5283         .field_bit_size = 1,
5284         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5285         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5286         },
5287         {
5288         .description = "tcpflags_match",
5289         .field_bit_size = 1,
5290         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5291         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5292         },
5293         {
5294         .description = "encap_ptr",
5295         .field_bit_size = 11,
5296         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5297         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5298         .field_opr1 = {
5299                 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
5300                 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
5301         },
5302         {
5303         .description = "dst_ip_ptr",
5304         .field_bit_size = 10,
5305         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5306         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5307         },
5308         {
5309         .description = "tcp_dst_port",
5310         .field_bit_size = 16,
5311         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5312         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5313         },
5314         {
5315         .description = "src_ip_ptr",
5316         .field_bit_size = 10,
5317         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5318         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5319         },
5320         {
5321         .description = "tcp_src_port",
5322         .field_bit_size = 16,
5323         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5324         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5325         },
5326         {
5327         .description = "meter_id",
5328         .field_bit_size = 10,
5329         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5330         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5331         },
5332         {
5333         .description = "l3_rdir",
5334         .field_bit_size = 1,
5335         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5336         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5337         },
5338         {
5339         .description = "tl3_rdir",
5340         .field_bit_size = 1,
5341         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5342         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5343         },
5344         {
5345         .description = "l3_ttl_dec",
5346         .field_bit_size = 1,
5347         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5348         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5349         },
5350         {
5351         .description = "tl3_ttl_dec",
5352         .field_bit_size = 1,
5353         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5354         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5355         },
5356         {
5357         .description = "decap_func",
5358         .field_bit_size = 4,
5359         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5360         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5361         },
5362         {
5363         .description = "vnic_or_vport",
5364         .field_bit_size = 12,
5365         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5366         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5367         .field_opr1 = {
5368                 (ULP_WP_SYM_LOOPBACK_PORT >> 8) & 0xff,
5369                 ULP_WP_SYM_LOOPBACK_PORT & 0xff}
5370         },
5371         {
5372         .description = "pop_vlan",
5373         .field_bit_size = 1,
5374         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5375         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5376         },
5377         {
5378         .description = "meter",
5379         .field_bit_size = 1,
5380         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5381         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5382         },
5383         {
5384         .description = "mirror",
5385         .field_bit_size = 2,
5386         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5387         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5388         },
5389         {
5390         .description = "drop",
5391         .field_bit_size = 1,
5392         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5393         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5394         },
5395         {
5396         .description = "hit",
5397         .field_bit_size = 1,
5398         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5399         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5400         },
5401         {
5402         .description = "type",
5403         .field_bit_size = 1,
5404         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5405         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5406         },
5407         /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_bypass.egr0 */
5408         {
5409         .description = "act_record_ptr",
5410         .field_bit_size = 16,
5411         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5412         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5413         },
5414         {
5415         .description = "reserved",
5416         .field_bit_size = 1,
5417         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5418         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5419         },
5420         {
5421         .description = "l2_byp_lkup_en",
5422         .field_bit_size = 1,
5423         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5424         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5425         .field_opr1 = {
5426                 1}
5427         },
5428         {
5429         .description = "parif",
5430         .field_bit_size = 4,
5431         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5432         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5433         },
5434         {
5435         .description = "allowed_pri",
5436         .field_bit_size = 8,
5437         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5438         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5439         },
5440         {
5441         .description = "default_pri",
5442         .field_bit_size = 3,
5443         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5444         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5445         },
5446         {
5447         .description = "allowed_tpid",
5448         .field_bit_size = 6,
5449         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5450         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5451         },
5452         {
5453         .description = "default_tpid",
5454         .field_bit_size = 3,
5455         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5456         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5457         },
5458         {
5459         .description = "bd_act_en",
5460         .field_bit_size = 1,
5461         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5462         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5463         .field_opr1 = {
5464                 1}
5465         },
5466         {
5467         .description = "sp_rec_ptr",
5468         .field_bit_size = 16,
5469         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5470         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5471         },
5472         {
5473         .description = "byp_sp_lkup",
5474         .field_bit_size = 1,
5475         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5476         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5477         .field_opr1 = {
5478                 1}
5479         },
5480         {
5481         .description = "pri_anti_spoof_ctl",
5482         .field_bit_size = 2,
5483         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5484         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5485         },
5486         {
5487         .description = "tpid_anti_spoof_ctl",
5488         .field_bit_size = 2,
5489         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5490         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5491         },
5492         /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_cache.wr_egr0 */
5493         {
5494         .description = "rid",
5495         .field_bit_size = 32,
5496         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5497         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5498         .field_opr1 = {
5499                 (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
5500                 BNXT_ULP_RF_IDX_RID & 0xff}
5501         },
5502         {
5503         .description = "l2_cntxt_tcam_index",
5504         .field_bit_size = 10,
5505         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5506         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5507         .field_opr1 = {
5508                 (BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0 >> 8) & 0xff,
5509                 BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0 & 0xff}
5510         },
5511         {
5512         .description = "l2_cntxt_id",
5513         .field_bit_size = 10,
5514         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5515         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5516         },
5517         {
5518         .description = "src_property_ptr",
5519         .field_bit_size = 10,
5520         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5521         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5522         },
5523         /* class_tid: 4, wh_plus, table: int_full_act_record.ing0 */
5524         {
5525         .description = "flow_cntr_ptr",
5526         .field_bit_size = 14,
5527         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5528         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5529         },
5530         {
5531         .description = "age_enable",
5532         .field_bit_size = 1,
5533         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5534         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5535         },
5536         {
5537         .description = "agg_cntr_en",
5538         .field_bit_size = 1,
5539         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5540         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5541         },
5542         {
5543         .description = "rate_cntr_en",
5544         .field_bit_size = 1,
5545         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5546         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5547         },
5548         {
5549         .description = "flow_cntr_en",
5550         .field_bit_size = 1,
5551         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5552         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5553         },
5554         {
5555         .description = "tcpflags_key",
5556         .field_bit_size = 8,
5557         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5558         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5559         },
5560         {
5561         .description = "tcpflags_mir",
5562         .field_bit_size = 1,
5563         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5564         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5565         },
5566         {
5567         .description = "tcpflags_match",
5568         .field_bit_size = 1,
5569         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5570         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5571         },
5572         {
5573         .description = "encap_ptr",
5574         .field_bit_size = 11,
5575         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5576         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5577         },
5578         {
5579         .description = "dst_ip_ptr",
5580         .field_bit_size = 10,
5581         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5582         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5583         },
5584         {
5585         .description = "tcp_dst_port",
5586         .field_bit_size = 16,
5587         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5588         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5589         },
5590         {
5591         .description = "src_ip_ptr",
5592         .field_bit_size = 10,
5593         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5594         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5595         },
5596         {
5597         .description = "tcp_src_port",
5598         .field_bit_size = 16,
5599         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5600         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5601         },
5602         {
5603         .description = "meter_id",
5604         .field_bit_size = 10,
5605         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5606         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5607         },
5608         {
5609         .description = "l3_rdir",
5610         .field_bit_size = 1,
5611         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5612         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5613         },
5614         {
5615         .description = "tl3_rdir",
5616         .field_bit_size = 1,
5617         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5618         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5619         },
5620         {
5621         .description = "l3_ttl_dec",
5622         .field_bit_size = 1,
5623         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5624         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5625         },
5626         {
5627         .description = "tl3_ttl_dec",
5628         .field_bit_size = 1,
5629         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5630         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5631         },
5632         {
5633         .description = "decap_func",
5634         .field_bit_size = 4,
5635         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5636         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5637         },
5638         {
5639         .description = "vnic_or_vport",
5640         .field_bit_size = 12,
5641         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5642         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
5643         .field_opr1 = {
5644                 (BNXT_ULP_CF_IDX_VF_FUNC_VNIC >> 8) & 0xff,
5645                 BNXT_ULP_CF_IDX_VF_FUNC_VNIC & 0xff}
5646         },
5647         {
5648         .description = "pop_vlan",
5649         .field_bit_size = 1,
5650         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5651         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5652         .field_opr1 = {
5653                 1}
5654         },
5655         {
5656         .description = "meter",
5657         .field_bit_size = 1,
5658         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5659         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5660         },
5661         {
5662         .description = "mirror",
5663         .field_bit_size = 2,
5664         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5665         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5666         },
5667         {
5668         .description = "drop",
5669         .field_bit_size = 1,
5670         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5671         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5672         },
5673         {
5674         .description = "hit",
5675         .field_bit_size = 1,
5676         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5677         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5678         },
5679         {
5680         .description = "type",
5681         .field_bit_size = 1,
5682         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5683         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5684         },
5685         /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_bypass.dtagged_ing0 */
5686         {
5687         .description = "act_record_ptr",
5688         .field_bit_size = 16,
5689         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5690         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5691         .field_opr1 = {
5692                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
5693                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
5694         },
5695         {
5696         .description = "reserved",
5697         .field_bit_size = 1,
5698         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5699         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5700         },
5701         {
5702         .description = "l2_byp_lkup_en",
5703         .field_bit_size = 1,
5704         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5705         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5706         .field_opr1 = {
5707                 1}
5708         },
5709         {
5710         .description = "parif",
5711         .field_bit_size = 4,
5712         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5713         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5714         },
5715         {
5716         .description = "allowed_pri",
5717         .field_bit_size = 8,
5718         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5719         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5720         },
5721         {
5722         .description = "default_pri",
5723         .field_bit_size = 3,
5724         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5725         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5726         },
5727         {
5728         .description = "allowed_tpid",
5729         .field_bit_size = 6,
5730         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5731         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5732         },
5733         {
5734         .description = "default_tpid",
5735         .field_bit_size = 3,
5736         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5737         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5738         },
5739         {
5740         .description = "bd_act_en",
5741         .field_bit_size = 1,
5742         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5743         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5744         },
5745         {
5746         .description = "sp_rec_ptr",
5747         .field_bit_size = 16,
5748         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5749         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5750         },
5751         {
5752         .description = "byp_sp_lkup",
5753         .field_bit_size = 1,
5754         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5755         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5756         .field_opr1 = {
5757                 1}
5758         },
5759         {
5760         .description = "pri_anti_spoof_ctl",
5761         .field_bit_size = 2,
5762         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5763         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5764         },
5765         {
5766         .description = "tpid_anti_spoof_ctl",
5767         .field_bit_size = 2,
5768         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5769         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5770         },
5771         /* class_tid: 4, wh_plus, table: l2_cntxt_tcam_bypass.stagged_ing0 */
5772         {
5773         .description = "act_record_ptr",
5774         .field_bit_size = 16,
5775         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5776         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5777         .field_opr1 = {
5778                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
5779                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
5780         },
5781         {
5782         .description = "reserved",
5783         .field_bit_size = 1,
5784         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5785         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5786         },
5787         {
5788         .description = "l2_byp_lkup_en",
5789         .field_bit_size = 1,
5790         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5791         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5792         .field_opr1 = {
5793                 1}
5794         },
5795         {
5796         .description = "parif",
5797         .field_bit_size = 4,
5798         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5799         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5800         },
5801         {
5802         .description = "allowed_pri",
5803         .field_bit_size = 8,
5804         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5805         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5806         },
5807         {
5808         .description = "default_pri",
5809         .field_bit_size = 3,
5810         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5811         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5812         },
5813         {
5814         .description = "allowed_tpid",
5815         .field_bit_size = 6,
5816         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5817         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5818         },
5819         {
5820         .description = "default_tpid",
5821         .field_bit_size = 3,
5822         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5823         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5824         },
5825         {
5826         .description = "bd_act_en",
5827         .field_bit_size = 1,
5828         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5829         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5830         },
5831         {
5832         .description = "sp_rec_ptr",
5833         .field_bit_size = 16,
5834         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5835         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5836         },
5837         {
5838         .description = "byp_sp_lkup",
5839         .field_bit_size = 1,
5840         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5841         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5842         .field_opr1 = {
5843                 1}
5844         },
5845         {
5846         .description = "pri_anti_spoof_ctl",
5847         .field_bit_size = 2,
5848         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5849         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5850         },
5851         {
5852         .description = "tpid_anti_spoof_ctl",
5853         .field_bit_size = 2,
5854         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5855         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5856         },
5857         /* class_tid: 5, wh_plus, table: l2_cntxt_tcam.egr */
5858         {
5859         .description = "l2_cntxt_id",
5860         .field_bit_size = 10,
5861         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5862         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5863         .field_opr1 = {
5864                 (BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 >> 8) & 0xff,
5865                 BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 & 0xff}
5866         },
5867         {
5868         .description = "prof_func_id",
5869         .field_bit_size = 7,
5870         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5871         .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
5872         .field_opr1 = {
5873                 (BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID >> 8) & 0xff,
5874                 BNXT_ULP_GLB_RF_IDX_GLB_PROF_FUNC_ID & 0xff}
5875         },
5876         {
5877         .description = "l2_byp_lkup_en",
5878         .field_bit_size = 1,
5879         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5880         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5881         },
5882         {
5883         .description = "parif",
5884         .field_bit_size = 4,
5885         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5886         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
5887         .field_opr1 = {
5888                 (BNXT_ULP_CF_IDX_VF_FUNC_PARIF >> 8) & 0xff,
5889                 BNXT_ULP_CF_IDX_VF_FUNC_PARIF & 0xff}
5890         },
5891         {
5892         .description = "allowed_pri",
5893         .field_bit_size = 8,
5894         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5895         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5896         },
5897         {
5898         .description = "default_pri",
5899         .field_bit_size = 3,
5900         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5901         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5902         },
5903         {
5904         .description = "allowed_tpid",
5905         .field_bit_size = 6,
5906         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5907         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5908         },
5909         {
5910         .description = "default_tpid",
5911         .field_bit_size = 3,
5912         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5913         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5914         },
5915         {
5916         .description = "bd_act_en",
5917         .field_bit_size = 1,
5918         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5919         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5920         },
5921         {
5922         .description = "sp_rec_ptr",
5923         .field_bit_size = 16,
5924         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5925         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5926         },
5927         {
5928         .description = "byp_sp_lkup",
5929         .field_bit_size = 1,
5930         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5931         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5932         .field_opr1 = {
5933                 1}
5934         },
5935         {
5936         .description = "pri_anti_spoof_ctl",
5937         .field_bit_size = 2,
5938         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5939         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5940         },
5941         {
5942         .description = "tpid_anti_spoof_ctl",
5943         .field_bit_size = 2,
5944         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5945         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5946         },
5947         /* class_tid: 5, wh_plus, table: l2_cntxt_tcam_cache.egr_wr */
5948         {
5949         .description = "rid",
5950         .field_bit_size = 32,
5951         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5952         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5953         .field_opr1 = {
5954                 (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
5955                 BNXT_ULP_RF_IDX_RID & 0xff}
5956         },
5957         {
5958         .description = "l2_cntxt_tcam_index",
5959         .field_bit_size = 10,
5960         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5961         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5962         .field_opr1 = {
5963                 (BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0 >> 8) & 0xff,
5964                 BNXT_ULP_RF_IDX_L2_CNTXT_TCAM_INDEX_0 & 0xff}
5965         },
5966         {
5967         .description = "l2_cntxt_id",
5968         .field_bit_size = 10,
5969         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5970         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5971         .field_opr1 = {
5972                 (BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 >> 8) & 0xff,
5973                 BNXT_ULP_RF_IDX_L2_CNTXT_ID_0 & 0xff}
5974         },
5975         {
5976         .description = "src_property_ptr",
5977         .field_bit_size = 10,
5978         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5979         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5980         },
5981         /* class_tid: 5, wh_plus, table: parif_def_lkup_arec_ptr.egr */
5982         {
5983         .description = "act_rec_ptr",
5984         .field_bit_size = 32,
5985         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5986         .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
5987         .field_opr1 = {
5988                 (BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR >> 8) & 0xff,
5989                 BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR & 0xff}
5990         },
5991         /* class_tid: 5, wh_plus, table: parif_def_arec_ptr.egr */
5992         {
5993         .description = "act_rec_ptr",
5994         .field_bit_size = 32,
5995         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5996         .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
5997         .field_opr1 = {
5998                 (BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR >> 8) & 0xff,
5999                 BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR & 0xff}
6000         },
6001         /* class_tid: 5, wh_plus, table: parif_def_err_arec_ptr.egr */
6002         {
6003         .description = "act_rec_ptr",
6004         .field_bit_size = 32,
6005         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6006         .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
6007         .field_opr1 = {
6008                 (BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR >> 8) & 0xff,
6009                 BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR & 0xff}
6010         },
6011         /* class_tid: 5, wh_plus, table: int_full_act_record.ing */
6012         {
6013         .description = "flow_cntr_ptr",
6014         .field_bit_size = 14,
6015         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6016         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6017         },
6018         {
6019         .description = "age_enable",
6020         .field_bit_size = 1,
6021         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6022         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6023         },
6024         {
6025         .description = "agg_cntr_en",
6026         .field_bit_size = 1,
6027         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6028         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6029         },
6030         {
6031         .description = "rate_cntr_en",
6032         .field_bit_size = 1,
6033         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6034         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6035         },
6036         {
6037         .description = "flow_cntr_en",
6038         .field_bit_size = 1,
6039         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6040         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6041         },
6042         {
6043         .description = "tcpflags_key",
6044         .field_bit_size = 8,
6045         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6046         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6047         },
6048         {
6049         .description = "tcpflags_mir",
6050         .field_bit_size = 1,
6051         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6052         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6053         },
6054         {
6055         .description = "tcpflags_match",
6056         .field_bit_size = 1,
6057         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6058         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6059         },
6060         {
6061         .description = "encap_ptr",
6062         .field_bit_size = 11,
6063         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6064         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6065         },
6066         {
6067         .description = "dst_ip_ptr",
6068         .field_bit_size = 10,
6069         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6070         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6071         },
6072         {
6073         .description = "tcp_dst_port",
6074         .field_bit_size = 16,
6075         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6076         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6077         },
6078         {
6079         .description = "src_ip_ptr",
6080         .field_bit_size = 10,
6081         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6082         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6083         },
6084         {
6085         .description = "tcp_src_port",
6086         .field_bit_size = 16,
6087         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6088         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6089         },
6090         {
6091         .description = "meter_id",
6092         .field_bit_size = 10,
6093         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6094         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6095         },
6096         {
6097         .description = "l3_rdir",
6098         .field_bit_size = 1,
6099         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6100         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6101         },
6102         {
6103         .description = "tl3_rdir",
6104         .field_bit_size = 1,
6105         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6106         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6107         },
6108         {
6109         .description = "l3_ttl_dec",
6110         .field_bit_size = 1,
6111         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6112         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6113         },
6114         {
6115         .description = "tl3_ttl_dec",
6116         .field_bit_size = 1,
6117         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6118         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6119         },
6120         {
6121         .description = "decap_func",
6122         .field_bit_size = 4,
6123         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6124         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6125         },
6126         {
6127         .description = "vnic_or_vport",
6128         .field_bit_size = 12,
6129         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6130         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
6131         .field_opr1 = {
6132                 (BNXT_ULP_CF_IDX_DRV_FUNC_VNIC >> 8) & 0xff,
6133                 BNXT_ULP_CF_IDX_DRV_FUNC_VNIC & 0xff}
6134         },
6135         {
6136         .description = "pop_vlan",
6137         .field_bit_size = 1,
6138         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6139         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6140         },
6141         {
6142         .description = "meter",
6143         .field_bit_size = 1,
6144         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6145         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6146         },
6147         {
6148         .description = "mirror",
6149         .field_bit_size = 2,
6150         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6151         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6152         },
6153         {
6154         .description = "drop",
6155         .field_bit_size = 1,
6156         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6157         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6158         },
6159         {
6160         .description = "hit",
6161         .field_bit_size = 1,
6162         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6163         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6164         },
6165         {
6166         .description = "type",
6167         .field_bit_size = 1,
6168         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6169         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6170         },
6171         /* class_tid: 5, wh_plus, table: l2_cntxt_tcam_bypass.ing */
6172         {
6173         .description = "act_record_ptr",
6174         .field_bit_size = 16,
6175         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6176         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
6177         .field_opr1 = {
6178                 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
6179                 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
6180         },
6181         {
6182         .description = "reserved",
6183         .field_bit_size = 1,
6184         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6185         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6186         },
6187         {
6188         .description = "l2_byp_lkup_en",
6189         .field_bit_size = 1,
6190         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6191         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
6192         .field_opr1 = {
6193                 1}
6194         },
6195         {
6196         .description = "parif",
6197         .field_bit_size = 4,
6198         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6199         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6200         },
6201         {
6202         .description = "allowed_pri",
6203         .field_bit_size = 8,
6204         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6205         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6206         },
6207         {
6208         .description = "default_pri",
6209         .field_bit_size = 3,
6210         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6211         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6212         },
6213         {
6214         .description = "allowed_tpid",
6215         .field_bit_size = 6,
6216         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6217         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6218         },
6219         {
6220         .description = "default_tpid",
6221         .field_bit_size = 3,
6222         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6223         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6224         },
6225         {
6226         .description = "bd_act_en",
6227         .field_bit_size = 1,
6228         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6229         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6230         },
6231         {
6232         .description = "sp_rec_ptr",
6233         .field_bit_size = 16,
6234         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6235         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6236         },
6237         {
6238         .description = "byp_sp_lkup",
6239         .field_bit_size = 1,
6240         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6241         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
6242         .field_opr1 = {
6243                 1}
6244         },
6245         {
6246         .description = "pri_anti_spoof_ctl",
6247         .field_bit_size = 2,
6248         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6249         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6250         },
6251         {
6252         .description = "tpid_anti_spoof_ctl",
6253         .field_bit_size = 2,
6254         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6255         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6256         },
6257         /* class_tid: 6, wh_plus, table: int_full_act_record.0 */
6258         {
6259         .description = "flow_cntr_ptr",
6260         .field_bit_size = 14,
6261         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6262         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6263         },
6264         {
6265         .description = "age_enable",
6266         .field_bit_size = 1,
6267         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6268         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6269         },
6270         {
6271         .description = "agg_cntr_en",
6272         .field_bit_size = 1,
6273         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6274         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6275         },
6276         {
6277         .description = "rate_cntr_en",
6278         .field_bit_size = 1,
6279         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6280         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6281         },
6282         {
6283         .description = "flow_cntr_en",
6284         .field_bit_size = 1,
6285         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6286         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6287         },
6288         {
6289         .description = "tcpflags_key",
6290         .field_bit_size = 8,
6291         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6292         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6293         },
6294         {
6295         .description = "tcpflags_mir",
6296         .field_bit_size = 1,
6297         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6298         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6299         },
6300         {
6301         .description = "tcpflags_match",
6302         .field_bit_size = 1,
6303         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6304         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6305         },
6306         {
6307         .description = "encap_ptr",
6308         .field_bit_size = 11,
6309         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6310         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6311         },
6312         {
6313         .description = "dst_ip_ptr",
6314         .field_bit_size = 10,
6315         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6316         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6317         },
6318         {
6319         .description = "tcp_dst_port",
6320         .field_bit_size = 16,
6321         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6322         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6323         },
6324         {
6325         .description = "src_ip_ptr",
6326         .field_bit_size = 10,
6327         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6328         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6329         },
6330         {
6331         .description = "tcp_src_port",
6332         .field_bit_size = 16,
6333         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6334         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6335         },
6336         {
6337         .description = "meter_id",
6338         .field_bit_size = 10,
6339         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6340         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6341         },
6342         {
6343         .description = "l3_rdir",
6344         .field_bit_size = 1,
6345         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6346         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6347         },
6348         {
6349         .description = "tl3_rdir",
6350         .field_bit_size = 1,
6351         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6352         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6353         },
6354         {
6355         .description = "l3_ttl_dec",
6356         .field_bit_size = 1,
6357         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6358         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6359         },
6360         {
6361         .description = "tl3_ttl_dec",
6362         .field_bit_size = 1,
6363         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6364         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6365         },
6366         {
6367         .description = "decap_func",
6368         .field_bit_size = 4,
6369         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6370         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6371         },
6372         {
6373         .description = "vnic_or_vport",
6374         .field_bit_size = 12,
6375         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6376         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
6377         .field_opr1 = {
6378                 (ULP_WP_SYM_LOOPBACK_PORT >> 8) & 0xff,
6379                 ULP_WP_SYM_LOOPBACK_PORT & 0xff}
6380         },
6381         {
6382         .description = "pop_vlan",
6383         .field_bit_size = 1,
6384         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6385         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6386         },
6387         {
6388         .description = "meter",
6389         .field_bit_size = 1,
6390         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6391         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6392         },
6393         {
6394         .description = "mirror",
6395         .field_bit_size = 2,
6396         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6397         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6398         },
6399         {
6400         .description = "drop",
6401         .field_bit_size = 1,
6402         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6403         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6404         },
6405         {
6406         .description = "hit",
6407         .field_bit_size = 1,
6408         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6409         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6410         },
6411         {
6412         .description = "type",
6413         .field_bit_size = 1,
6414         .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
6415         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
6416         }
6417 };
6418
6419 struct bnxt_ulp_mapper_ident_info ulp_wh_plus_class_ident_list[] = {
6420         /* class_tid: 1, wh_plus, table: l2_cntxt_tcam_cache.rd */
6421         {
6422         .description = "l2_cntxt_id",
6423         .regfile_idx = BNXT_ULP_RF_IDX_L2_CNTXT_ID_0,
6424         .ident_bit_size = 10,
6425         .ident_bit_pos = 42
6426         },
6427         /* class_tid: 1, wh_plus, table: l2_cntxt_tcam.0 */
6428         {
6429         .description = "l2_cntxt_id",
6430         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
6431         .ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH,
6432         .regfile_idx = BNXT_ULP_RF_IDX_L2_CNTXT_ID_0,
6433         .ident_bit_size = 10,
6434         .ident_bit_pos = 0
6435         },
6436         /* class_tid: 1, wh_plus, table: profile_tcam_cache.rd */
6437         {
6438         .description = "profile_tcam_index",
6439         .regfile_idx = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
6440         .ident_bit_size = 10,
6441         .ident_bit_pos = 32
6442         },
6443         {
6444         .description = "em_profile_id",
6445         .regfile_idx = BNXT_ULP_RF_IDX_EM_PROFILE_ID_0,
6446         .ident_bit_size = 8,
6447         .ident_bit_pos = 42
6448         },
6449         {
6450         .description = "flow_sig_id",
6451         .regfile_idx = BNXT_ULP_RF_IDX_FLOW_SIG_ID,
6452         .ident_bit_size = 8,
6453         .ident_bit_pos = 58
6454         },
6455         /* class_tid: 1, wh_plus, table: profile_tcam.0 */
6456         {
6457         .description = "em_profile_id",
6458         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
6459         .ident_type = TF_IDENT_TYPE_EM_PROF,
6460         .regfile_idx = BNXT_ULP_RF_IDX_EM_PROFILE_ID_0,
6461         .ident_bit_size = 8,
6462         .ident_bit_pos = 28
6463         },
6464         /* class_tid: 2, wh_plus, table: l2_cntxt_tcam.0 */
6465         {
6466         .description = "l2_cntxt_id",
6467         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
6468         .ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH,
6469         .regfile_idx = BNXT_ULP_RF_IDX_L2_CNTXT_ID_0,
6470         .ident_bit_size = 10,
6471         .ident_bit_pos = 0
6472         },
6473         /* class_tid: 3, wh_plus, table: l2_cntxt_tcam_cache.rd */
6474         {
6475         .description = "l2_cntxt_id",
6476         .regfile_idx = BNXT_ULP_RF_IDX_L2_CNTXT_ID_0,
6477         .ident_bit_size = 10,
6478         .ident_bit_pos = 42
6479         },
6480         /* class_tid: 3, wh_plus, table: l2_cntxt_tcam.0 */
6481         {
6482         .description = "l2_cntxt_id",
6483         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
6484         .ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH,
6485         .regfile_idx = BNXT_ULP_RF_IDX_L2_CNTXT_ID_0,
6486         .ident_bit_size = 10,
6487         .ident_bit_pos = 0
6488         },
6489         /* class_tid: 5, wh_plus, table: l2_cntxt_tcam.egr */
6490         {
6491         .description = "l2_cntxt_id",
6492         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
6493         .ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH,
6494         .regfile_idx = BNXT_ULP_RF_IDX_L2_CNTXT_ID_0,
6495         .ident_bit_size = 10,
6496         .ident_bit_pos = 0
6497         }
6498 };