common/mlx5: add Direct Verbs constants for Windows
[dpdk.git] / drivers / net / bnxt / tf_ulp / generic_templates / ulp_template_db_thor_act.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2021 Broadcom
3  * All rights reserved.
4  */
5
6 /* date: Tue Aug 17 12:16:42 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 act list */
14 struct bnxt_ulp_mapper_tmpl_info ulp_thor_act_tmpl_list[] = {
15         /* act_tid: 1, ingress */
16         [1] = {
17         .device_name = BNXT_ULP_DEVICE_ID_THOR,
18         .num_tbls = 5,
19         .start_tbl_idx = 0,
20         .reject_info = {
21                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
22                 .cond_start_idx = 0,
23                 .cond_nums = 0 }
24         },
25         /* act_tid: 2, ingress */
26         [2] = {
27         .device_name = BNXT_ULP_DEVICE_ID_THOR,
28         .num_tbls = 6,
29         .start_tbl_idx = 5,
30         .reject_info = {
31                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
32                 .cond_start_idx = 3,
33                 .cond_nums = 0 }
34         },
35         /* act_tid: 3, ingress */
36         [3] = {
37         .device_name = BNXT_ULP_DEVICE_ID_THOR,
38         .num_tbls = 4,
39         .start_tbl_idx = 11,
40         .reject_info = {
41                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
42                 .cond_start_idx = 4,
43                 .cond_nums = 0 }
44         },
45         /* act_tid: 4, egress */
46         [4] = {
47         .device_name = BNXT_ULP_DEVICE_ID_THOR,
48         .num_tbls = 5,
49         .start_tbl_idx = 15,
50         .reject_info = {
51                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
52                 .cond_start_idx = 7,
53                 .cond_nums = 0 }
54         },
55         /* act_tid: 5, egress */
56         [5] = {
57         .device_name = BNXT_ULP_DEVICE_ID_THOR,
58         .num_tbls = 4,
59         .start_tbl_idx = 20,
60         .reject_info = {
61                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
62                 .cond_start_idx = 12,
63                 .cond_nums = 0 }
64         },
65         /* act_tid: 6, egress */
66         [6] = {
67         .device_name = BNXT_ULP_DEVICE_ID_THOR,
68         .num_tbls = 12,
69         .start_tbl_idx = 24,
70         .reject_info = {
71                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
72                 .cond_start_idx = 15,
73                 .cond_nums = 0 }
74         }
75 };
76
77 struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
78         { /* act_tid: 1, , table: shared_mirror_record.rd */
79         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
80         .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
81         .resource_sub_type =
82                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
83         .direction = TF_DIR_RX,
84         .execute_info = {
85                 .cond_true_goto  = 1,
86                 .cond_false_goto = 1,
87                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
88                 .cond_start_idx = 0,
89                 .cond_nums = 1 },
90         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
91         .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
92         .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
93         .key_start_idx = 0,
94         .blob_key_bit_size = 1,
95         .key_bit_size = 1,
96         .key_num_fields = 1,
97         .ident_start_idx = 0,
98         .ident_nums = 1
99         },
100         { /* act_tid: 1, , table: int_flow_counter_tbl.0 */
101         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
102         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
103         .resource_sub_type =
104                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
105         .direction = TF_DIR_RX,
106         .execute_info = {
107                 .cond_true_goto  = 1,
108                 .cond_false_goto = 1,
109                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
110                 .cond_start_idx = 1,
111                 .cond_nums = 1 },
112         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
113         .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
114         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
115         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
116         .result_start_idx = 0,
117         .result_bit_size = 64,
118         .result_num_fields = 1
119         },
120         { /* act_tid: 1, , table: mod_record.ing_ttl */
121         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
122         .resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
123         .resource_sub_type =
124                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
125         .direction = TF_DIR_RX,
126         .execute_info = {
127                 .cond_true_goto  = 1,
128                 .cond_false_goto = 2,
129                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
130                 .cond_start_idx = 2,
131                 .cond_nums = 1 },
132         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
133         .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_PTR,
134         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
135         .result_start_idx = 1,
136         .result_bit_size = 0,
137         .result_num_fields = 0,
138         .encap_num_fields = 47
139         },
140         { /* act_tid: 1, , table: int_full_act_record.0 */
141         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
142         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
143         .resource_sub_type =
144                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
145         .direction = TF_DIR_RX,
146         .execute_info = {
147                 .cond_true_goto  = 0,
148                 .cond_false_goto = 1,
149                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
150                 .cond_start_idx = 3,
151                 .cond_nums = 0 },
152         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
153         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
154         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
155         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
156         .result_start_idx = 48,
157         .result_bit_size = 128,
158         .result_num_fields = 17
159         },
160         { /* act_tid: 1, , table: int_compact_act_record.0 */
161         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
162         .resource_type = TF_TBL_TYPE_COMPACT_ACT_RECORD,
163         .resource_sub_type =
164                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
165         .direction = TF_DIR_RX,
166         .execute_info = {
167                 .cond_true_goto  = 0,
168                 .cond_false_goto = 0,
169                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
170                 .cond_start_idx = 3,
171                 .cond_nums = 0 },
172         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
173         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
174         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
175         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
176         .result_start_idx = 65,
177         .result_bit_size = 64,
178         .result_num_fields = 13
179         },
180         { /* act_tid: 2, , table: control.0 */
181         .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
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 = 3,
188                 .cond_nums = 0 },
189         .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
190         .fdb_operand = BNXT_ULP_RF_IDX_RID
191         },
192         { /* act_tid: 2, , table: mirror_tbl.alloc */
193         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
194         .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
195         .resource_sub_type =
196                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
197         .direction = TF_DIR_RX,
198         .execute_info = {
199                 .cond_true_goto  = 1,
200                 .cond_false_goto = 1,
201                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
202                 .cond_start_idx = 3,
203                 .cond_nums = 0 },
204         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
205         .tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
206         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
207         .fdb_operand = BNXT_ULP_RF_IDX_RID,
208         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
209         .result_start_idx = 78,
210         .result_bit_size = 32,
211         .result_num_fields = 5
212         },
213         { /* act_tid: 2, , table: int_flow_counter_tbl.0 */
214         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
215         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
216         .resource_sub_type =
217                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
218         .direction = TF_DIR_RX,
219         .execute_info = {
220                 .cond_true_goto  = 1,
221                 .cond_false_goto = 1,
222                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
223                 .cond_start_idx = 3,
224                 .cond_nums = 1 },
225         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
226         .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
227         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
228         .fdb_operand = BNXT_ULP_RF_IDX_RID,
229         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
230         .result_start_idx = 83,
231         .result_bit_size = 64,
232         .result_num_fields = 1
233         },
234         { /* act_tid: 2, , table: int_compact_act_record.0 */
235         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
236         .resource_type = TF_TBL_TYPE_COMPACT_ACT_RECORD,
237         .resource_sub_type =
238                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
239         .direction = TF_DIR_RX,
240         .execute_info = {
241                 .cond_true_goto  = 1,
242                 .cond_false_goto = 1,
243                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
244                 .cond_start_idx = 4,
245                 .cond_nums = 0 },
246         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
247         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
248         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
249         .fdb_operand = BNXT_ULP_RF_IDX_RID,
250         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
251         .result_start_idx = 84,
252         .result_bit_size = 64,
253         .result_num_fields = 13,
254         .encap_num_fields = 0
255         },
256         { /* act_tid: 2, , table: mirror_tbl.wr */
257         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
258         .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
259         .resource_sub_type =
260                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
261         .direction = TF_DIR_RX,
262         .execute_info = {
263                 .cond_true_goto  = 1,
264                 .cond_false_goto = 1,
265                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
266                 .cond_start_idx = 4,
267                 .cond_nums = 0 },
268         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
269         .tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
270         .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
271         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
272         .result_start_idx = 97,
273         .result_bit_size = 32,
274         .result_num_fields = 5
275         },
276         { /* act_tid: 2, , table: shared_mirror_record.wr */
277         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
278         .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
279         .resource_sub_type =
280                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
281         .direction = TF_DIR_RX,
282         .execute_info = {
283                 .cond_true_goto  = 0,
284                 .cond_false_goto = 0,
285                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
286                 .cond_start_idx = 4,
287                 .cond_nums = 0 },
288         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
289         .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
290         .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
291         .key_start_idx = 1,
292         .blob_key_bit_size = 1,
293         .key_bit_size = 1,
294         .key_num_fields = 1,
295         .result_start_idx = 102,
296         .result_bit_size = 36,
297         .result_num_fields = 2
298         },
299         { /* act_tid: 3, , table: int_flow_counter_tbl.0 */
300         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
301         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
302         .resource_sub_type =
303                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
304         .direction = TF_DIR_RX,
305         .execute_info = {
306                 .cond_true_goto  = 1,
307                 .cond_false_goto = 1,
308                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
309                 .cond_start_idx = 4,
310                 .cond_nums = 1 },
311         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
312         .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
313         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
314         .result_start_idx = 104,
315         .result_bit_size = 64,
316         .result_num_fields = 1
317         },
318         { /* act_tid: 3, , table: mod_record.ing_ttl */
319         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
320         .resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
321         .resource_sub_type =
322                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
323         .direction = TF_DIR_RX,
324         .execute_info = {
325                 .cond_true_goto  = 2,
326                 .cond_false_goto = 1,
327                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
328                 .cond_start_idx = 5,
329                 .cond_nums = 1 },
330         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
331         .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_PTR,
332         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
333         .result_start_idx = 105,
334         .result_bit_size = 0,
335         .result_num_fields = 0,
336         .encap_num_fields = 47
337         },
338         { /* act_tid: 3, , table: mod_record.ing_no_ttl */
339         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
340         .resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
341         .resource_sub_type =
342                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
343         .direction = TF_DIR_RX,
344         .execute_info = {
345                 .cond_true_goto  = 1,
346                 .cond_false_goto = 1,
347                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
348                 .cond_start_idx = 6,
349                 .cond_nums = 1 },
350         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
351         .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_PTR,
352         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
353         .result_start_idx = 152,
354         .result_bit_size = 0,
355         .result_num_fields = 0,
356         .encap_num_fields = 47
357         },
358         { /* act_tid: 3, , table: int_full_act_record.0 */
359         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
360         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
361         .resource_sub_type =
362                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
363         .direction = TF_DIR_RX,
364         .execute_info = {
365                 .cond_true_goto  = 0,
366                 .cond_false_goto = 0,
367                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
368                 .cond_start_idx = 7,
369                 .cond_nums = 0 },
370         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
371         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
372         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
373         .result_start_idx = 199,
374         .result_bit_size = 128,
375         .result_num_fields = 17
376         },
377         { /* act_tid: 4, , table: int_flow_counter_tbl.0 */
378         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
379         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
380         .resource_sub_type =
381                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
382         .direction = TF_DIR_TX,
383         .execute_info = {
384                 .cond_true_goto  = 1,
385                 .cond_false_goto = 1,
386                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
387                 .cond_start_idx = 7,
388                 .cond_nums = 1 },
389         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
390         .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
391         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
392         .result_start_idx = 216,
393         .result_bit_size = 64,
394         .result_num_fields = 1
395         },
396         { /* act_tid: 4, , table: int_vtag_encap_record.0 */
397         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
398         .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
399         .resource_sub_type =
400                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
401         .direction = TF_DIR_TX,
402         .execute_info = {
403                 .cond_true_goto  = 1,
404                 .cond_false_goto = 1,
405                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
406                 .cond_start_idx = 8,
407                 .cond_nums = 1 },
408         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
409         .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
410         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
411         .result_start_idx = 217,
412         .result_bit_size = 0,
413         .result_num_fields = 0,
414         .encap_num_fields = 11
415         },
416         { /* act_tid: 4, , table: mod_record.dec_ttl_egr */
417         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
418         .resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
419         .resource_sub_type =
420                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
421         .direction = TF_DIR_TX,
422         .execute_info = {
423                 .cond_true_goto  = 1,
424                 .cond_false_goto = 1,
425                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
426                 .cond_start_idx = 9,
427                 .cond_nums = 1 },
428         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
429         .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_PTR,
430         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
431         .result_start_idx = 228,
432         .result_bit_size = 0,
433         .result_num_fields = 0,
434         .encap_num_fields = 47
435         },
436         { /* act_tid: 4, , table: int_full_act_record.0 */
437         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
438         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
439         .resource_sub_type =
440                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
441         .direction = TF_DIR_TX,
442         .execute_info = {
443                 .cond_true_goto  = 0,
444                 .cond_false_goto = 1,
445                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
446                 .cond_start_idx = 10,
447                 .cond_nums = 2 },
448         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
449         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
450         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
451         .result_start_idx = 275,
452         .result_bit_size = 128,
453         .result_num_fields = 17
454         },
455         { /* act_tid: 4, , table: int_compact_act_record.0 */
456         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
457         .resource_type = TF_TBL_TYPE_COMPACT_ACT_RECORD,
458         .resource_sub_type =
459                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
460         .direction = TF_DIR_TX,
461         .execute_info = {
462                 .cond_true_goto  = 0,
463                 .cond_false_goto = 0,
464                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
465                 .cond_start_idx = 12,
466                 .cond_nums = 0 },
467         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
468         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
469         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
470         .result_start_idx = 292,
471         .result_bit_size = 64,
472         .result_num_fields = 13
473         },
474         { /* act_tid: 5, , table: int_flow_counter_tbl.0 */
475         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
476         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
477         .resource_sub_type =
478                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
479         .direction = TF_DIR_TX,
480         .execute_info = {
481                 .cond_true_goto  = 1,
482                 .cond_false_goto = 1,
483                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
484                 .cond_start_idx = 12,
485                 .cond_nums = 1 },
486         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
487         .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
488         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
489         .result_start_idx = 305,
490         .result_bit_size = 64,
491         .result_num_fields = 1
492         },
493         { /* act_tid: 5, , table: mod_record.ing_ttl */
494         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
495         .resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
496         .resource_sub_type =
497                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
498         .direction = TF_DIR_TX,
499         .execute_info = {
500                 .cond_true_goto  = 2,
501                 .cond_false_goto = 1,
502                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
503                 .cond_start_idx = 13,
504                 .cond_nums = 1 },
505         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
506         .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_PTR,
507         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
508         .result_start_idx = 306,
509         .result_bit_size = 0,
510         .result_num_fields = 0,
511         .encap_num_fields = 47
512         },
513         { /* act_tid: 5, , table: mod_record.ing_no_ttl */
514         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
515         .resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
516         .resource_sub_type =
517                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
518         .direction = TF_DIR_TX,
519         .execute_info = {
520                 .cond_true_goto  = 1,
521                 .cond_false_goto = 1,
522                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
523                 .cond_start_idx = 14,
524                 .cond_nums = 1 },
525         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
526         .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_PTR,
527         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
528         .result_start_idx = 353,
529         .result_bit_size = 0,
530         .result_num_fields = 0,
531         .encap_num_fields = 47
532         },
533         { /* act_tid: 5, , table: int_full_act_record.0 */
534         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
535         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
536         .resource_sub_type =
537                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
538         .direction = TF_DIR_TX,
539         .execute_info = {
540                 .cond_true_goto  = 0,
541                 .cond_false_goto = 0,
542                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
543                 .cond_start_idx = 15,
544                 .cond_nums = 0 },
545         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
546         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
547         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
548         .result_start_idx = 400,
549         .result_bit_size = 128,
550         .result_num_fields = 17
551         },
552         { /* act_tid: 6, , table: int_flow_counter_tbl.0 */
553         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
554         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
555         .resource_sub_type =
556                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
557         .direction = TF_DIR_TX,
558         .execute_info = {
559                 .cond_true_goto  = 1,
560                 .cond_false_goto = 1,
561                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
562                 .cond_start_idx = 15,
563                 .cond_nums = 1 },
564         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
565         .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
566         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
567         .result_start_idx = 417,
568         .result_bit_size = 64,
569         .result_num_fields = 1
570         },
571         { /* act_tid: 6, , table: source_property_cache.rd */
572         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
573         .resource_sub_type =
574                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SOURCE_PROPERTY_CACHE,
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_AND,
580                 .cond_start_idx = 16,
581                 .cond_nums = 1 },
582         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
583         .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
584         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
585         .key_start_idx = 2,
586         .blob_key_bit_size = 80,
587         .key_bit_size = 80,
588         .key_num_fields = 2,
589         .ident_start_idx = 1,
590         .ident_nums = 1
591         },
592         { /* act_tid: 6, , table: control.0 */
593         .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
594         .direction = TF_DIR_TX,
595         .execute_info = {
596                 .cond_true_goto  = 1,
597                 .cond_false_goto = 3,
598                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
599                 .cond_start_idx = 17,
600                 .cond_nums = 1 },
601         .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
602         .fdb_operand = BNXT_ULP_RF_IDX_RID
603         },
604         { /* act_tid: 6, , table: sp_smac_ipv4.0 */
605         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
606         .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
607         .resource_sub_type =
608                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
609         .direction = TF_DIR_TX,
610         .execute_info = {
611                 .cond_true_goto  = 1,
612                 .cond_false_goto = 1,
613                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
614                 .cond_start_idx = 18,
615                 .cond_nums = 1 },
616         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
617         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_SP_PTR,
618         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
619         .fdb_operand = BNXT_ULP_RF_IDX_RID,
620         .record_size = 16,
621         .result_start_idx = 418,
622         .result_bit_size = 0,
623         .result_num_fields = 0,
624         .encap_num_fields = 3
625         },
626         { /* act_tid: 6, , table: source_property_cache.wr */
627         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
628         .resource_sub_type =
629                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SOURCE_PROPERTY_CACHE,
630         .direction = TF_DIR_TX,
631         .execute_info = {
632                 .cond_true_goto  = 1,
633                 .cond_false_goto = 1,
634                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
635                 .cond_start_idx = 19,
636                 .cond_nums = 0 },
637         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
638         .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
639         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
640         .key_start_idx = 4,
641         .blob_key_bit_size = 80,
642         .key_bit_size = 80,
643         .key_num_fields = 2,
644         .result_start_idx = 421,
645         .result_bit_size = 48,
646         .result_num_fields = 2
647         },
648         { /* act_tid: 6, , table: sp_smac_ipv6.0 */
649         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
650         .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV6,
651         .resource_sub_type =
652                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
653         .direction = TF_DIR_TX,
654         .execute_info = {
655                 .cond_true_goto  = 1,
656                 .cond_false_goto = 1,
657                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
658                 .cond_start_idx = 19,
659                 .cond_nums = 1 },
660         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
661         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_SP_PTR,
662         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
663         .record_size = 32,
664         .result_start_idx = 423,
665         .result_bit_size = 0,
666         .result_num_fields = 0,
667         .encap_num_fields = 3
668         },
669         { /* act_tid: 6, , table: vxlan_encap_rec_cache.rd */
670         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
671         .resource_sub_type =
672                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE,
673         .direction = TF_DIR_TX,
674         .execute_info = {
675                 .cond_true_goto  = 1,
676                 .cond_false_goto = 1,
677                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
678                 .cond_start_idx = 20,
679                 .cond_nums = 2 },
680         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
681         .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
682         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
683         .key_start_idx = 6,
684         .blob_key_bit_size = 136,
685         .key_bit_size = 136,
686         .key_num_fields = 5,
687         .ident_start_idx = 2,
688         .ident_nums = 1
689         },
690         { /* act_tid: 6, , table: control.0 */
691         .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
692         .direction = TF_DIR_TX,
693         .execute_info = {
694                 .cond_true_goto  = 1,
695                 .cond_false_goto = 3,
696                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
697                 .cond_start_idx = 22,
698                 .cond_nums = 1 },
699         .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
700         .fdb_operand = BNXT_ULP_RF_IDX_RID
701         },
702         { /* act_tid: 6, , table: int_tun_encap_record.ipv4_vxlan */
703         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
704         .resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
705         .resource_sub_type =
706                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
707         .direction = TF_DIR_TX,
708         .execute_info = {
709                 .cond_true_goto  = 1,
710                 .cond_false_goto = 1,
711                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
712                 .cond_start_idx = 23,
713                 .cond_nums = 2 },
714         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
715         .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
716         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
717         .fdb_operand = BNXT_ULP_RF_IDX_RID,
718         .result_start_idx = 426,
719         .result_bit_size = 0,
720         .result_num_fields = 0,
721         .encap_num_fields = 30
722         },
723         { /* act_tid: 6, , table: vxlan_encap_rec_cache.wr */
724         .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
725         .resource_sub_type =
726                 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE,
727         .direction = TF_DIR_TX,
728         .execute_info = {
729                 .cond_true_goto  = 1,
730                 .cond_false_goto = 1,
731                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
732                 .cond_start_idx = 25,
733                 .cond_nums = 0 },
734         .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
735         .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
736         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
737         .key_start_idx = 11,
738         .blob_key_bit_size = 136,
739         .key_bit_size = 136,
740         .key_num_fields = 5,
741         .result_start_idx = 456,
742         .result_bit_size = 48,
743         .result_num_fields = 2
744         },
745         { /* act_tid: 6, , table: int_tun_encap_record.ipv6_vxlan */
746         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
747         .resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
748         .resource_sub_type =
749                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
750         .direction = TF_DIR_TX,
751         .execute_info = {
752                 .cond_true_goto  = 1,
753                 .cond_false_goto = 1,
754                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
755                 .cond_start_idx = 25,
756                 .cond_nums = 2 },
757         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
758         .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
759         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
760         .result_start_idx = 458,
761         .result_bit_size = 0,
762         .result_num_fields = 0,
763         .encap_num_fields = 30
764         },
765         { /* act_tid: 6, , table: int_full_act_record.0 */
766         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
767         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
768         .resource_sub_type =
769                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
770         .direction = TF_DIR_TX,
771         .execute_info = {
772                 .cond_true_goto  = 0,
773                 .cond_false_goto = 0,
774                 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
775                 .cond_start_idx = 27,
776                 .cond_nums = 0 },
777         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
778         .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
779         .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
780         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
781         .result_start_idx = 488,
782         .result_bit_size = 128,
783         .result_num_fields = 17
784         }
785 };
786
787 struct bnxt_ulp_mapper_cond_info ulp_thor_act_cond_list[] = {
788         /* cond_execute: act_tid: 1, shared_mirror_record.rd */
789         {
790         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
791         .cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
792         },
793         /* cond_execute: act_tid: 1, int_flow_counter_tbl.0 */
794         {
795         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
796         .cond_operand = BNXT_ULP_ACT_BIT_COUNT
797         },
798         /* cond_execute: act_tid: 1, mod_record.ing_ttl */
799         {
800         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
801         .cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
802         },
803         /* cond_execute: act_tid: 2, int_flow_counter_tbl.0 */
804         {
805         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
806         .cond_operand = BNXT_ULP_ACT_BIT_COUNT
807         },
808         /* cond_execute: act_tid: 3, int_flow_counter_tbl.0 */
809         {
810         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
811         .cond_operand = BNXT_ULP_ACT_BIT_COUNT
812         },
813         /* cond_execute: act_tid: 3, mod_record.ing_ttl */
814         {
815         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
816         .cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
817         },
818         /* cond_execute: act_tid: 3, mod_record.ing_no_ttl */
819         {
820         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
821         .cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
822         },
823         /* cond_execute: act_tid: 4, int_flow_counter_tbl.0 */
824         {
825         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
826         .cond_operand = BNXT_ULP_ACT_BIT_COUNT
827         },
828         /* cond_execute: act_tid: 4, int_vtag_encap_record.0 */
829         {
830         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
831         .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
832         },
833         /* cond_execute: act_tid: 4, mod_record.dec_ttl_egr */
834         {
835         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
836         .cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
837         },
838         /* cond_execute: act_tid: 4, int_full_act_record.0 */
839         {
840         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
841         .cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
842         },
843         {
844         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
845         .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
846         },
847         /* cond_execute: act_tid: 5, int_flow_counter_tbl.0 */
848         {
849         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
850         .cond_operand = BNXT_ULP_ACT_BIT_COUNT
851         },
852         /* cond_execute: act_tid: 5, mod_record.ing_ttl */
853         {
854         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
855         .cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
856         },
857         /* cond_execute: act_tid: 5, mod_record.ing_no_ttl */
858         {
859         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
860         .cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
861         },
862         /* cond_execute: act_tid: 6, int_flow_counter_tbl.0 */
863         {
864         .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
865         .cond_operand = BNXT_ULP_ACT_BIT_COUNT
866         },
867         /* cond_execute: act_tid: 6, source_property_cache.rd */
868         {
869         .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
870         .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
871         },
872         /* cond_execute: act_tid: 6, control.0 */
873         {
874         .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
875         .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
876         },
877         /* cond_execute: act_tid: 6, sp_smac_ipv4.0 */
878         {
879         .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
880         .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
881         },
882         /* cond_execute: act_tid: 6, sp_smac_ipv6.0 */
883         {
884         .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
885         .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG
886         },
887         /* cond_execute: act_tid: 6, vxlan_encap_rec_cache.rd */
888         {
889         .cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
890         .cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
891         },
892         {
893         .cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
894         .cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
895         },
896         /* cond_execute: act_tid: 6, control.0 */
897         {
898         .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
899         .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
900         },
901         /* cond_execute: act_tid: 6, int_tun_encap_record.ipv4_vxlan */
902         {
903         .cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
904         .cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
905         },
906         {
907         .cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
908         .cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
909         },
910         /* cond_execute: act_tid: 6, int_tun_encap_record.ipv6_vxlan */
911         {
912         .cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
913         .cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
914         },
915         {
916         .cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
917         .cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
918         }
919 };
920
921 struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
922         /* act_tid: 1, , table: shared_mirror_record.rd */
923         {
924         .field_info_mask = {
925                 .description = "shared_index",
926                 .field_bit_size = 1,
927                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
928                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
929                 .field_opr1 = {
930                         0xff}
931                 },
932         .field_info_spec = {
933                 .description = "shared_index",
934                 .field_bit_size = 1,
935                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
936                 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
937                 .field_opr1 = {
938                 (BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
939                 BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
940                 }
941         },
942         /* act_tid: 2, , table: shared_mirror_record.wr */
943         {
944         .field_info_mask = {
945                 .description = "shared_index",
946                 .field_bit_size = 1,
947                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
948                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
949                 .field_opr1 = {
950                         0xff}
951                 },
952         .field_info_spec = {
953                 .description = "shared_index",
954                 .field_bit_size = 1,
955                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
956                 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
957                 .field_opr1 = {
958                 (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
959                 BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
960                 }
961         },
962         /* act_tid: 6, , table: source_property_cache.rd */
963         {
964         .field_info_mask = {
965                 .description = "smac",
966                 .field_bit_size = 48,
967                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
968                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
969                 .field_opr1 = {
970                         0xff,
971                         0xff,
972                         0xff,
973                         0xff,
974                         0xff,
975                         0xff}
976                 },
977         .field_info_spec = {
978                 .description = "smac",
979                 .field_bit_size = 48,
980                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
981                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
982                 .field_opr1 = {
983                 (BNXT_ULP_ENC_FIELD_ETH_SMAC >> 8) & 0xff,
984                 BNXT_ULP_ENC_FIELD_ETH_SMAC & 0xff}
985                 }
986         },
987         {
988         .field_info_mask = {
989                 .description = "ipv4_src_addr",
990                 .field_bit_size = 32,
991                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
992                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
993                 .field_opr1 = {
994                         0xff,
995                         0xff,
996                         0xff,
997                         0xff}
998                 },
999         .field_info_spec = {
1000                 .description = "ipv4_src_addr",
1001                 .field_bit_size = 32,
1002                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1003                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1004                 .field_opr1 = {
1005                 (BNXT_ULP_ENC_FIELD_IPV4_SADDR >> 8) & 0xff,
1006                 BNXT_ULP_ENC_FIELD_IPV4_SADDR & 0xff}
1007                 }
1008         },
1009         /* act_tid: 6, , table: source_property_cache.wr */
1010         {
1011         .field_info_mask = {
1012                 .description = "smac",
1013                 .field_bit_size = 48,
1014                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1015                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1016                 .field_opr1 = {
1017                         0xff,
1018                         0xff,
1019                         0xff,
1020                         0xff,
1021                         0xff,
1022                         0xff}
1023                 },
1024         .field_info_spec = {
1025                 .description = "smac",
1026                 .field_bit_size = 48,
1027                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1028                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1029                 .field_opr1 = {
1030                 (BNXT_ULP_ENC_FIELD_ETH_SMAC >> 8) & 0xff,
1031                 BNXT_ULP_ENC_FIELD_ETH_SMAC & 0xff}
1032                 }
1033         },
1034         {
1035         .field_info_mask = {
1036                 .description = "ipv4_src_addr",
1037                 .field_bit_size = 32,
1038                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1039                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1040                 .field_opr1 = {
1041                         0xff,
1042                         0xff,
1043                         0xff,
1044                         0xff}
1045                 },
1046         .field_info_spec = {
1047                 .description = "ipv4_src_addr",
1048                 .field_bit_size = 32,
1049                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1050                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1051                 .field_opr1 = {
1052                 (BNXT_ULP_ENC_FIELD_IPV4_SADDR >> 8) & 0xff,
1053                 BNXT_ULP_ENC_FIELD_IPV4_SADDR & 0xff}
1054                 }
1055         },
1056         /* act_tid: 6, , table: vxlan_encap_rec_cache.rd */
1057         {
1058         .field_info_mask = {
1059                 .description = "dmac",
1060                 .field_bit_size = 48,
1061                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1062                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1063                 .field_opr1 = {
1064                         0xff,
1065                         0xff,
1066                         0xff,
1067                         0xff,
1068                         0xff,
1069                         0xff}
1070                 },
1071         .field_info_spec = {
1072                 .description = "dmac",
1073                 .field_bit_size = 48,
1074                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1075                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1076                 .field_opr1 = {
1077                 (BNXT_ULP_ENC_FIELD_ETH_DMAC >> 8) & 0xff,
1078                 BNXT_ULP_ENC_FIELD_ETH_DMAC & 0xff}
1079                 }
1080         },
1081         {
1082         .field_info_mask = {
1083                 .description = "ipv4_dst_addr",
1084                 .field_bit_size = 32,
1085                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1086                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1087                 .field_opr1 = {
1088                         0xff,
1089                         0xff,
1090                         0xff,
1091                         0xff}
1092                 },
1093         .field_info_spec = {
1094                 .description = "ipv4_dst_addr",
1095                 .field_bit_size = 32,
1096                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1097                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1098                 .field_opr1 = {
1099                 (BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff,
1100                 BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff}
1101                 }
1102         },
1103         {
1104         .field_info_mask = {
1105                 .description = "udp_sport",
1106                 .field_bit_size = 16,
1107                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1108                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1109                 .field_opr1 = {
1110                         0xff,
1111                         0xff}
1112                 },
1113         .field_info_spec = {
1114                 .description = "udp_sport",
1115                 .field_bit_size = 16,
1116                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1117                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1118                 .field_opr1 = {
1119                 (BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff,
1120                 BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}
1121                 }
1122         },
1123         {
1124         .field_info_mask = {
1125                 .description = "udp_dport",
1126                 .field_bit_size = 16,
1127                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1128                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1129                 .field_opr1 = {
1130                         0xff,
1131                         0xff}
1132                 },
1133         .field_info_spec = {
1134                 .description = "udp_dport",
1135                 .field_bit_size = 16,
1136                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1137                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1138                 .field_opr1 = {
1139                 (BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff,
1140                 BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}
1141                 }
1142         },
1143         {
1144         .field_info_mask = {
1145                 .description = "vni",
1146                 .field_bit_size = 24,
1147                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1148                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1149                 .field_opr1 = {
1150                         0xff,
1151                         0xff,
1152                         0xff}
1153                 },
1154         .field_info_spec = {
1155                 .description = "vni",
1156                 .field_bit_size = 24,
1157                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1158                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1159                 .field_opr1 = {
1160                 (BNXT_ULP_ENC_FIELD_VXLAN_VNI >> 8) & 0xff,
1161                 BNXT_ULP_ENC_FIELD_VXLAN_VNI & 0xff}
1162                 }
1163         },
1164         /* act_tid: 6, , table: vxlan_encap_rec_cache.wr */
1165         {
1166         .field_info_mask = {
1167                 .description = "dmac",
1168                 .field_bit_size = 48,
1169                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1170                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1171                 .field_opr1 = {
1172                         0xff,
1173                         0xff,
1174                         0xff,
1175                         0xff,
1176                         0xff,
1177                         0xff}
1178                 },
1179         .field_info_spec = {
1180                 .description = "dmac",
1181                 .field_bit_size = 48,
1182                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1183                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1184                 .field_opr1 = {
1185                 (BNXT_ULP_ENC_FIELD_ETH_DMAC >> 8) & 0xff,
1186                 BNXT_ULP_ENC_FIELD_ETH_DMAC & 0xff}
1187                 }
1188         },
1189         {
1190         .field_info_mask = {
1191                 .description = "ipv4_dst_addr",
1192                 .field_bit_size = 32,
1193                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1194                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1195                 .field_opr1 = {
1196                         0xff,
1197                         0xff,
1198                         0xff,
1199                         0xff}
1200                 },
1201         .field_info_spec = {
1202                 .description = "ipv4_dst_addr",
1203                 .field_bit_size = 32,
1204                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1205                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1206                 .field_opr1 = {
1207                 (BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff,
1208                 BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff}
1209                 }
1210         },
1211         {
1212         .field_info_mask = {
1213                 .description = "udp_sport",
1214                 .field_bit_size = 16,
1215                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1216                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1217                 .field_opr1 = {
1218                         0xff,
1219                         0xff}
1220                 },
1221         .field_info_spec = {
1222                 .description = "udp_sport",
1223                 .field_bit_size = 16,
1224                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1225                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1226                 .field_opr1 = {
1227                 (BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff,
1228                 BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}
1229                 }
1230         },
1231         {
1232         .field_info_mask = {
1233                 .description = "udp_dport",
1234                 .field_bit_size = 16,
1235                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1236                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1237                 .field_opr1 = {
1238                         0xff,
1239                         0xff}
1240                 },
1241         .field_info_spec = {
1242                 .description = "udp_dport",
1243                 .field_bit_size = 16,
1244                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1245                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1246                 .field_opr1 = {
1247                 (BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff,
1248                 BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}
1249                 }
1250         },
1251         {
1252         .field_info_mask = {
1253                 .description = "vni",
1254                 .field_bit_size = 24,
1255                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1256                 .field_src1 = BNXT_ULP_FIELD_SRC_ONES,
1257                 .field_opr1 = {
1258                         0xff,
1259                         0xff,
1260                         0xff}
1261                 },
1262         .field_info_spec = {
1263                 .description = "vni",
1264                 .field_bit_size = 24,
1265                 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1266                 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
1267                 .field_opr1 = {
1268                 (BNXT_ULP_ENC_FIELD_VXLAN_VNI >> 8) & 0xff,
1269                 BNXT_ULP_ENC_FIELD_VXLAN_VNI & 0xff}
1270                 }
1271         }
1272 };
1273
1274 struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
1275         /* act_tid: 1, , table: int_flow_counter_tbl.0 */
1276         {
1277         .description = "count",
1278         .field_bit_size = 64,
1279         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1280         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1281         },
1282         /* act_tid: 1, , table: mod_record.ing_ttl */
1283         {
1284         .description = "metadata_en",
1285         .field_bit_size = 1,
1286         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1287         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1288         },
1289         {
1290         .description = "rem_ovlan",
1291         .field_bit_size = 1,
1292         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1293         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1294         },
1295         {
1296         .description = "rem_ivlan",
1297         .field_bit_size = 1,
1298         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1299         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1300         },
1301         {
1302         .description = "rep_add_ivlan",
1303         .field_bit_size = 1,
1304         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1305         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1306         },
1307         {
1308         .description = "rep_add_ovlan",
1309         .field_bit_size = 1,
1310         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1311         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1312         },
1313         {
1314         .description = "ttl_update",
1315         .field_bit_size = 1,
1316         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1317         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1318         .field_opr1 = {
1319         1}
1320         },
1321         {
1322         .description = "tun_md_en",
1323         .field_bit_size = 1,
1324         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1325         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1326         },
1327         {
1328         .description = "reserved_en",
1329         .field_bit_size = 1,
1330         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1331         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1332         },
1333         {
1334         .description = "l2_dmac_en",
1335         .field_bit_size = 1,
1336         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1337         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1338         },
1339         {
1340         .description = "l2_smac_en",
1341         .field_bit_size = 1,
1342         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1343         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1344         },
1345         {
1346         .description = "l3_sip_ipv6_en",
1347         .field_bit_size = 1,
1348         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1349         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1350         },
1351         {
1352         .description = "l3_dip_ipv6_en",
1353         .field_bit_size = 1,
1354         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1355         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1356         },
1357         {
1358         .description = "l3_sip_ipv4_en",
1359         .field_bit_size = 1,
1360         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1361         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1362         },
1363         {
1364         .description = "l3_dip_ipv4_en",
1365         .field_bit_size = 1,
1366         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1367         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1368         },
1369         {
1370         .description = "l4_sport_en",
1371         .field_bit_size = 1,
1372         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1373         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1374         },
1375         {
1376         .description = "l4_dport_en",
1377         .field_bit_size = 1,
1378         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1379         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1380         },
1381         {
1382         .description = "metadata_data",
1383         .field_bit_size = 16,
1384         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1385         },
1386         {
1387         .description = "metadata_rsvd",
1388         .field_bit_size = 10,
1389         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1390         },
1391         {
1392         .description = "metadata_op",
1393         .field_bit_size = 2,
1394         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1395         },
1396         {
1397         .description = "metadata_prof",
1398         .field_bit_size = 4,
1399         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1400         },
1401         {
1402         .description = "ivlan_tpid",
1403         .field_bit_size = 16,
1404         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1405         },
1406         {
1407         .description = "ivlan_pri",
1408         .field_bit_size = 3,
1409         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1410         },
1411         {
1412         .description = "ivlan_de",
1413         .field_bit_size = 1,
1414         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1415         },
1416         {
1417         .description = "ivlan_vid",
1418         .field_bit_size = 12,
1419         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1420         },
1421         {
1422         .description = "ovlan_tpid",
1423         .field_bit_size = 16,
1424         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1425         },
1426         {
1427         .description = "ovlan_pri",
1428         .field_bit_size = 3,
1429         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1430         },
1431         {
1432         .description = "ovlan_de",
1433         .field_bit_size = 1,
1434         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1435         },
1436         {
1437         .description = "ovlan_vid",
1438         .field_bit_size = 12,
1439         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1440         },
1441         {
1442         .description = "alt_pfid",
1443         .field_bit_size = 4,
1444         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1445         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1446         },
1447         {
1448         .description = "alt_vid",
1449         .field_bit_size = 12,
1450         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1451         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1452         },
1453         {
1454         .description = "ttl_rsvd",
1455         .field_bit_size = 12,
1456         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1457         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1458         },
1459         {
1460         .description = "ttl_tl3_dec",
1461         .field_bit_size = 1,
1462         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1463         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1464         .field_opr1 = {
1465         (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
1466         BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
1467         },
1468         {
1469         .description = "ttl_il3_dec",
1470         .field_bit_size = 1,
1471         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1472         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1473         .field_opr1 = {
1474         (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
1475         BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
1476         },
1477         {
1478         .description = "ttl_tl3_rdir",
1479         .field_bit_size = 1,
1480         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1481         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1482         },
1483         {
1484         .description = "ttl_il3_rdir",
1485         .field_bit_size = 1,
1486         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1487         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1488         },
1489         {
1490         .description = "tun_new_prot",
1491         .field_bit_size = 16,
1492         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1493         },
1494         {
1495         .description = "tun_ex_prot",
1496         .field_bit_size = 16,
1497         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1498         },
1499         {
1500         .description = "tun_mv",
1501         .field_bit_size = 16,
1502         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1503         },
1504         {
1505         .description = "reserved",
1506         .field_bit_size = 0,
1507         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1508         },
1509         {
1510         .description = "l2_dmac",
1511         .field_bit_size = 48,
1512         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1513         },
1514         {
1515         .description = "l2_smac",
1516         .field_bit_size = 48,
1517         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1518         },
1519         {
1520         .description = "l3_sip_ipv6",
1521         .field_bit_size = 128,
1522         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1523         },
1524         {
1525         .description = "l3_dip_ipv6",
1526         .field_bit_size = 128,
1527         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1528         },
1529         {
1530         .description = "l3_sip_ipv4",
1531         .field_bit_size = 32,
1532         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1533         },
1534         {
1535         .description = "l3_dip_ipv4",
1536         .field_bit_size = 32,
1537         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1538         },
1539         {
1540         .description = "l4_sport",
1541         .field_bit_size = 16,
1542         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1543         },
1544         {
1545         .description = "l4_dport",
1546         .field_bit_size = 16,
1547         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
1548         },
1549         /* act_tid: 1, , table: int_full_act_record.0 */
1550         {
1551         .description = "sp_rec_ptr",
1552         .field_bit_size = 16,
1553         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1554         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1555         },
1556         {
1557         .description = "encap_ptr",
1558         .field_bit_size = 16,
1559         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1560         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1561         },
1562         {
1563         .description = "mod_rec_ptr",
1564         .field_bit_size = 16,
1565         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
1566         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1567         .field_opr1 = {
1568         ((uint64_t)BNXT_ULP_ACT_BIT_DEC_TTL >> 56) & 0xff,
1569         ((uint64_t)BNXT_ULP_ACT_BIT_DEC_TTL >> 48) & 0xff,
1570         ((uint64_t)BNXT_ULP_ACT_BIT_DEC_TTL >> 40) & 0xff,
1571         ((uint64_t)BNXT_ULP_ACT_BIT_DEC_TTL >> 32) & 0xff,
1572         ((uint64_t)BNXT_ULP_ACT_BIT_DEC_TTL >> 24) & 0xff,
1573         ((uint64_t)BNXT_ULP_ACT_BIT_DEC_TTL >> 16) & 0xff,
1574         ((uint64_t)BNXT_ULP_ACT_BIT_DEC_TTL >> 8) & 0xff,
1575         (uint64_t)BNXT_ULP_ACT_BIT_DEC_TTL & 0xff},
1576         .field_src2 = BNXT_ULP_FIELD_SRC_RF,
1577         .field_opr2 = {
1578                 (BNXT_ULP_RF_IDX_MODIFY_PTR >> 8) & 0xff,
1579                 BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff},
1580         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
1581         },
1582         {
1583         .description = "rsvd1",
1584         .field_bit_size = 16,
1585         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1586         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1587         },
1588         {
1589         .description = "rsvd0",
1590         .field_bit_size = 8,
1591         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1592         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1593         },
1594         {
1595         .description = "decap_func",
1596         .field_bit_size = 5,
1597         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
1598         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1599         .field_opr1 = {
1600         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 56) & 0xff,
1601         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 48) & 0xff,
1602         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 40) & 0xff,
1603         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 32) & 0xff,
1604         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 24) & 0xff,
1605         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 16) & 0xff,
1606         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 8) & 0xff,
1607         (uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP & 0xff},
1608         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
1609         .field_opr2 = {
1610                 ULP_THOR_SYM_DECAP_FUNC_THRU_TUN},
1611         .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
1612         .field_opr3 = {
1613         ULP_THOR_SYM_DECAP_FUNC_NONE}
1614         },
1615         {
1616         .description = "meter",
1617         .field_bit_size = 10,
1618         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1619         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1620         },
1621         {
1622         .description = "stats_op",
1623         .field_bit_size = 1,
1624         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1625         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1626         .field_opr1 = {
1627         1}
1628         },
1629         {
1630         .description = "stats_ptr",
1631         .field_bit_size = 16,
1632         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1633         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1634         .field_opr1 = {
1635         (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1636         BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
1637         },
1638         {
1639         .description = "vnic_or_vport",
1640         .field_bit_size = 11,
1641         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1642         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1643         .field_opr1 = {
1644         (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1645         BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
1646         },
1647         {
1648         .description = "use_default",
1649         .field_bit_size = 1,
1650         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1651         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1652         },
1653         {
1654         .description = "mirror",
1655         .field_bit_size = 4,
1656         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
1657         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1658         .field_opr1 = {
1659         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
1660         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
1661         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
1662         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
1663         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
1664         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
1665         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
1666         (uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
1667         .field_src2 = BNXT_ULP_FIELD_SRC_RF,
1668         .field_opr2 = {
1669                 (BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
1670                 BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
1671         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
1672         },
1673         {
1674         .description = "cond_copy",
1675         .field_bit_size = 1,
1676         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1677         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1678         },
1679         {
1680         .description = "vlan_del_rpt",
1681         .field_bit_size = 2,
1682         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
1683         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1684         .field_opr1 = {
1685         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
1686         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
1687         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
1688         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
1689         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
1690         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
1691         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
1692         (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff},
1693         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
1694         .field_opr2 = {
1695                 ULP_THOR_SYM_VLAN_DEL_RPT_STRIP_OUTER},
1696         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
1697         },
1698         {
1699         .description = "drop",
1700         .field_bit_size = 1,
1701         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1702         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1703         .field_opr1 = {
1704         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
1705         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
1706         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
1707         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
1708         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
1709         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
1710         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
1711         (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
1712         },
1713         {
1714         .description = "hit",
1715         .field_bit_size = 1,
1716         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1717         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1718         },
1719         {
1720         .description = "type",
1721         .field_bit_size = 3,
1722         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1723         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1724         .field_opr1 = {
1725         1}
1726         },
1727         /* act_tid: 1, , table: int_compact_act_record.0 */
1728         {
1729         .description = "rsvd0",
1730         .field_bit_size = 8,
1731         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1732         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1733         },
1734         {
1735         .description = "decap_func",
1736         .field_bit_size = 5,
1737         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
1738         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1739         .field_opr1 = {
1740         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 56) & 0xff,
1741         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 48) & 0xff,
1742         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 40) & 0xff,
1743         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 32) & 0xff,
1744         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 24) & 0xff,
1745         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 16) & 0xff,
1746         ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 8) & 0xff,
1747         (uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP & 0xff},
1748         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
1749         .field_opr2 = {
1750                 ULP_THOR_SYM_DECAP_FUNC_THRU_TUN},
1751         .field_src3 = BNXT_ULP_FIELD_SRC_CONST,
1752         .field_opr3 = {
1753         ULP_THOR_SYM_DECAP_FUNC_NONE}
1754         },
1755         {
1756         .description = "meter",
1757         .field_bit_size = 10,
1758         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1759         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1760         },
1761         {
1762         .description = "stats_op",
1763         .field_bit_size = 1,
1764         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1765         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1766         .field_opr1 = {
1767         1}
1768         },
1769         {
1770         .description = "stats_ptr",
1771         .field_bit_size = 16,
1772         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1773         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1774         .field_opr1 = {
1775         (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1776         BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
1777         },
1778         {
1779         .description = "vnic_or_vport",
1780         .field_bit_size = 11,
1781         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1782         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1783         .field_opr1 = {
1784         (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1785         BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
1786         },
1787         {
1788         .description = "use_default",
1789         .field_bit_size = 1,
1790         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1791         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1792         },
1793         {
1794         .description = "mirror",
1795         .field_bit_size = 4,
1796         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
1797         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1798         .field_opr1 = {
1799         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
1800         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
1801         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
1802         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
1803         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
1804         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
1805         ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
1806         (uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
1807         .field_src2 = BNXT_ULP_FIELD_SRC_RF,
1808         .field_opr2 = {
1809                 (BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
1810                 BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
1811         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
1812         },
1813         {
1814         .description = "cond_copy",
1815         .field_bit_size = 1,
1816         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1817         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1818         },
1819         {
1820         .description = "vlan_del_rpt",
1821         .field_bit_size = 2,
1822         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
1823         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1824         .field_opr1 = {
1825         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
1826         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
1827         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
1828         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
1829         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
1830         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
1831         ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
1832         (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff},
1833         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
1834         .field_opr2 = {
1835                 ULP_THOR_SYM_VLAN_DEL_RPT_STRIP_OUTER},
1836         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
1837         },
1838         {
1839         .description = "drop",
1840         .field_bit_size = 1,
1841         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1842         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1843         .field_opr1 = {
1844         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
1845         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
1846         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
1847         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
1848         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
1849         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
1850         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
1851         (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
1852         },
1853         {
1854         .description = "hit",
1855         .field_bit_size = 1,
1856         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1857         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1858         },
1859         {
1860         .description = "type",
1861         .field_bit_size = 3,
1862         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1863         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1864         },
1865         /* act_tid: 2, , table: mirror_tbl.alloc */
1866         {
1867         .description = "act_rec_ptr",
1868         .field_bit_size = 16,
1869         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1870         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1871         },
1872         {
1873         .description = "reserved",
1874         .field_bit_size = 13,
1875         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1876         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1877         },
1878         {
1879         .description = "ignore_drop",
1880         .field_bit_size = 1,
1881         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1882         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1883         },
1884         {
1885         .description = "copy_ing_or_egr",
1886         .field_bit_size = 1,
1887         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1888         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1889         },
1890         {
1891         .description = "enable",
1892         .field_bit_size = 1,
1893         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1894         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1895         .field_opr1 = {
1896         1}
1897         },
1898         /* act_tid: 2, , table: int_flow_counter_tbl.0 */
1899         {
1900         .description = "count",
1901         .field_bit_size = 64,
1902         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1903         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1904         },
1905         /* act_tid: 2, , table: int_compact_act_record.0 */
1906         {
1907         .description = "rsvd0",
1908         .field_bit_size = 8,
1909         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1910         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1911         },
1912         {
1913         .description = "decap_func",
1914         .field_bit_size = 5,
1915         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1916         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1917         },
1918         {
1919         .description = "meter",
1920         .field_bit_size = 10,
1921         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1922         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1923         },
1924         {
1925         .description = "stats_op",
1926         .field_bit_size = 1,
1927         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1928         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1929         .field_opr1 = {
1930         1}
1931         },
1932         {
1933         .description = "stats_ptr",
1934         .field_bit_size = 16,
1935         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1936         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1937         .field_opr1 = {
1938         (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1939         BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
1940         },
1941         {
1942         .description = "vnic_or_vport",
1943         .field_bit_size = 11,
1944         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1945         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1946         .field_opr1 = {
1947         (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1948         BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
1949         },
1950         {
1951         .description = "use_default",
1952         .field_bit_size = 1,
1953         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1954         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1955         },
1956         {
1957         .description = "mirror",
1958         .field_bit_size = 4,
1959         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1960         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1961         .field_opr1 = {
1962         (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
1963         BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
1964         },
1965         {
1966         .description = "cond_copy",
1967         .field_bit_size = 1,
1968         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1969         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1970         },
1971         {
1972         .description = "vlan_del_rpt",
1973         .field_bit_size = 2,
1974         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1975         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1976         },
1977         {
1978         .description = "drop",
1979         .field_bit_size = 1,
1980         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1981         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1982         },
1983         {
1984         .description = "hit",
1985         .field_bit_size = 1,
1986         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1987         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1988         },
1989         {
1990         .description = "type",
1991         .field_bit_size = 3,
1992         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
1993         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1994         },
1995         /* act_tid: 2, , table: mirror_tbl.wr */
1996         {
1997         .description = "act_rec_ptr",
1998         .field_bit_size = 16,
1999         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2000         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2001         .field_opr1 = {
2002         (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
2003         BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
2004         },
2005         {
2006         .description = "reserved",
2007         .field_bit_size = 13,
2008         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2009         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2010         },
2011         {
2012         .description = "ignore_drop",
2013         .field_bit_size = 1,
2014         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2015         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2016         .field_opr1 = {
2017         1}
2018         },
2019         {
2020         .description = "copy_ing_or_egr",
2021         .field_bit_size = 1,
2022         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2023         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2024         .field_opr1 = {
2025         1}
2026         },
2027         {
2028         .description = "enable",
2029         .field_bit_size = 1,
2030         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2031         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2032         .field_opr1 = {
2033         1}
2034         },
2035         /* act_tid: 2, , table: shared_mirror_record.wr */
2036         {
2037         .description = "rid",
2038         .field_bit_size = 32,
2039         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2040         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2041         .field_opr1 = {
2042         (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
2043         BNXT_ULP_RF_IDX_RID & 0xff}
2044         },
2045         {
2046         .description = "mirror_id",
2047         .field_bit_size = 4,
2048         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2049         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2050         .field_opr1 = {
2051         (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
2052         BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
2053         },
2054         /* act_tid: 3, , table: int_flow_counter_tbl.0 */
2055         {
2056         .description = "count",
2057         .field_bit_size = 64,
2058         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2059         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2060         },
2061         /* act_tid: 3, , table: mod_record.ing_ttl */
2062         {
2063         .description = "metadata_en",
2064         .field_bit_size = 1,
2065         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2066         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2067         },
2068         {
2069         .description = "rem_ovlan",
2070         .field_bit_size = 1,
2071         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2072         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2073         },
2074         {
2075         .description = "rem_ivlan",
2076         .field_bit_size = 1,
2077         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2078         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2079         },
2080         {
2081         .description = "rep_add_ivlan",
2082         .field_bit_size = 1,
2083         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2084         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2085         },
2086         {
2087         .description = "rep_add_ovlan",
2088         .field_bit_size = 1,
2089         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2090         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2091         },
2092         {
2093         .description = "ttl_update",
2094         .field_bit_size = 1,
2095         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2096         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2097         .field_opr1 = {
2098         1}
2099         },
2100         {
2101         .description = "tun_md_en",
2102         .field_bit_size = 1,
2103         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2104         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2105         },
2106         {
2107         .description = "reserved_en",
2108         .field_bit_size = 1,
2109         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2110         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2111         },
2112         {
2113         .description = "l2_dmac_en",
2114         .field_bit_size = 1,
2115         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2116         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2117         },
2118         {
2119         .description = "l2_smac_en",
2120         .field_bit_size = 1,
2121         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2122         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2123         },
2124         {
2125         .description = "l3_sip_ipv6_en",
2126         .field_bit_size = 1,
2127         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2128         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2129         },
2130         {
2131         .description = "l3_dip_ipv6_en",
2132         .field_bit_size = 1,
2133         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2134         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2135         },
2136         {
2137         .description = "l3_sip_ipv4_en",
2138         .field_bit_size = 1,
2139         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2140         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2141         .field_opr1 = {
2142         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
2143         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
2144         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
2145         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
2146         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
2147         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
2148         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
2149         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
2150         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2151         .field_opr2 = {
2152                 1},
2153         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
2154         },
2155         {
2156         .description = "l3_dip_ipv4_en",
2157         .field_bit_size = 1,
2158         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2159         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2160         .field_opr1 = {
2161         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
2162         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
2163         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
2164         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
2165         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
2166         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
2167         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
2168         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
2169         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2170         .field_opr2 = {
2171                 1},
2172         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
2173         },
2174         {
2175         .description = "l4_sport_en",
2176         .field_bit_size = 1,
2177         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2178         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2179         .field_opr1 = {
2180         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
2181         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
2182         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
2183         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
2184         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
2185         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
2186         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
2187         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
2188         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2189         .field_opr2 = {
2190                 1},
2191         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
2192         },
2193         {
2194         .description = "l4_dport_en",
2195         .field_bit_size = 1,
2196         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2197         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2198         .field_opr1 = {
2199         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
2200         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
2201         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
2202         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
2203         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
2204         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
2205         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
2206         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
2207         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2208         .field_opr2 = {
2209                 1},
2210         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
2211         },
2212         {
2213         .description = "metadata_data",
2214         .field_bit_size = 16,
2215         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2216         },
2217         {
2218         .description = "metadata_rsvd",
2219         .field_bit_size = 10,
2220         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2221         },
2222         {
2223         .description = "metadata_op",
2224         .field_bit_size = 2,
2225         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2226         },
2227         {
2228         .description = "metadata_prof",
2229         .field_bit_size = 4,
2230         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2231         },
2232         {
2233         .description = "ivlan_tpid",
2234         .field_bit_size = 16,
2235         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2236         },
2237         {
2238         .description = "ivlan_pri",
2239         .field_bit_size = 3,
2240         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2241         },
2242         {
2243         .description = "ivlan_de",
2244         .field_bit_size = 1,
2245         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2246         },
2247         {
2248         .description = "ivlan_vid",
2249         .field_bit_size = 12,
2250         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2251         },
2252         {
2253         .description = "ovlan_tpid",
2254         .field_bit_size = 16,
2255         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2256         },
2257         {
2258         .description = "ovlan_pri",
2259         .field_bit_size = 3,
2260         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2261         },
2262         {
2263         .description = "ovlan_de",
2264         .field_bit_size = 1,
2265         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2266         },
2267         {
2268         .description = "ovlan_vid",
2269         .field_bit_size = 12,
2270         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2271         },
2272         {
2273         .description = "alt_pfid",
2274         .field_bit_size = 4,
2275         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2276         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2277         },
2278         {
2279         .description = "alt_vid",
2280         .field_bit_size = 12,
2281         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2282         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2283         },
2284         {
2285         .description = "ttl_rsvd",
2286         .field_bit_size = 12,
2287         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2288         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2289         },
2290         {
2291         .description = "ttl_tl3_dec",
2292         .field_bit_size = 1,
2293         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2294         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2295         .field_opr1 = {
2296         (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
2297         BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
2298         },
2299         {
2300         .description = "ttl_il3_dec",
2301         .field_bit_size = 1,
2302         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2303         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2304         .field_opr1 = {
2305         (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
2306         BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
2307         },
2308         {
2309         .description = "ttl_tl3_rdir",
2310         .field_bit_size = 1,
2311         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2312         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2313         },
2314         {
2315         .description = "ttl_il3_rdir",
2316         .field_bit_size = 1,
2317         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2318         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2319         },
2320         {
2321         .description = "tun_new_prot",
2322         .field_bit_size = 16,
2323         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2324         },
2325         {
2326         .description = "tun_ex_prot",
2327         .field_bit_size = 16,
2328         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2329         },
2330         {
2331         .description = "tun_mv",
2332         .field_bit_size = 16,
2333         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2334         },
2335         {
2336         .description = "reserved",
2337         .field_bit_size = 0,
2338         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2339         },
2340         {
2341         .description = "l2_dmac",
2342         .field_bit_size = 48,
2343         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2344         },
2345         {
2346         .description = "l2_smac",
2347         .field_bit_size = 48,
2348         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2349         },
2350         {
2351         .description = "l3_sip_ipv6",
2352         .field_bit_size = 128,
2353         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2354         },
2355         {
2356         .description = "l3_dip_ipv6",
2357         .field_bit_size = 128,
2358         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2359         },
2360         {
2361         .description = "l3_sip_ipv4",
2362         .field_bit_size = 32,
2363         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2364         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2365         .field_opr1 = {
2366         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
2367         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
2368         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
2369         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
2370         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
2371         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
2372         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
2373         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
2374         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2375         .field_opr2 = {
2376                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
2377                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff},
2378         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
2379         },
2380         {
2381         .description = "l3_dip_ipv4",
2382         .field_bit_size = 32,
2383         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2384         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2385         .field_opr1 = {
2386         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
2387         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
2388         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
2389         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
2390         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
2391         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
2392         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
2393         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
2394         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2395         .field_opr2 = {
2396                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
2397                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff},
2398         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
2399         },
2400         {
2401         .description = "l4_sport",
2402         .field_bit_size = 16,
2403         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2404         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2405         .field_opr1 = {
2406         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
2407         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
2408         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
2409         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
2410         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
2411         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
2412         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
2413         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
2414         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2415         .field_opr2 = {
2416                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
2417                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
2418         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
2419         },
2420         {
2421         .description = "l4_dport",
2422         .field_bit_size = 16,
2423         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2424         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2425         .field_opr1 = {
2426         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
2427         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
2428         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
2429         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
2430         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
2431         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
2432         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
2433         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
2434         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2435         .field_opr2 = {
2436                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
2437                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
2438         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
2439         },
2440         /* act_tid: 3, , table: mod_record.ing_no_ttl */
2441         {
2442         .description = "metadata_en",
2443         .field_bit_size = 1,
2444         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2445         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2446         },
2447         {
2448         .description = "rem_ovlan",
2449         .field_bit_size = 1,
2450         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2451         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2452         },
2453         {
2454         .description = "rem_ivlan",
2455         .field_bit_size = 1,
2456         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2457         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2458         },
2459         {
2460         .description = "rep_add_ivlan",
2461         .field_bit_size = 1,
2462         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2463         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2464         },
2465         {
2466         .description = "rep_add_ovlan",
2467         .field_bit_size = 1,
2468         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2469         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2470         },
2471         {
2472         .description = "ttl_update",
2473         .field_bit_size = 1,
2474         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2475         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2476         },
2477         {
2478         .description = "tun_md_en",
2479         .field_bit_size = 1,
2480         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2481         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2482         },
2483         {
2484         .description = "reserved_en",
2485         .field_bit_size = 1,
2486         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2487         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2488         },
2489         {
2490         .description = "l2_dmac_en",
2491         .field_bit_size = 1,
2492         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2493         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2494         },
2495         {
2496         .description = "l2_smac_en",
2497         .field_bit_size = 1,
2498         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2499         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2500         },
2501         {
2502         .description = "l3_sip_ipv6_en",
2503         .field_bit_size = 1,
2504         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2505         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2506         },
2507         {
2508         .description = "l3_dip_ipv6_en",
2509         .field_bit_size = 1,
2510         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2511         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2512         },
2513         {
2514         .description = "l3_sip_ipv4_en",
2515         .field_bit_size = 1,
2516         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2517         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2518         .field_opr1 = {
2519         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
2520         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
2521         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
2522         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
2523         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
2524         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
2525         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
2526         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
2527         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2528         .field_opr2 = {
2529                 1},
2530         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
2531         },
2532         {
2533         .description = "l3_dip_ipv4_en",
2534         .field_bit_size = 1,
2535         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2536         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2537         .field_opr1 = {
2538         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
2539         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
2540         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
2541         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
2542         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
2543         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
2544         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
2545         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
2546         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2547         .field_opr2 = {
2548                 1},
2549         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
2550         },
2551         {
2552         .description = "l4_sport_en",
2553         .field_bit_size = 1,
2554         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2555         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2556         .field_opr1 = {
2557         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
2558         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
2559         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
2560         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
2561         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
2562         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
2563         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
2564         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
2565         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2566         .field_opr2 = {
2567                 1},
2568         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
2569         },
2570         {
2571         .description = "l4_dport_en",
2572         .field_bit_size = 1,
2573         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2574         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2575         .field_opr1 = {
2576         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
2577         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
2578         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
2579         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
2580         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
2581         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
2582         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
2583         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
2584         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2585         .field_opr2 = {
2586                 1},
2587         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
2588         },
2589         {
2590         .description = "metadata_data",
2591         .field_bit_size = 16,
2592         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2593         },
2594         {
2595         .description = "metadata_rsvd",
2596         .field_bit_size = 10,
2597         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2598         },
2599         {
2600         .description = "metadata_op",
2601         .field_bit_size = 2,
2602         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2603         },
2604         {
2605         .description = "metadata_prof",
2606         .field_bit_size = 4,
2607         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2608         },
2609         {
2610         .description = "ivlan_tpid",
2611         .field_bit_size = 16,
2612         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2613         },
2614         {
2615         .description = "ivlan_pri",
2616         .field_bit_size = 3,
2617         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2618         },
2619         {
2620         .description = "ivlan_de",
2621         .field_bit_size = 1,
2622         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2623         },
2624         {
2625         .description = "ivlan_vid",
2626         .field_bit_size = 12,
2627         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2628         },
2629         {
2630         .description = "ovlan_tpid",
2631         .field_bit_size = 16,
2632         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2633         },
2634         {
2635         .description = "ovlan_pri",
2636         .field_bit_size = 3,
2637         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2638         },
2639         {
2640         .description = "ovlan_de",
2641         .field_bit_size = 1,
2642         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2643         },
2644         {
2645         .description = "ovlan_vid",
2646         .field_bit_size = 12,
2647         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2648         },
2649         {
2650         .description = "alt_pfid",
2651         .field_bit_size = 4,
2652         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2653         },
2654         {
2655         .description = "alt_vid",
2656         .field_bit_size = 12,
2657         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2658         },
2659         {
2660         .description = "ttl_rsvd",
2661         .field_bit_size = 12,
2662         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2663         },
2664         {
2665         .description = "ttl_tl3_dec",
2666         .field_bit_size = 1,
2667         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2668         },
2669         {
2670         .description = "ttl_il3_dec",
2671         .field_bit_size = 1,
2672         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2673         },
2674         {
2675         .description = "ttl_tl3_rdir",
2676         .field_bit_size = 1,
2677         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2678         },
2679         {
2680         .description = "ttl_il3_rdir",
2681         .field_bit_size = 1,
2682         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2683         },
2684         {
2685         .description = "tun_new_prot",
2686         .field_bit_size = 16,
2687         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2688         },
2689         {
2690         .description = "tun_ex_prot",
2691         .field_bit_size = 16,
2692         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2693         },
2694         {
2695         .description = "tun_mv",
2696         .field_bit_size = 16,
2697         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2698         },
2699         {
2700         .description = "reserved",
2701         .field_bit_size = 0,
2702         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2703         },
2704         {
2705         .description = "l2_dmac",
2706         .field_bit_size = 48,
2707         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2708         },
2709         {
2710         .description = "l2_smac",
2711         .field_bit_size = 48,
2712         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2713         },
2714         {
2715         .description = "l3_sip_ipv6",
2716         .field_bit_size = 128,
2717         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2718         },
2719         {
2720         .description = "l3_dip_ipv6",
2721         .field_bit_size = 128,
2722         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
2723         },
2724         {
2725         .description = "l3_sip_ipv4",
2726         .field_bit_size = 32,
2727         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2728         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2729         .field_opr1 = {
2730         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
2731         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
2732         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
2733         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
2734         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
2735         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
2736         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
2737         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
2738         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2739         .field_opr2 = {
2740                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
2741                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff},
2742         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
2743         },
2744         {
2745         .description = "l3_dip_ipv4",
2746         .field_bit_size = 32,
2747         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2748         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2749         .field_opr1 = {
2750         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
2751         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
2752         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
2753         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
2754         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
2755         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
2756         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
2757         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
2758         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2759         .field_opr2 = {
2760                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
2761                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff},
2762         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
2763         },
2764         {
2765         .description = "l4_sport",
2766         .field_bit_size = 16,
2767         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2768         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2769         .field_opr1 = {
2770         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
2771         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
2772         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
2773         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
2774         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
2775         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
2776         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
2777         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
2778         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2779         .field_opr2 = {
2780                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
2781                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
2782         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
2783         },
2784         {
2785         .description = "l4_dport",
2786         .field_bit_size = 16,
2787         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
2788         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2789         .field_opr1 = {
2790         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
2791         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
2792         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
2793         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
2794         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
2795         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
2796         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
2797         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
2798         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2799         .field_opr2 = {
2800                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
2801                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
2802         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
2803         },
2804         /* act_tid: 3, , table: int_full_act_record.0 */
2805         {
2806         .description = "sp_rec_ptr",
2807         .field_bit_size = 16,
2808         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2809         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2810         },
2811         {
2812         .description = "encap_ptr",
2813         .field_bit_size = 16,
2814         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2815         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2816         },
2817         {
2818         .description = "mod_rec_ptr",
2819         .field_bit_size = 16,
2820         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2821         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2822         .field_opr1 = {
2823         (BNXT_ULP_RF_IDX_MODIFY_PTR >> 8) & 0xff,
2824         BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff}
2825         },
2826         {
2827         .description = "rsvd1",
2828         .field_bit_size = 16,
2829         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2830         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2831         },
2832         {
2833         .description = "rsvd0",
2834         .field_bit_size = 8,
2835         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2836         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2837         },
2838         {
2839         .description = "decap_func",
2840         .field_bit_size = 5,
2841         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2842         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2843         },
2844         {
2845         .description = "meter",
2846         .field_bit_size = 10,
2847         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2848         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2849         },
2850         {
2851         .description = "stats_op",
2852         .field_bit_size = 1,
2853         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2854         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2855         .field_opr1 = {
2856         1}
2857         },
2858         {
2859         .description = "stats_ptr",
2860         .field_bit_size = 16,
2861         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2862         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2863         .field_opr1 = {
2864         (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2865         BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
2866         },
2867         {
2868         .description = "vnic_or_vport",
2869         .field_bit_size = 11,
2870         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2871         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2872         .field_opr1 = {
2873         (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
2874         BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
2875         },
2876         {
2877         .description = "use_default",
2878         .field_bit_size = 1,
2879         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2880         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2881         },
2882         {
2883         .description = "mirror",
2884         .field_bit_size = 4,
2885         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2886         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2887         },
2888         {
2889         .description = "cond_copy",
2890         .field_bit_size = 1,
2891         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2892         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2893         },
2894         {
2895         .description = "vlan_del_rpt",
2896         .field_bit_size = 2,
2897         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2898         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2899         },
2900         {
2901         .description = "drop",
2902         .field_bit_size = 1,
2903         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2904         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2905         },
2906         {
2907         .description = "hit",
2908         .field_bit_size = 1,
2909         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2910         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2911         },
2912         {
2913         .description = "type",
2914         .field_bit_size = 3,
2915         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2916         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2917         .field_opr1 = {
2918         1}
2919         },
2920         /* act_tid: 4, , table: int_flow_counter_tbl.0 */
2921         {
2922         .description = "count",
2923         .field_bit_size = 64,
2924         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2925         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2926         },
2927         /* act_tid: 4, , table: int_vtag_encap_record.0 */
2928         {
2929         .description = "ecv_valid",
2930         .field_bit_size = 1,
2931         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2932         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2933         .field_opr1 = {
2934         1}
2935         },
2936         {
2937         .description = "ecv_custom_en",
2938         .field_bit_size = 1,
2939         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2940         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2941         },
2942         {
2943         .description = "ecv_vtag_type",
2944         .field_bit_size = 4,
2945         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2946         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2947         .field_opr1 = {
2948         ULP_THOR_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
2949         },
2950         {
2951         .description = "ecv_l2_en",
2952         .field_bit_size = 1,
2953         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2954         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2955         },
2956         {
2957         .description = "ecv_l3_type",
2958         .field_bit_size = 3,
2959         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2960         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2961         },
2962         {
2963         .description = "ecv_l4_type",
2964         .field_bit_size = 3,
2965         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2966         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2967         },
2968         {
2969         .description = "ecv_tun_type",
2970         .field_bit_size = 3,
2971         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2972         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2973         },
2974         {
2975         .description = "vtag_tpid",
2976         .field_bit_size = 16,
2977         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2978         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2979         .field_opr1 = {
2980         (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
2981         BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff}
2982         },
2983         {
2984         .description = "vtag_pcp",
2985         .field_bit_size = 3,
2986         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2987         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2988         .field_opr1 = {
2989         (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
2990         BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
2991         },
2992         {
2993         .description = "vtag_de",
2994         .field_bit_size = 1,
2995         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
2996         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2997         },
2998         {
2999         .description = "vtag_vid",
3000         .field_bit_size = 12,
3001         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3002         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3003         .field_opr1 = {
3004         (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
3005         BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff}
3006         },
3007         /* act_tid: 4, , table: mod_record.dec_ttl_egr */
3008         {
3009         .description = "metadata_en",
3010         .field_bit_size = 1,
3011         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3012         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3013         },
3014         {
3015         .description = "rem_ovlan",
3016         .field_bit_size = 1,
3017         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3018         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3019         },
3020         {
3021         .description = "rem_ivlan",
3022         .field_bit_size = 1,
3023         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3024         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3025         },
3026         {
3027         .description = "rep_add_ivlan",
3028         .field_bit_size = 1,
3029         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3030         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3031         },
3032         {
3033         .description = "rep_add_ovlan",
3034         .field_bit_size = 1,
3035         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3036         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3037         },
3038         {
3039         .description = "ttl_update",
3040         .field_bit_size = 1,
3041         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3042         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3043         .field_opr1 = {
3044         1}
3045         },
3046         {
3047         .description = "tun_md_en",
3048         .field_bit_size = 1,
3049         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3050         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3051         },
3052         {
3053         .description = "reserved_en",
3054         .field_bit_size = 1,
3055         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3056         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3057         },
3058         {
3059         .description = "l2_dmac_en",
3060         .field_bit_size = 1,
3061         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3062         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3063         },
3064         {
3065         .description = "l2_smac_en",
3066         .field_bit_size = 1,
3067         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3068         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3069         },
3070         {
3071         .description = "l3_sip_ipv6_en",
3072         .field_bit_size = 1,
3073         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3074         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3075         },
3076         {
3077         .description = "l3_dip_ipv6_en",
3078         .field_bit_size = 1,
3079         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3080         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3081         },
3082         {
3083         .description = "l3_sip_ipv4_en",
3084         .field_bit_size = 1,
3085         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3086         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3087         },
3088         {
3089         .description = "l3_dip_ipv4_en",
3090         .field_bit_size = 1,
3091         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3092         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3093         },
3094         {
3095         .description = "l4_sport_en",
3096         .field_bit_size = 1,
3097         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3098         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3099         },
3100         {
3101         .description = "l4_dport_en",
3102         .field_bit_size = 1,
3103         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3104         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3105         },
3106         {
3107         .description = "metadata_data",
3108         .field_bit_size = 16,
3109         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3110         },
3111         {
3112         .description = "metadata_rsvd",
3113         .field_bit_size = 10,
3114         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3115         },
3116         {
3117         .description = "metadata_op",
3118         .field_bit_size = 2,
3119         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3120         },
3121         {
3122         .description = "metadata_prof",
3123         .field_bit_size = 4,
3124         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3125         },
3126         {
3127         .description = "ivlan_tpid",
3128         .field_bit_size = 16,
3129         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3130         },
3131         {
3132         .description = "ivlan_pri",
3133         .field_bit_size = 3,
3134         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3135         },
3136         {
3137         .description = "ivlan_de",
3138         .field_bit_size = 1,
3139         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3140         },
3141         {
3142         .description = "ivlan_vid",
3143         .field_bit_size = 12,
3144         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3145         },
3146         {
3147         .description = "ovlan_tpid",
3148         .field_bit_size = 16,
3149         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3150         },
3151         {
3152         .description = "ovlan_pri",
3153         .field_bit_size = 3,
3154         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3155         },
3156         {
3157         .description = "ovlan_de",
3158         .field_bit_size = 1,
3159         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3160         },
3161         {
3162         .description = "ovlan_vid",
3163         .field_bit_size = 12,
3164         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3165         },
3166         {
3167         .description = "alt_pfid",
3168         .field_bit_size = 4,
3169         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3170         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3171         },
3172         {
3173         .description = "alt_vid",
3174         .field_bit_size = 12,
3175         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3176         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3177         },
3178         {
3179         .description = "ttl_rsvd",
3180         .field_bit_size = 12,
3181         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3182         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3183         },
3184         {
3185         .description = "ttl_tl3_dec",
3186         .field_bit_size = 1,
3187         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3188         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3189         .field_opr1 = {
3190         (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3191         BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
3192         },
3193         {
3194         .description = "ttl_il3_dec",
3195         .field_bit_size = 1,
3196         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3197         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3198         .field_opr1 = {
3199         (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3200         BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
3201         },
3202         {
3203         .description = "ttl_tl3_rdir",
3204         .field_bit_size = 1,
3205         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3206         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3207         },
3208         {
3209         .description = "ttl_il3_rdir",
3210         .field_bit_size = 1,
3211         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3212         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3213         },
3214         {
3215         .description = "tun_new_prot",
3216         .field_bit_size = 16,
3217         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3218         },
3219         {
3220         .description = "tun_ex_prot",
3221         .field_bit_size = 16,
3222         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3223         },
3224         {
3225         .description = "tun_mv",
3226         .field_bit_size = 16,
3227         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3228         },
3229         {
3230         .description = "reserved",
3231         .field_bit_size = 0,
3232         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3233         },
3234         {
3235         .description = "l2_dmac",
3236         .field_bit_size = 48,
3237         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3238         },
3239         {
3240         .description = "l2_smac",
3241         .field_bit_size = 48,
3242         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3243         },
3244         {
3245         .description = "l3_sip_ipv6",
3246         .field_bit_size = 128,
3247         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3248         },
3249         {
3250         .description = "l3_dip_ipv6",
3251         .field_bit_size = 128,
3252         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3253         },
3254         {
3255         .description = "l3_sip_ipv4",
3256         .field_bit_size = 32,
3257         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3258         },
3259         {
3260         .description = "l3_dip_ipv4",
3261         .field_bit_size = 32,
3262         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3263         },
3264         {
3265         .description = "l4_sport",
3266         .field_bit_size = 16,
3267         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3268         },
3269         {
3270         .description = "l4_dport",
3271         .field_bit_size = 16,
3272         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3273         },
3274         /* act_tid: 4, , table: int_full_act_record.0 */
3275         {
3276         .description = "sp_rec_ptr",
3277         .field_bit_size = 16,
3278         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3279         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3280         },
3281         {
3282         .description = "encap_ptr",
3283         .field_bit_size = 16,
3284         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3285         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3286         .field_opr1 = {
3287         (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
3288         BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
3289         },
3290         {
3291         .description = "mod_rec_ptr",
3292         .field_bit_size = 16,
3293         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3294         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3295         .field_opr1 = {
3296         (BNXT_ULP_RF_IDX_MODIFY_PTR >> 8) & 0xff,
3297         BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff}
3298         },
3299         {
3300         .description = "rsvd1",
3301         .field_bit_size = 16,
3302         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3303         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3304         },
3305         {
3306         .description = "rsvd0",
3307         .field_bit_size = 8,
3308         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3309         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3310         },
3311         {
3312         .description = "decap_func",
3313         .field_bit_size = 5,
3314         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3315         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3316         },
3317         {
3318         .description = "meter",
3319         .field_bit_size = 10,
3320         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3321         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3322         },
3323         {
3324         .description = "stats_op",
3325         .field_bit_size = 1,
3326         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3327         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3328         .field_opr1 = {
3329         1}
3330         },
3331         {
3332         .description = "stats_ptr",
3333         .field_bit_size = 16,
3334         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3335         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3336         .field_opr1 = {
3337         (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3338         BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
3339         },
3340         {
3341         .description = "vnic_or_vport",
3342         .field_bit_size = 11,
3343         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3344         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3345         .field_opr1 = {
3346         (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3347         BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
3348         },
3349         {
3350         .description = "use_default",
3351         .field_bit_size = 1,
3352         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3353         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3354         },
3355         {
3356         .description = "mirror",
3357         .field_bit_size = 4,
3358         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3359         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3360         },
3361         {
3362         .description = "cond_copy",
3363         .field_bit_size = 1,
3364         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3365         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3366         },
3367         {
3368         .description = "vlan_del_rpt",
3369         .field_bit_size = 2,
3370         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3371         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3372         },
3373         {
3374         .description = "drop",
3375         .field_bit_size = 1,
3376         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3377         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3378         .field_opr1 = {
3379         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
3380         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
3381         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
3382         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
3383         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
3384         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
3385         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
3386         (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
3387         },
3388         {
3389         .description = "hit",
3390         .field_bit_size = 1,
3391         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3392         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3393         },
3394         {
3395         .description = "type",
3396         .field_bit_size = 3,
3397         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3398         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3399         .field_opr1 = {
3400         1}
3401         },
3402         /* act_tid: 4, , table: int_compact_act_record.0 */
3403         {
3404         .description = "rsvd0",
3405         .field_bit_size = 8,
3406         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3407         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3408         },
3409         {
3410         .description = "decap_func",
3411         .field_bit_size = 5,
3412         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3413         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3414         },
3415         {
3416         .description = "meter",
3417         .field_bit_size = 10,
3418         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3419         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3420         },
3421         {
3422         .description = "stats_op",
3423         .field_bit_size = 1,
3424         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3425         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3426         .field_opr1 = {
3427         1}
3428         },
3429         {
3430         .description = "stats_ptr",
3431         .field_bit_size = 16,
3432         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3433         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3434         .field_opr1 = {
3435         (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3436         BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
3437         },
3438         {
3439         .description = "vnic_or_vport",
3440         .field_bit_size = 11,
3441         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3442         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3443         .field_opr1 = {
3444         (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3445         BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
3446         },
3447         {
3448         .description = "use_default",
3449         .field_bit_size = 1,
3450         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3451         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3452         },
3453         {
3454         .description = "mirror",
3455         .field_bit_size = 4,
3456         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3457         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3458         },
3459         {
3460         .description = "cond_copy",
3461         .field_bit_size = 1,
3462         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3463         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3464         },
3465         {
3466         .description = "vlan_del_rpt",
3467         .field_bit_size = 2,
3468         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3469         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3470         },
3471         {
3472         .description = "drop",
3473         .field_bit_size = 1,
3474         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3475         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3476         .field_opr1 = {
3477         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
3478         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
3479         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
3480         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
3481         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
3482         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
3483         ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
3484         (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
3485         },
3486         {
3487         .description = "hit",
3488         .field_bit_size = 1,
3489         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3490         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3491         },
3492         {
3493         .description = "type",
3494         .field_bit_size = 3,
3495         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3496         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3497         },
3498         /* act_tid: 5, , table: int_flow_counter_tbl.0 */
3499         {
3500         .description = "count",
3501         .field_bit_size = 64,
3502         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3503         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3504         },
3505         /* act_tid: 5, , table: mod_record.ing_ttl */
3506         {
3507         .description = "metadata_en",
3508         .field_bit_size = 1,
3509         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3510         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3511         },
3512         {
3513         .description = "rem_ovlan",
3514         .field_bit_size = 1,
3515         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3516         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3517         },
3518         {
3519         .description = "rem_ivlan",
3520         .field_bit_size = 1,
3521         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3522         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3523         },
3524         {
3525         .description = "rep_add_ivlan",
3526         .field_bit_size = 1,
3527         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3528         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3529         },
3530         {
3531         .description = "rep_add_ovlan",
3532         .field_bit_size = 1,
3533         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3534         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3535         },
3536         {
3537         .description = "ttl_update",
3538         .field_bit_size = 1,
3539         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3540         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3541         .field_opr1 = {
3542         1}
3543         },
3544         {
3545         .description = "tun_md_en",
3546         .field_bit_size = 1,
3547         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3548         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3549         },
3550         {
3551         .description = "reserved_en",
3552         .field_bit_size = 1,
3553         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3554         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3555         },
3556         {
3557         .description = "l2_dmac_en",
3558         .field_bit_size = 1,
3559         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3560         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3561         },
3562         {
3563         .description = "l2_smac_en",
3564         .field_bit_size = 1,
3565         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3566         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3567         },
3568         {
3569         .description = "l3_sip_ipv6_en",
3570         .field_bit_size = 1,
3571         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3572         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3573         },
3574         {
3575         .description = "l3_dip_ipv6_en",
3576         .field_bit_size = 1,
3577         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3578         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3579         },
3580         {
3581         .description = "l3_sip_ipv4_en",
3582         .field_bit_size = 1,
3583         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3584         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3585         .field_opr1 = {
3586         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
3587         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
3588         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
3589         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
3590         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
3591         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
3592         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
3593         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
3594         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
3595         .field_opr2 = {
3596                 1},
3597         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
3598         },
3599         {
3600         .description = "l3_dip_ipv4_en",
3601         .field_bit_size = 1,
3602         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3603         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3604         .field_opr1 = {
3605         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
3606         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
3607         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
3608         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
3609         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
3610         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
3611         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
3612         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
3613         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
3614         .field_opr2 = {
3615                 1},
3616         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
3617         },
3618         {
3619         .description = "l4_sport_en",
3620         .field_bit_size = 1,
3621         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3622         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3623         .field_opr1 = {
3624         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
3625         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
3626         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
3627         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
3628         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
3629         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
3630         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
3631         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
3632         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
3633         .field_opr2 = {
3634                 1},
3635         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
3636         },
3637         {
3638         .description = "l4_dport_en",
3639         .field_bit_size = 1,
3640         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3641         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3642         .field_opr1 = {
3643         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
3644         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
3645         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
3646         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
3647         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
3648         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
3649         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
3650         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
3651         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
3652         .field_opr2 = {
3653                 1},
3654         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
3655         },
3656         {
3657         .description = "metadata_data",
3658         .field_bit_size = 16,
3659         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3660         },
3661         {
3662         .description = "metadata_rsvd",
3663         .field_bit_size = 10,
3664         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3665         },
3666         {
3667         .description = "metadata_op",
3668         .field_bit_size = 2,
3669         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3670         },
3671         {
3672         .description = "metadata_prof",
3673         .field_bit_size = 4,
3674         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3675         },
3676         {
3677         .description = "ivlan_tpid",
3678         .field_bit_size = 16,
3679         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3680         },
3681         {
3682         .description = "ivlan_pri",
3683         .field_bit_size = 3,
3684         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3685         },
3686         {
3687         .description = "ivlan_de",
3688         .field_bit_size = 1,
3689         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3690         },
3691         {
3692         .description = "ivlan_vid",
3693         .field_bit_size = 12,
3694         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3695         },
3696         {
3697         .description = "ovlan_tpid",
3698         .field_bit_size = 16,
3699         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3700         },
3701         {
3702         .description = "ovlan_pri",
3703         .field_bit_size = 3,
3704         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3705         },
3706         {
3707         .description = "ovlan_de",
3708         .field_bit_size = 1,
3709         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3710         },
3711         {
3712         .description = "ovlan_vid",
3713         .field_bit_size = 12,
3714         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3715         },
3716         {
3717         .description = "alt_pfid",
3718         .field_bit_size = 4,
3719         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3720         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3721         },
3722         {
3723         .description = "alt_vid",
3724         .field_bit_size = 12,
3725         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3726         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3727         },
3728         {
3729         .description = "ttl_rsvd",
3730         .field_bit_size = 12,
3731         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3732         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3733         },
3734         {
3735         .description = "ttl_tl3_dec",
3736         .field_bit_size = 1,
3737         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3738         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3739         .field_opr1 = {
3740         (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3741         BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
3742         },
3743         {
3744         .description = "ttl_il3_dec",
3745         .field_bit_size = 1,
3746         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3747         .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3748         .field_opr1 = {
3749         (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3750         BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
3751         },
3752         {
3753         .description = "ttl_tl3_rdir",
3754         .field_bit_size = 1,
3755         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3756         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3757         },
3758         {
3759         .description = "ttl_il3_rdir",
3760         .field_bit_size = 1,
3761         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3762         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3763         },
3764         {
3765         .description = "tun_new_prot",
3766         .field_bit_size = 16,
3767         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3768         },
3769         {
3770         .description = "tun_ex_prot",
3771         .field_bit_size = 16,
3772         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3773         },
3774         {
3775         .description = "tun_mv",
3776         .field_bit_size = 16,
3777         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3778         },
3779         {
3780         .description = "reserved",
3781         .field_bit_size = 0,
3782         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3783         },
3784         {
3785         .description = "l2_dmac",
3786         .field_bit_size = 48,
3787         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3788         },
3789         {
3790         .description = "l2_smac",
3791         .field_bit_size = 48,
3792         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3793         },
3794         {
3795         .description = "l3_sip_ipv6",
3796         .field_bit_size = 128,
3797         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3798         },
3799         {
3800         .description = "l3_dip_ipv6",
3801         .field_bit_size = 128,
3802         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
3803         },
3804         {
3805         .description = "l3_sip_ipv4",
3806         .field_bit_size = 32,
3807         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3808         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3809         .field_opr1 = {
3810         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
3811         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
3812         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
3813         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
3814         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
3815         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
3816         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
3817         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
3818         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3819         .field_opr2 = {
3820                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
3821                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff},
3822         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
3823         },
3824         {
3825         .description = "l3_dip_ipv4",
3826         .field_bit_size = 32,
3827         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3828         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3829         .field_opr1 = {
3830         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
3831         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
3832         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
3833         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
3834         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
3835         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
3836         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
3837         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
3838         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3839         .field_opr2 = {
3840                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
3841                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff},
3842         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
3843         },
3844         {
3845         .description = "l4_sport",
3846         .field_bit_size = 16,
3847         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3848         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3849         .field_opr1 = {
3850         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
3851         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
3852         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
3853         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
3854         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
3855         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
3856         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
3857         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
3858         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3859         .field_opr2 = {
3860                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
3861                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
3862         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
3863         },
3864         {
3865         .description = "l4_dport",
3866         .field_bit_size = 16,
3867         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3868         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3869         .field_opr1 = {
3870         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
3871         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
3872         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
3873         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
3874         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
3875         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
3876         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
3877         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
3878         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3879         .field_opr2 = {
3880                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
3881                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
3882         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
3883         },
3884         /* act_tid: 5, , table: mod_record.ing_no_ttl */
3885         {
3886         .description = "metadata_en",
3887         .field_bit_size = 1,
3888         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3889         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3890         },
3891         {
3892         .description = "rem_ovlan",
3893         .field_bit_size = 1,
3894         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3895         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3896         },
3897         {
3898         .description = "rem_ivlan",
3899         .field_bit_size = 1,
3900         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3901         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3902         },
3903         {
3904         .description = "rep_add_ivlan",
3905         .field_bit_size = 1,
3906         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3907         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3908         },
3909         {
3910         .description = "rep_add_ovlan",
3911         .field_bit_size = 1,
3912         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3913         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3914         },
3915         {
3916         .description = "ttl_update",
3917         .field_bit_size = 1,
3918         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3919         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3920         },
3921         {
3922         .description = "tun_md_en",
3923         .field_bit_size = 1,
3924         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3925         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3926         },
3927         {
3928         .description = "reserved_en",
3929         .field_bit_size = 1,
3930         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3931         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3932         },
3933         {
3934         .description = "l2_dmac_en",
3935         .field_bit_size = 1,
3936         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3937         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3938         },
3939         {
3940         .description = "l2_smac_en",
3941         .field_bit_size = 1,
3942         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3943         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3944         },
3945         {
3946         .description = "l3_sip_ipv6_en",
3947         .field_bit_size = 1,
3948         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3949         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3950         },
3951         {
3952         .description = "l3_dip_ipv6_en",
3953         .field_bit_size = 1,
3954         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
3955         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3956         },
3957         {
3958         .description = "l3_sip_ipv4_en",
3959         .field_bit_size = 1,
3960         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3961         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3962         .field_opr1 = {
3963         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
3964         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
3965         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
3966         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
3967         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
3968         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
3969         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
3970         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
3971         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
3972         .field_opr2 = {
3973                 1},
3974         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
3975         },
3976         {
3977         .description = "l3_dip_ipv4_en",
3978         .field_bit_size = 1,
3979         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3980         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3981         .field_opr1 = {
3982         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
3983         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
3984         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
3985         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
3986         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
3987         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
3988         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
3989         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
3990         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
3991         .field_opr2 = {
3992                 1},
3993         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
3994         },
3995         {
3996         .description = "l4_sport_en",
3997         .field_bit_size = 1,
3998         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
3999         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4000         .field_opr1 = {
4001         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
4002         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
4003         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
4004         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
4005         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
4006         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
4007         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
4008         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
4009         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
4010         .field_opr2 = {
4011                 1},
4012         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
4013         },
4014         {
4015         .description = "l4_dport_en",
4016         .field_bit_size = 1,
4017         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4018         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4019         .field_opr1 = {
4020         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
4021         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
4022         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
4023         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
4024         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
4025         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
4026         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
4027         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
4028         .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
4029         .field_opr2 = {
4030                 1},
4031         .field_src3 = BNXT_ULP_FIELD_SRC_ZERO
4032         },
4033         {
4034         .description = "metadata_data",
4035         .field_bit_size = 16,
4036         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4037         },
4038         {
4039         .description = "metadata_rsvd",
4040         .field_bit_size = 10,
4041         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4042         },
4043         {
4044         .description = "metadata_op",
4045         .field_bit_size = 2,
4046         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4047         },
4048         {
4049         .description = "metadata_prof",
4050         .field_bit_size = 4,
4051         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4052         },
4053         {
4054         .description = "ivlan_tpid",
4055         .field_bit_size = 16,
4056         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4057         },
4058         {
4059         .description = "ivlan_pri",
4060         .field_bit_size = 3,
4061         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4062         },
4063         {
4064         .description = "ivlan_de",
4065         .field_bit_size = 1,
4066         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4067         },
4068         {
4069         .description = "ivlan_vid",
4070         .field_bit_size = 12,
4071         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4072         },
4073         {
4074         .description = "ovlan_tpid",
4075         .field_bit_size = 16,
4076         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4077         },
4078         {
4079         .description = "ovlan_pri",
4080         .field_bit_size = 3,
4081         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4082         },
4083         {
4084         .description = "ovlan_de",
4085         .field_bit_size = 1,
4086         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4087         },
4088         {
4089         .description = "ovlan_vid",
4090         .field_bit_size = 12,
4091         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4092         },
4093         {
4094         .description = "alt_pfid",
4095         .field_bit_size = 4,
4096         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4097         },
4098         {
4099         .description = "alt_vid",
4100         .field_bit_size = 12,
4101         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4102         },
4103         {
4104         .description = "ttl_rsvd",
4105         .field_bit_size = 12,
4106         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4107         },
4108         {
4109         .description = "ttl_tl3_dec",
4110         .field_bit_size = 1,
4111         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4112         },
4113         {
4114         .description = "ttl_il3_dec",
4115         .field_bit_size = 1,
4116         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4117         },
4118         {
4119         .description = "ttl_tl3_rdir",
4120         .field_bit_size = 1,
4121         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4122         },
4123         {
4124         .description = "ttl_il3_rdir",
4125         .field_bit_size = 1,
4126         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4127         },
4128         {
4129         .description = "tun_new_prot",
4130         .field_bit_size = 16,
4131         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4132         },
4133         {
4134         .description = "tun_ex_prot",
4135         .field_bit_size = 16,
4136         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4137         },
4138         {
4139         .description = "tun_mv",
4140         .field_bit_size = 16,
4141         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4142         },
4143         {
4144         .description = "reserved",
4145         .field_bit_size = 0,
4146         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4147         },
4148         {
4149         .description = "l2_dmac",
4150         .field_bit_size = 48,
4151         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4152         },
4153         {
4154         .description = "l2_smac",
4155         .field_bit_size = 48,
4156         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4157         },
4158         {
4159         .description = "l3_sip_ipv6",
4160         .field_bit_size = 128,
4161         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4162         },
4163         {
4164         .description = "l3_dip_ipv6",
4165         .field_bit_size = 128,
4166         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4167         },
4168         {
4169         .description = "l3_sip_ipv4",
4170         .field_bit_size = 32,
4171         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4172         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4173         .field_opr1 = {
4174         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
4175         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
4176         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
4177         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
4178         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
4179         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
4180         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
4181         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
4182         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4183         .field_opr2 = {
4184                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
4185                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff},
4186         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4187         },
4188         {
4189         .description = "l3_dip_ipv4",
4190         .field_bit_size = 32,
4191         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4192         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4193         .field_opr1 = {
4194         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
4195         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
4196         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
4197         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
4198         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
4199         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
4200         ((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
4201         (uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
4202         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4203         .field_opr2 = {
4204                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
4205                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff},
4206         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4207         },
4208         {
4209         .description = "l4_sport",
4210         .field_bit_size = 16,
4211         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4212         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4213         .field_opr1 = {
4214         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
4215         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
4216         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
4217         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
4218         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
4219         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
4220         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
4221         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
4222         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4223         .field_opr2 = {
4224                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
4225                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
4226         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4227         },
4228         {
4229         .description = "l4_dport",
4230         .field_bit_size = 16,
4231         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4232         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4233         .field_opr1 = {
4234         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
4235         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
4236         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
4237         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
4238         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
4239         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
4240         ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
4241         (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
4242         .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4243         .field_opr2 = {
4244                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
4245                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
4246         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4247         },
4248         /* act_tid: 5, , table: int_full_act_record.0 */
4249         {
4250         .description = "sp_rec_ptr",
4251         .field_bit_size = 16,
4252         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4253         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4254         },
4255         {
4256         .description = "encap_ptr",
4257         .field_bit_size = 16,
4258         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4259         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4260         },
4261         {
4262         .description = "mod_rec_ptr",
4263         .field_bit_size = 16,
4264         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4265         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4266         .field_opr1 = {
4267         (BNXT_ULP_RF_IDX_MODIFY_PTR >> 8) & 0xff,
4268         BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff}
4269         },
4270         {
4271         .description = "rsvd1",
4272         .field_bit_size = 16,
4273         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4274         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4275         },
4276         {
4277         .description = "rsvd0",
4278         .field_bit_size = 8,
4279         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4280         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4281         },
4282         {
4283         .description = "decap_func",
4284         .field_bit_size = 5,
4285         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4286         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4287         },
4288         {
4289         .description = "meter",
4290         .field_bit_size = 10,
4291         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4292         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4293         },
4294         {
4295         .description = "stats_op",
4296         .field_bit_size = 1,
4297         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4298         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4299         .field_opr1 = {
4300         ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
4301         ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
4302         ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
4303         ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
4304         ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
4305         ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
4306         ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
4307         (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
4308         },
4309         {
4310         .description = "stats_ptr",
4311         .field_bit_size = 16,
4312         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4313         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4314         .field_opr1 = {
4315         (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
4316         BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
4317         },
4318         {
4319         .description = "vnic_or_vport",
4320         .field_bit_size = 11,
4321         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4322         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4323         .field_opr1 = {
4324         (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
4325         BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
4326         },
4327         {
4328         .description = "use_default",
4329         .field_bit_size = 1,
4330         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4331         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4332         },
4333         {
4334         .description = "mirror",
4335         .field_bit_size = 4,
4336         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4337         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4338         },
4339         {
4340         .description = "cond_copy",
4341         .field_bit_size = 1,
4342         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4343         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4344         },
4345         {
4346         .description = "vlan_del_rpt",
4347         .field_bit_size = 2,
4348         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4349         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4350         },
4351         {
4352         .description = "drop",
4353         .field_bit_size = 1,
4354         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4355         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4356         },
4357         {
4358         .description = "hit",
4359         .field_bit_size = 1,
4360         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4361         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4362         },
4363         {
4364         .description = "type",
4365         .field_bit_size = 3,
4366         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4367         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4368         .field_opr1 = {
4369         1}
4370         },
4371         /* act_tid: 6, , table: int_flow_counter_tbl.0 */
4372         {
4373         .description = "count",
4374         .field_bit_size = 64,
4375         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4376         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4377         },
4378         /* act_tid: 6, , table: sp_smac_ipv4.0 */
4379         {
4380         .description = "smac",
4381         .field_bit_size = 48,
4382         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4383         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4384         .field_opr1 = {
4385         (BNXT_ULP_ENC_FIELD_ETH_SMAC >> 8) & 0xff,
4386         BNXT_ULP_ENC_FIELD_ETH_SMAC & 0xff}
4387         },
4388         {
4389         .description = "ipv4_src_addr",
4390         .field_bit_size = 32,
4391         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4392         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4393         .field_opr1 = {
4394         (BNXT_ULP_ENC_FIELD_IPV4_SADDR >> 8) & 0xff,
4395         BNXT_ULP_ENC_FIELD_IPV4_SADDR & 0xff}
4396         },
4397         {
4398         .description = "reserved",
4399         .field_bit_size = 48,
4400         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4401         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4402         },
4403         /* act_tid: 6, , table: source_property_cache.wr */
4404         {
4405         .description = "rid",
4406         .field_bit_size = 32,
4407         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4408         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4409         .field_opr1 = {
4410         (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
4411         BNXT_ULP_RF_IDX_RID & 0xff}
4412         },
4413         {
4414         .description = "sp_rec_ptr",
4415         .field_bit_size = 16,
4416         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4417         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4418         .field_opr1 = {
4419         (BNXT_ULP_RF_IDX_MAIN_SP_PTR >> 8) & 0xff,
4420         BNXT_ULP_RF_IDX_MAIN_SP_PTR & 0xff}
4421         },
4422         /* act_tid: 6, , table: sp_smac_ipv6.0 */
4423         {
4424         .description = "smac",
4425         .field_bit_size = 48,
4426         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4427         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4428         .field_opr1 = {
4429         (BNXT_ULP_ENC_FIELD_ETH_SMAC >> 8) & 0xff,
4430         BNXT_ULP_ENC_FIELD_ETH_SMAC & 0xff}
4431         },
4432         {
4433         .description = "ipv6_src_addr",
4434         .field_bit_size = 128,
4435         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4436         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4437         .field_opr1 = {
4438         (BNXT_ULP_ENC_FIELD_IPV6_SADDR >> 8) & 0xff,
4439         BNXT_ULP_ENC_FIELD_IPV6_SADDR & 0xff}
4440         },
4441         {
4442         .description = "reserved",
4443         .field_bit_size = 16,
4444         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4445         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4446         },
4447         /* act_tid: 6, , table: int_tun_encap_record.ipv4_vxlan */
4448         {
4449         .description = "ecv_valid",
4450         .field_bit_size = 1,
4451         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4452         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4453         .field_opr1 = {
4454         ULP_THOR_SYM_ECV_VALID_YES}
4455         },
4456         {
4457         .description = "ecv_custom_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 = "ecv_vtag_type",
4464         .field_bit_size = 4,
4465         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4466         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4467         .field_opr1 = {
4468         (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
4469         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff}
4470         },
4471         {
4472         .description = "ecv_l2_en",
4473         .field_bit_size = 1,
4474         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4475         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4476         .field_opr1 = {
4477         ULP_THOR_SYM_ECV_L2_EN_YES}
4478         },
4479         {
4480         .description = "ecv_l3_type",
4481         .field_bit_size = 3,
4482         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4483         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4484         .field_opr1 = {
4485         (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
4486         BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff}
4487         },
4488         {
4489         .description = "ecv_l4_type",
4490         .field_bit_size = 3,
4491         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4492         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4493         .field_opr1 = {
4494         ULP_THOR_SYM_ECV_L4_TYPE_UDP_CSUM}
4495         },
4496         {
4497         .description = "ecv_tun_type",
4498         .field_bit_size = 3,
4499         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4500         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4501         .field_opr1 = {
4502         ULP_THOR_SYM_ECV_TUN_TYPE_VXLAN}
4503         },
4504         {
4505         .description = "enc_eth_dmac",
4506         .field_bit_size = 48,
4507         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4508         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4509         .field_opr1 = {
4510         (BNXT_ULP_ENC_FIELD_ETH_DMAC >> 8) & 0xff,
4511         BNXT_ULP_ENC_FIELD_ETH_DMAC & 0xff}
4512         },
4513         {
4514         .description = "enc_o_vlan_tag",
4515         .field_bit_size = 16,
4516         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4517         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
4518         .field_opr1 = {
4519         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 56) & 0xff,
4520         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 48) & 0xff,
4521         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 40) & 0xff,
4522         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 32) & 0xff,
4523         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 24) & 0xff,
4524         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 16) & 0xff,
4525         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 8) & 0xff,
4526         (uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN & 0xff},
4527         .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4528         .field_opr2 = {
4529                 (BNXT_ULP_ENC_FIELD_O_VLAN_TCI >> 8) & 0xff,
4530                 BNXT_ULP_ENC_FIELD_O_VLAN_TCI & 0xff},
4531         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4532         },
4533         {
4534         .description = "enc_o_vlan_type",
4535         .field_bit_size = 16,
4536         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4537         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
4538         .field_opr1 = {
4539         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 56) & 0xff,
4540         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 48) & 0xff,
4541         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 40) & 0xff,
4542         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 32) & 0xff,
4543         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 24) & 0xff,
4544         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 16) & 0xff,
4545         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 8) & 0xff,
4546         (uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN & 0xff},
4547         .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4548         .field_opr2 = {
4549                 (BNXT_ULP_ENC_FIELD_O_VLAN_TYPE >> 8) & 0xff,
4550                 BNXT_ULP_ENC_FIELD_O_VLAN_TYPE & 0xff},
4551         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4552         },
4553         {
4554         .description = "enc_i_vlan_tag",
4555         .field_bit_size = 16,
4556         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4557         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
4558         .field_opr1 = {
4559         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 56) & 0xff,
4560         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 48) & 0xff,
4561         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 40) & 0xff,
4562         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 32) & 0xff,
4563         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 24) & 0xff,
4564         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 16) & 0xff,
4565         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 8) & 0xff,
4566         (uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN & 0xff},
4567         .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4568         .field_opr2 = {
4569                 (BNXT_ULP_ENC_FIELD_I_VLAN_TCI >> 8) & 0xff,
4570                 BNXT_ULP_ENC_FIELD_I_VLAN_TCI & 0xff},
4571         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4572         },
4573         {
4574         .description = "enc_i_vlan_type",
4575         .field_bit_size = 16,
4576         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4577         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
4578         .field_opr1 = {
4579         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 56) & 0xff,
4580         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 48) & 0xff,
4581         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 40) & 0xff,
4582         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 32) & 0xff,
4583         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 24) & 0xff,
4584         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 16) & 0xff,
4585         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 8) & 0xff,
4586         (uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN & 0xff},
4587         .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4588         .field_opr2 = {
4589                 (BNXT_ULP_ENC_FIELD_I_VLAN_TYPE >> 8) & 0xff,
4590                 BNXT_ULP_ENC_FIELD_I_VLAN_TYPE & 0xff},
4591         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4592         },
4593         {
4594         .description = "enc_ipv4_ihl",
4595         .field_bit_size = 8,
4596         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4597         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4598         .field_opr1 = {
4599         (BNXT_ULP_ENC_FIELD_IPV4_IHL >> 8) & 0xff,
4600         BNXT_ULP_ENC_FIELD_IPV4_IHL & 0xff}
4601         },
4602         {
4603         .description = "enc_ipv4_tos",
4604         .field_bit_size = 8,
4605         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4606         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4607         .field_opr1 = {
4608         (BNXT_ULP_ENC_FIELD_IPV4_TOS >> 8) & 0xff,
4609         BNXT_ULP_ENC_FIELD_IPV4_TOS & 0xff}
4610         },
4611         {
4612         .description = "enc_ipv4_pkt_id",
4613         .field_bit_size = 16,
4614         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4615         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4616         .field_opr1 = {
4617         (BNXT_ULP_ENC_FIELD_IPV4_PKT_ID >> 8) & 0xff,
4618         BNXT_ULP_ENC_FIELD_IPV4_PKT_ID & 0xff}
4619         },
4620         {
4621         .description = "enc_ipv4_frag",
4622         .field_bit_size = 16,
4623         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4624         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4625         .field_opr1 = {
4626         (BNXT_ULP_ENC_FIELD_IPV4_FRAG >> 8) & 0xff,
4627         BNXT_ULP_ENC_FIELD_IPV4_FRAG & 0xff}
4628         },
4629         {
4630         .description = "enc_ipv4_ttl",
4631         .field_bit_size = 8,
4632         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4633         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4634         .field_opr1 = {
4635         (BNXT_ULP_ENC_FIELD_IPV4_TTL >> 8) & 0xff,
4636         BNXT_ULP_ENC_FIELD_IPV4_TTL & 0xff}
4637         },
4638         {
4639         .description = "enc_ipv4_proto",
4640         .field_bit_size = 8,
4641         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4642         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4643         .field_opr1 = {
4644         (BNXT_ULP_ENC_FIELD_IPV4_PROTO >> 8) & 0xff,
4645         BNXT_ULP_ENC_FIELD_IPV4_PROTO & 0xff}
4646         },
4647         {
4648         .description = "enc_ipv4_daddr",
4649         .field_bit_size = 32,
4650         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4651         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4652         .field_opr1 = {
4653         (BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff,
4654         BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff}
4655         },
4656         {
4657         .description = "enc_ipv6_vtc",
4658         .field_bit_size = 32,
4659         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4660         },
4661         {
4662         .description = "enc_ipv6_zero",
4663         .field_bit_size = 16,
4664         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4665         },
4666         {
4667         .description = "enc_ipv6_proto",
4668         .field_bit_size = 8,
4669         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4670         },
4671         {
4672         .description = "enc_ipv6_ttl",
4673         .field_bit_size = 8,
4674         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4675         },
4676         {
4677         .description = "enc_ipv6_daddr",
4678         .field_bit_size = 128,
4679         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4680         },
4681         {
4682         .description = "enc_udp_sport",
4683         .field_bit_size = 16,
4684         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4685         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4686         .field_opr1 = {
4687         (BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff,
4688         BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}
4689         },
4690         {
4691         .description = "enc_udp_dport",
4692         .field_bit_size = 16,
4693         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4694         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4695         .field_opr1 = {
4696         (BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff,
4697         BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}
4698         },
4699         {
4700         .description = "enc_vxlan_flags",
4701         .field_bit_size = 8,
4702         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4703         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4704         .field_opr1 = {
4705         (BNXT_ULP_ENC_FIELD_VXLAN_FLAGS >> 8) & 0xff,
4706         BNXT_ULP_ENC_FIELD_VXLAN_FLAGS & 0xff}
4707         },
4708         {
4709         .description = "enc_vxlan_rsvd0",
4710         .field_bit_size = 24,
4711         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4712         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4713         .field_opr1 = {
4714         (BNXT_ULP_ENC_FIELD_VXLAN_RSVD0 >> 8) & 0xff,
4715         BNXT_ULP_ENC_FIELD_VXLAN_RSVD0 & 0xff}
4716         },
4717         {
4718         .description = "enc_vxlan_vni",
4719         .field_bit_size = 24,
4720         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4721         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4722         .field_opr1 = {
4723         (BNXT_ULP_ENC_FIELD_VXLAN_VNI >> 8) & 0xff,
4724         BNXT_ULP_ENC_FIELD_VXLAN_VNI & 0xff}
4725         },
4726         {
4727         .description = "enc_vxlan_rsvd1",
4728         .field_bit_size = 8,
4729         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4730         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4731         .field_opr1 = {
4732         (BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 >> 8) & 0xff,
4733         BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 & 0xff}
4734         },
4735         /* act_tid: 6, , table: vxlan_encap_rec_cache.wr */
4736         {
4737         .description = "rid",
4738         .field_bit_size = 32,
4739         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4740         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4741         .field_opr1 = {
4742         (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
4743         BNXT_ULP_RF_IDX_RID & 0xff}
4744         },
4745         {
4746         .description = "enc_rec_ptr",
4747         .field_bit_size = 16,
4748         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4749         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4750         .field_opr1 = {
4751         (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
4752         BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
4753         },
4754         /* act_tid: 6, , table: int_tun_encap_record.ipv6_vxlan */
4755         {
4756         .description = "ecv_valid",
4757         .field_bit_size = 1,
4758         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4759         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4760         .field_opr1 = {
4761         ULP_THOR_SYM_ECV_VALID_YES}
4762         },
4763         {
4764         .description = "ecv_custom_en",
4765         .field_bit_size = 1,
4766         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4767         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4768         },
4769         {
4770         .description = "ecv_vtag_type",
4771         .field_bit_size = 4,
4772         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4773         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4774         .field_opr1 = {
4775         (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
4776         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff}
4777         },
4778         {
4779         .description = "ecv_l2_en",
4780         .field_bit_size = 1,
4781         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4782         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4783         .field_opr1 = {
4784         ULP_THOR_SYM_ECV_L2_EN_YES}
4785         },
4786         {
4787         .description = "ecv_l3_type",
4788         .field_bit_size = 3,
4789         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4790         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4791         .field_opr1 = {
4792         (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
4793         BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff}
4794         },
4795         {
4796         .description = "ecv_l4_type",
4797         .field_bit_size = 3,
4798         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4799         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4800         .field_opr1 = {
4801         ULP_THOR_SYM_ECV_L4_TYPE_UDP_CSUM}
4802         },
4803         {
4804         .description = "ecv_tun_type",
4805         .field_bit_size = 3,
4806         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4807         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4808         .field_opr1 = {
4809         ULP_THOR_SYM_ECV_TUN_TYPE_VXLAN}
4810         },
4811         {
4812         .description = "enc_eth_dmac",
4813         .field_bit_size = 48,
4814         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4815         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4816         .field_opr1 = {
4817         (BNXT_ULP_ENC_FIELD_ETH_DMAC >> 8) & 0xff,
4818         BNXT_ULP_ENC_FIELD_ETH_DMAC & 0xff}
4819         },
4820         {
4821         .description = "enc_o_vlan_tag",
4822         .field_bit_size = 16,
4823         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4824         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
4825         .field_opr1 = {
4826         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 56) & 0xff,
4827         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 48) & 0xff,
4828         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 40) & 0xff,
4829         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 32) & 0xff,
4830         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 24) & 0xff,
4831         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 16) & 0xff,
4832         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 8) & 0xff,
4833         (uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN & 0xff},
4834         .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4835         .field_opr2 = {
4836                 (BNXT_ULP_ENC_FIELD_O_VLAN_TCI >> 8) & 0xff,
4837                 BNXT_ULP_ENC_FIELD_O_VLAN_TCI & 0xff},
4838         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4839         },
4840         {
4841         .description = "enc_o_vlan_type",
4842         .field_bit_size = 16,
4843         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4844         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
4845         .field_opr1 = {
4846         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 56) & 0xff,
4847         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 48) & 0xff,
4848         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 40) & 0xff,
4849         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 32) & 0xff,
4850         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 24) & 0xff,
4851         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 16) & 0xff,
4852         ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 8) & 0xff,
4853         (uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN & 0xff},
4854         .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4855         .field_opr2 = {
4856                 (BNXT_ULP_ENC_FIELD_O_VLAN_TYPE >> 8) & 0xff,
4857                 BNXT_ULP_ENC_FIELD_O_VLAN_TYPE & 0xff},
4858         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4859         },
4860         {
4861         .description = "enc_i_vlan_tag",
4862         .field_bit_size = 16,
4863         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4864         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
4865         .field_opr1 = {
4866         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 56) & 0xff,
4867         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 48) & 0xff,
4868         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 40) & 0xff,
4869         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 32) & 0xff,
4870         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 24) & 0xff,
4871         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 16) & 0xff,
4872         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 8) & 0xff,
4873         (uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN & 0xff},
4874         .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4875         .field_opr2 = {
4876                 (BNXT_ULP_ENC_FIELD_I_VLAN_TCI >> 8) & 0xff,
4877                 BNXT_ULP_ENC_FIELD_I_VLAN_TCI & 0xff},
4878         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4879         },
4880         {
4881         .description = "enc_i_vlan_type",
4882         .field_bit_size = 16,
4883         .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
4884         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
4885         .field_opr1 = {
4886         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 56) & 0xff,
4887         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 48) & 0xff,
4888         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 40) & 0xff,
4889         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 32) & 0xff,
4890         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 24) & 0xff,
4891         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 16) & 0xff,
4892         ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 8) & 0xff,
4893         (uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN & 0xff},
4894         .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4895         .field_opr2 = {
4896                 (BNXT_ULP_ENC_FIELD_I_VLAN_TYPE >> 8) & 0xff,
4897                 BNXT_ULP_ENC_FIELD_I_VLAN_TYPE & 0xff},
4898         .field_src3 = BNXT_ULP_FIELD_SRC_SKIP
4899         },
4900         {
4901         .description = "enc_ipv4_ihl",
4902         .field_bit_size = 8,
4903         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4904         },
4905         {
4906         .description = "enc_ipv4_tos",
4907         .field_bit_size = 8,
4908         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4909         },
4910         {
4911         .description = "enc_ipv4_pkt_id",
4912         .field_bit_size = 16,
4913         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4914         },
4915         {
4916         .description = "enc_ipv4_frag",
4917         .field_bit_size = 16,
4918         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4919         },
4920         {
4921         .description = "enc_ipv4_ttl",
4922         .field_bit_size = 8,
4923         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4924         },
4925         {
4926         .description = "enc_ipv4_proto",
4927         .field_bit_size = 8,
4928         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4929         },
4930         {
4931         .description = "enc_ipv4_daddr",
4932         .field_bit_size = 32,
4933         .field_opc = BNXT_ULP_FIELD_OPC_SKIP
4934         },
4935         {
4936         .description = "enc_ipv6_vtc",
4937         .field_bit_size = 32,
4938         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4939         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4940         .field_opr1 = {
4941         (BNXT_ULP_ENC_FIELD_IPV6_VTC_FLOW >> 8) & 0xff,
4942         BNXT_ULP_ENC_FIELD_IPV6_VTC_FLOW & 0xff}
4943         },
4944         {
4945         .description = "enc_ipv6_zero",
4946         .field_bit_size = 16,
4947         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4948         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4949         },
4950         {
4951         .description = "enc_ipv6_proto",
4952         .field_bit_size = 8,
4953         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4954         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4955         .field_opr1 = {
4956         (BNXT_ULP_ENC_FIELD_IPV6_PROTO >> 8) & 0xff,
4957         BNXT_ULP_ENC_FIELD_IPV6_PROTO & 0xff}
4958         },
4959         {
4960         .description = "enc_ipv6_ttl",
4961         .field_bit_size = 8,
4962         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4963         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4964         .field_opr1 = {
4965         (BNXT_ULP_ENC_FIELD_IPV6_TTL >> 8) & 0xff,
4966         BNXT_ULP_ENC_FIELD_IPV6_TTL & 0xff}
4967         },
4968         {
4969         .description = "enc_ipv6_daddr",
4970         .field_bit_size = 128,
4971         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4972         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4973         .field_opr1 = {
4974         (BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff,
4975         BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff}
4976         },
4977         {
4978         .description = "enc_udp_sport",
4979         .field_bit_size = 16,
4980         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4981         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4982         .field_opr1 = {
4983         (BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff,
4984         BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}
4985         },
4986         {
4987         .description = "enc_udp_dport",
4988         .field_bit_size = 16,
4989         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4990         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
4991         .field_opr1 = {
4992         (BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff,
4993         BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}
4994         },
4995         {
4996         .description = "enc_vxlan_flags",
4997         .field_bit_size = 8,
4998         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
4999         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
5000         .field_opr1 = {
5001         (BNXT_ULP_ENC_FIELD_VXLAN_FLAGS >> 8) & 0xff,
5002         BNXT_ULP_ENC_FIELD_VXLAN_FLAGS & 0xff}
5003         },
5004         {
5005         .description = "enc_vxlan_rsvd0",
5006         .field_bit_size = 24,
5007         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5008         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
5009         .field_opr1 = {
5010         (BNXT_ULP_ENC_FIELD_VXLAN_RSVD0 >> 8) & 0xff,
5011         BNXT_ULP_ENC_FIELD_VXLAN_RSVD0 & 0xff}
5012         },
5013         {
5014         .description = "enc_vxlan_vni",
5015         .field_bit_size = 24,
5016         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5017         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
5018         .field_opr1 = {
5019         (BNXT_ULP_ENC_FIELD_VXLAN_VNI >> 8) & 0xff,
5020         BNXT_ULP_ENC_FIELD_VXLAN_VNI & 0xff}
5021         },
5022         {
5023         .description = "enc_vxlan_rsvd1",
5024         .field_bit_size = 8,
5025         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5026         .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
5027         .field_opr1 = {
5028         (BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 >> 8) & 0xff,
5029         BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 & 0xff}
5030         },
5031         /* act_tid: 6, , table: int_full_act_record.0 */
5032         {
5033         .description = "sp_rec_ptr",
5034         .field_bit_size = 16,
5035         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5036         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5037         .field_opr1 = {
5038         (BNXT_ULP_RF_IDX_MAIN_SP_PTR >> 8) & 0xff,
5039         BNXT_ULP_RF_IDX_MAIN_SP_PTR & 0xff}
5040         },
5041         {
5042         .description = "encap_ptr",
5043         .field_bit_size = 16,
5044         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5045         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5046         .field_opr1 = {
5047         (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
5048         BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
5049         },
5050         {
5051         .description = "mod_rec_ptr",
5052         .field_bit_size = 16,
5053         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5054         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5055         },
5056         {
5057         .description = "rsvd1",
5058         .field_bit_size = 16,
5059         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5060         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5061         },
5062         {
5063         .description = "rsvd0",
5064         .field_bit_size = 8,
5065         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5066         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5067         },
5068         {
5069         .description = "decap_func",
5070         .field_bit_size = 5,
5071         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5072         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5073         },
5074         {
5075         .description = "meter",
5076         .field_bit_size = 10,
5077         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5078         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5079         },
5080         {
5081         .description = "stats_op",
5082         .field_bit_size = 1,
5083         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5084         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5085         .field_opr1 = {
5086         1}
5087         },
5088         {
5089         .description = "stats_ptr",
5090         .field_bit_size = 16,
5091         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5092         .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5093         .field_opr1 = {
5094         (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
5095         BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
5096         },
5097         {
5098         .description = "vnic_or_vport",
5099         .field_bit_size = 11,
5100         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5101         .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5102         .field_opr1 = {
5103         (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
5104         BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
5105         },
5106         {
5107         .description = "use_default",
5108         .field_bit_size = 1,
5109         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5110         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5111         },
5112         {
5113         .description = "mirror",
5114         .field_bit_size = 4,
5115         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5116         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5117         },
5118         {
5119         .description = "cond_copy",
5120         .field_bit_size = 1,
5121         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5122         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5123         },
5124         {
5125         .description = "vlan_del_rpt",
5126         .field_bit_size = 2,
5127         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5128         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5129         },
5130         {
5131         .description = "drop",
5132         .field_bit_size = 1,
5133         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5134         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5135         },
5136         {
5137         .description = "hit",
5138         .field_bit_size = 1,
5139         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5140         .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5141         },
5142         {
5143         .description = "type",
5144         .field_bit_size = 3,
5145         .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
5146         .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5147         .field_opr1 = {
5148         1}
5149         }
5150 };
5151
5152 struct bnxt_ulp_mapper_ident_info ulp_thor_act_ident_list[] = {
5153         /* act_tid: 1, , table: shared_mirror_record.rd */
5154         {
5155         .description = "mirror_id",
5156         .regfile_idx = BNXT_ULP_RF_IDX_MIRROR_ID_0,
5157         .ident_bit_size = 4,
5158         .ident_bit_pos = 32
5159         },
5160         /* act_tid: 6, , table: source_property_cache.rd */
5161         {
5162         .description = "sp_rec_ptr",
5163         .regfile_idx = BNXT_ULP_RF_IDX_MAIN_SP_PTR,
5164         .ident_bit_size = 16,
5165         .ident_bit_pos = 32
5166         },
5167         /* act_tid: 6, , table: vxlan_encap_rec_cache.rd */
5168         {
5169         .description = "enc_rec_ptr",
5170         .regfile_idx = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
5171         .ident_bit_size = 16,
5172         .ident_bit_pos = 32
5173         }
5174 };