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