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