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