40b1088325ae2d9af31cac911acd94d645656ed6
[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: Thu Oct 15 17:28:37 2020 */
7
8 #include "ulp_template_db_enum.h"
9 #include "ulp_template_db_field.h"
10 #include "ulp_template_struct.h"
11 #include "ulp_rte_parser.h"
12
13 /* Mapper templates for header act list */
14 struct bnxt_ulp_mapper_tmpl_info ulp_wh_plus_act_tmpl_list[] = {
15         /* act-ing-[dec_ttl, count, nat]:1 */
16         /* act_tid: 1, wh_plus, ingress */
17         [1] = {
18         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
19         .num_tbls = 6,
20         .start_tbl_idx = 0
21         },
22         /* act-ing-[drop, pop_vlan, push_vlan, dec_ttl, count, vxlan_decap]:2 */
23         /* act_tid: 2, wh_plus, ingress */
24         [2] = {
25         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
26         .num_tbls = 3,
27         .start_tbl_idx = 6
28         },
29         /* act-ing-[mark, rss, count, pop_vlan, vxlan_decap]:3 */
30         /* act_tid: 3, wh_plus, ingress */
31         [3] = {
32         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
33         .num_tbls = 3,
34         .start_tbl_idx = 9
35         },
36         /* act_egr-[vxlan_encap, count]:4 */
37         /* act_tid: 4, wh_plus, egress */
38         [4] = {
39         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
40         .num_tbls = 6,
41         .start_tbl_idx = 12
42         },
43         /* act-egr-[dec_ttl, count, nat]:5 */
44         /* act_tid: 5, wh_plus, egress */
45         [5] = {
46         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
47         .num_tbls = 6,
48         .start_tbl_idx = 18
49         },
50         /* act-egr-[drop, push_vlan, dec_ttl, count]:6 */
51         /* act_tid: 6, wh_plus, egress */
52         [6] = {
53         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
54         .num_tbls = 5,
55         .start_tbl_idx = 24
56         }
57 };
58
59 struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_act_tbl_list[] = {
60         { /* act_tid: 1, wh_plus, table: int_flow_counter_tbl_0 */
61         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
62         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
63         .resource_sub_type =
64                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
65         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
66         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
67         .direction = TF_DIR_RX,
68         .result_start_idx = 0,
69         .result_bit_size = 64,
70         .result_num_fields = 1,
71         .encap_num_fields = 0,
72         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
73         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
74         .tbl_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0
75         },
76         { /* act_tid: 1, wh_plus, table: int_act_modify_ipv4_src_0 */
77         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
78         .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
79         .resource_sub_type =
80                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
81         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
82         .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_SRC,
83         .direction = TF_DIR_RX,
84         .result_start_idx = 1,
85         .result_bit_size = 32,
86         .result_num_fields = 1,
87         .encap_num_fields = 0,
88         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
89         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
90         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0
91         },
92         { /* act_tid: 1, wh_plus, table: int_act_modify_ipv4_dst_0 */
93         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
94         .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
95         .resource_sub_type =
96                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
97         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
98         .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_DST,
99         .direction = TF_DIR_RX,
100         .result_start_idx = 2,
101         .result_bit_size = 32,
102         .result_num_fields = 1,
103         .encap_num_fields = 0,
104         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
105         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
106         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0
107         },
108         { /* act_tid: 1, wh_plus, table: int_encap_mac_record_0 */
109         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
110         .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
111         .resource_sub_type =
112                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
113         .direction = TF_DIR_RX,
114         .result_start_idx = 3,
115         .result_bit_size = 0,
116         .result_num_fields = 0,
117         .encap_num_fields = 12,
118         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
119         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
120         .tbl_operand = BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR
121         },
122         { /* act_tid: 1, wh_plus, table: ext_full_act_record_0 */
123         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
124         .resource_type = TF_TBL_TYPE_EXT,
125         .resource_sub_type =
126                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
127         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
128         .direction = TF_DIR_RX,
129         .result_start_idx = 15,
130         .result_bit_size = 128,
131         .result_num_fields = 26,
132         .encap_num_fields = 0,
133         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
134         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
135         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
136         },
137         { /* act_tid: 1, wh_plus, table: int_full_act_record_0 */
138         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
139         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
140         .resource_sub_type =
141                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
142         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
143         .direction = TF_DIR_RX,
144         .result_start_idx = 41,
145         .result_bit_size = 128,
146         .result_num_fields = 26,
147         .encap_num_fields = 0,
148         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
149         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
150         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
151         },
152         { /* act_tid: 2, wh_plus, table: int_flow_counter_tbl_0 */
153         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
154         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
155         .resource_sub_type =
156                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
157         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
158         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
159         .direction = TF_DIR_RX,
160         .result_start_idx = 67,
161         .result_bit_size = 64,
162         .result_num_fields = 1,
163         .encap_num_fields = 0,
164         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
165         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
166         .tbl_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0
167         },
168         { /* act_tid: 2, wh_plus, table: ext_full_act_record_0 */
169         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
170         .resource_type = TF_TBL_TYPE_EXT,
171         .resource_sub_type =
172                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
173         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
174         .direction = TF_DIR_RX,
175         .result_start_idx = 68,
176         .result_bit_size = 128,
177         .result_num_fields = 26,
178         .encap_num_fields = 0,
179         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
180         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
181         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
182         },
183         { /* act_tid: 2, wh_plus, table: int_full_act_record_0 */
184         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
185         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
186         .resource_sub_type =
187                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
188         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
189         .direction = TF_DIR_RX,
190         .result_start_idx = 94,
191         .result_bit_size = 128,
192         .result_num_fields = 26,
193         .encap_num_fields = 0,
194         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
195         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
196         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
197         },
198         { /* act_tid: 3, wh_plus, table: int_flow_counter_tbl_0 */
199         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
200         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
201         .resource_sub_type =
202                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
203         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
204         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
205         .direction = TF_DIR_RX,
206         .result_start_idx = 120,
207         .result_bit_size = 64,
208         .result_num_fields = 1,
209         .encap_num_fields = 0,
210         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
211         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
212         .tbl_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0
213         },
214         { /* act_tid: 3, wh_plus, table: ext_full_act_record_0 */
215         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
216         .resource_type = TF_TBL_TYPE_EXT,
217         .resource_sub_type =
218                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
219         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
220         .direction = TF_DIR_RX,
221         .result_start_idx = 121,
222         .result_bit_size = 128,
223         .result_num_fields = 26,
224         .encap_num_fields = 0,
225         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
226         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
227         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
228         },
229         { /* act_tid: 3, wh_plus, table: int_full_act_record_0 */
230         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
231         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
232         .resource_sub_type =
233                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
234         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
235         .direction = TF_DIR_RX,
236         .result_start_idx = 147,
237         .result_bit_size = 128,
238         .result_num_fields = 26,
239         .encap_num_fields = 0,
240         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
241         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
242         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
243         },
244         { /* act_tid: 4, wh_plus, table: int_flow_counter_tbl_0 */
245         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
246         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
247         .resource_sub_type =
248                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
249         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
250         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
251         .direction = TF_DIR_TX,
252         .result_start_idx = 173,
253         .result_bit_size = 64,
254         .result_num_fields = 1,
255         .encap_num_fields = 0,
256         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
257         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
258         .tbl_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0
259         },
260         { /* act_tid: 4, wh_plus, table: int_sp_smac_ipv4_0 */
261         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
262         .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
263         .resource_sub_type =
264                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
265         .cond_opcode = BNXT_ULP_COND_OPC_COMP_FIELD_IS_SET,
266         .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG,
267         .direction = TF_DIR_TX,
268         .result_start_idx = 174,
269         .result_bit_size = 0,
270         .result_num_fields = 0,
271         .encap_num_fields = 3,
272         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
273         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
274         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_SP_PTR
275         },
276         { /* act_tid: 4, wh_plus, table: int_sp_smac_ipv6_0 */
277         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
278         .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV6,
279         .resource_sub_type =
280                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
281         .cond_opcode = BNXT_ULP_COND_OPC_COMP_FIELD_IS_SET,
282         .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG,
283         .direction = TF_DIR_TX,
284         .result_start_idx = 177,
285         .result_bit_size = 0,
286         .result_num_fields = 0,
287         .encap_num_fields = 3,
288         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
289         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
290         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_SP_PTR
291         },
292         { /* act_tid: 4, wh_plus, table: int_tun_encap_record_0 */
293         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
294         .resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
295         .resource_sub_type =
296                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
297         .direction = TF_DIR_TX,
298         .result_start_idx = 180,
299         .result_bit_size = 0,
300         .result_num_fields = 0,
301         .encap_num_fields = 12,
302         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
303         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
304         .tbl_operand = BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0
305         },
306         { /* act_tid: 4, wh_plus, table: ext_full_act_record_0 */
307         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
308         .resource_type = TF_TBL_TYPE_EXT,
309         .resource_sub_type =
310                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
311         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
312         .direction = TF_DIR_TX,
313         .result_start_idx = 192,
314         .result_bit_size = 128,
315         .result_num_fields = 26,
316         .encap_num_fields = 12,
317         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
318         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
319         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
320         },
321         { /* act_tid: 4, wh_plus, table: int_full_act_record_0 */
322         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
323         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
324         .resource_sub_type =
325                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
326         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
327         .direction = TF_DIR_TX,
328         .result_start_idx = 230,
329         .result_bit_size = 128,
330         .result_num_fields = 26,
331         .encap_num_fields = 0,
332         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
333         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
334         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
335         },
336         { /* act_tid: 5, wh_plus, table: int_flow_counter_tbl_0 */
337         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
338         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
339         .resource_sub_type =
340                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
341         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
342         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
343         .direction = TF_DIR_TX,
344         .result_start_idx = 256,
345         .result_bit_size = 64,
346         .result_num_fields = 1,
347         .encap_num_fields = 0,
348         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
349         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
350         .tbl_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0
351         },
352         { /* act_tid: 5, wh_plus, table: int_act_modify_ipv4_src_0 */
353         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
354         .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
355         .resource_sub_type =
356                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
357         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
358         .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_SRC,
359         .direction = TF_DIR_TX,
360         .result_start_idx = 257,
361         .result_bit_size = 32,
362         .result_num_fields = 1,
363         .encap_num_fields = 0,
364         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
365         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
366         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0
367         },
368         { /* act_tid: 5, wh_plus, table: int_act_modify_ipv4_dst_0 */
369         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
370         .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
371         .resource_sub_type =
372                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
373         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
374         .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_DST,
375         .direction = TF_DIR_TX,
376         .result_start_idx = 258,
377         .result_bit_size = 32,
378         .result_num_fields = 1,
379         .encap_num_fields = 0,
380         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
381         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
382         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0
383         },
384         { /* act_tid: 5, wh_plus, table: int_encap_mac_record_0 */
385         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
386         .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
387         .resource_sub_type =
388                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
389         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
390         .direction = TF_DIR_TX,
391         .result_start_idx = 259,
392         .result_bit_size = 0,
393         .result_num_fields = 0,
394         .encap_num_fields = 12,
395         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
396         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
397         .tbl_operand = BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR
398         },
399         { /* act_tid: 5, wh_plus, table: int_full_act_record_0 */
400         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
401         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
402         .resource_sub_type =
403                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
404         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
405         .direction = TF_DIR_TX,
406         .result_start_idx = 271,
407         .result_bit_size = 128,
408         .result_num_fields = 26,
409         .encap_num_fields = 0,
410         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
411         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
412         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
413         },
414         { /* act_tid: 5, wh_plus, table: ext_full_act_record_0 */
415         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
416         .resource_type = TF_TBL_TYPE_EXT,
417         .resource_sub_type =
418                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
419         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
420         .direction = TF_DIR_TX,
421         .result_start_idx = 297,
422         .result_bit_size = 128,
423         .result_num_fields = 26,
424         .encap_num_fields = 11,
425         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
426         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
427         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
428         },
429         { /* act_tid: 6, wh_plus, table: int_flow_counter_tbl_0 */
430         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
431         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
432         .resource_sub_type =
433                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
434         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
435         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
436         .direction = TF_DIR_TX,
437         .result_start_idx = 334,
438         .result_bit_size = 64,
439         .result_num_fields = 1,
440         .encap_num_fields = 0,
441         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
442         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
443         .tbl_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0
444         },
445         { /* act_tid: 6, wh_plus, table: int_vtag_encap_record_0 */
446         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
447         .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
448         .resource_sub_type =
449                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
450         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
451         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
452         .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN,
453         .direction = TF_DIR_TX,
454         .result_start_idx = 335,
455         .result_bit_size = 0,
456         .result_num_fields = 0,
457         .encap_num_fields = 12,
458         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
459         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
460         .tbl_operand = BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0
461         },
462         { /* act_tid: 6, wh_plus, table: int_full_act_record_0 */
463         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
464         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
465         .resource_sub_type =
466                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
467         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
468         .direction = TF_DIR_TX,
469         .result_start_idx = 347,
470         .result_bit_size = 128,
471         .result_num_fields = 26,
472         .encap_num_fields = 0,
473         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
474         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
475         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
476         },
477         { /* act_tid: 6, wh_plus, table: ext_full_act_record_no_tag_0 */
478         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
479         .resource_type = TF_TBL_TYPE_EXT,
480         .resource_sub_type =
481                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
482         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
483         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_NOT_SET,
484         .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN,
485         .direction = TF_DIR_TX,
486         .result_start_idx = 373,
487         .result_bit_size = 128,
488         .result_num_fields = 26,
489         .encap_num_fields = 0,
490         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
491         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
492         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
493         },
494         { /* act_tid: 6, wh_plus, table: ext_full_act_record_one_tag_0 */
495         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
496         .resource_type = TF_TBL_TYPE_EXT,
497         .resource_sub_type =
498                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
499         .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
500         .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
501         .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN,
502         .direction = TF_DIR_TX,
503         .result_start_idx = 399,
504         .result_bit_size = 128,
505         .result_num_fields = 26,
506         .encap_num_fields = 11,
507         .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
508         .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
509         .tbl_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR
510         }
511 };
512
513 struct bnxt_ulp_mapper_result_field_info ulp_wh_plus_act_result_field_list[] = {
514         /* act_tid: 1, wh_plus, table: int_flow_counter_tbl_0 */
515         {
516         .description = "count",
517         .field_bit_size = 64,
518         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
519         },
520         /* act_tid: 1, wh_plus, table: int_act_modify_ipv4_src_0 */
521         {
522         .description = "ipv4_addr",
523         .field_bit_size = 32,
524         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
525         .result_operand = {
526                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
527                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff,
528                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
529                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
530         },
531         /* act_tid: 1, wh_plus, table: int_act_modify_ipv4_dst_0 */
532         {
533         .description = "ipv4_addr",
534         .field_bit_size = 32,
535         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
536         .result_operand = {
537                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
538                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff,
539                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
540                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
541         },
542         /* act_tid: 1, wh_plus, table: int_encap_mac_record_0 */
543         {
544         .description = "ecv_tun_type",
545         .field_bit_size = 3,
546         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
547         },
548         {
549         .description = "ecv_l4_type",
550         .field_bit_size = 3,
551         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
552         },
553         {
554         .description = "ecv_l3_type",
555         .field_bit_size = 3,
556         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
557         },
558         {
559         .description = "ecv_l2_en",
560         .field_bit_size = 1,
561         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
562         .result_operand = {
563                 BNXT_ULP_SYM_ECV_L2_EN_YES,
564                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
565                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
566         },
567         {
568         .description = "ecv_vtag_type",
569         .field_bit_size = 4,
570         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
571         },
572         {
573         .description = "ecv_custom_en",
574         .field_bit_size = 1,
575         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
576         },
577         {
578         .description = "ecv_valid",
579         .field_bit_size = 1,
580         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
581         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
582                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
583         },
584         {
585         .description = "vtag_tpid",
586         .field_bit_size = 16,
587         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
588         },
589         {
590         .description = "vtag_vid",
591         .field_bit_size = 12,
592         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
593         },
594         {
595         .description = "vtag_de",
596         .field_bit_size = 1,
597         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
598         },
599         {
600         .description = "vtag_pcp",
601         .field_bit_size = 3,
602         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
603         },
604         {
605         .description = "spare",
606         .field_bit_size = 80,
607         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
608         },
609         /* act_tid: 1, wh_plus, table: ext_full_act_record_0 */
610         {
611         .description = "flow_cntr_ptr",
612         .field_bit_size = 14,
613         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
614         .result_operand = {
615                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
616                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
617                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
618                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
619         },
620         {
621         .description = "age_enable",
622         .field_bit_size = 1,
623         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
624         },
625         {
626         .description = "agg_cntr_en",
627         .field_bit_size = 1,
628         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
629         },
630         {
631         .description = "rate_cntr_en",
632         .field_bit_size = 1,
633         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
634         },
635         {
636         .description = "flow_cntr_en",
637         .field_bit_size = 1,
638         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
639         .result_operand = {
640                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
641                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
642                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
643                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
644                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
645                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
646                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
647                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
648                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
649         },
650         {
651         .description = "flow_cntr_ext",
652         .field_bit_size = 1,
653         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
654         },
655         {
656         .description = "tcpflags_key",
657         .field_bit_size = 8,
658         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
659         },
660         {
661         .description = "tcpflags_mir",
662         .field_bit_size = 1,
663         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
664         },
665         {
666         .description = "tcpflags_match",
667         .field_bit_size = 1,
668         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
669         },
670         {
671         .description = "encap_ptr",
672         .field_bit_size = 11,
673         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
674         .result_operand = {
675                 (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
676                 BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
677                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
678                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
679         },
680         {
681         .description = "encap_rec_int",
682         .field_bit_size = 1,
683         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
684         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
685                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
686         },
687         {
688         .description = "dst_ip_ptr",
689         .field_bit_size = 10,
690         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
691         .result_operand = {
692                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
693                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
694                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
695                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
696         },
697         {
698         .description = "tcp_dst_port",
699         .field_bit_size = 16,
700         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
701         .result_operand = {
702                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
703                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
704                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
705                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
706                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
707                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
708                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
709                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
710                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
711         .result_operand_true = {
712                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
713                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
714                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
715                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
716         },
717         {
718         .description = "src_ip_ptr",
719         .field_bit_size = 10,
720         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
721         .result_operand = {
722                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
723                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
724                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
725                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
726         },
727         {
728         .description = "tcp_src_port",
729         .field_bit_size = 16,
730         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
731         .result_operand = {
732                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
733                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
734                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
735                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
736                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
737                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
738                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
739                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
740                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
741         .result_operand_true = {
742                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
743                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
744                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
745                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
746         },
747         {
748         .description = "meter_id",
749         .field_bit_size = 10,
750         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
751         },
752         {
753         .description = "l3_rdir",
754         .field_bit_size = 1,
755         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
756         },
757         {
758         .description = "tl3_rdir",
759         .field_bit_size = 1,
760         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
761         },
762         {
763         .description = "l3_ttl_dec",
764         .field_bit_size = 1,
765         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
766         .result_operand = {
767                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
768                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
769                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
770                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
771         },
772         {
773         .description = "tl3_ttl_dec",
774         .field_bit_size = 1,
775         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
776         .result_operand = {
777                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
778                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
779                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
780                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
781         },
782         {
783         .description = "decap_func",
784         .field_bit_size = 4,
785         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
786         .result_operand = {
787                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
788                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
789                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
790                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
791                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
792                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
793                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
794                 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
795                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
796         .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
797                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
798         .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
799                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
800         },
801         {
802         .description = "vnic_or_vport",
803         .field_bit_size = 12,
804         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
805         .result_operand = {
806                 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
807                 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
808                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
809                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
810         },
811         {
812         .description = "pop_vlan",
813         .field_bit_size = 1,
814         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
815         },
816         {
817         .description = "meter",
818         .field_bit_size = 1,
819         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
820         },
821         {
822         .description = "mirror",
823         .field_bit_size = 2,
824         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
825         },
826         {
827         .description = "drop",
828         .field_bit_size = 1,
829         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
830         },
831         /* act_tid: 1, wh_plus, table: int_full_act_record_0 */
832         {
833         .description = "flow_cntr_ptr",
834         .field_bit_size = 14,
835         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
836         .result_operand = {
837                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
838                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
839                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
840                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
841         },
842         {
843         .description = "age_enable",
844         .field_bit_size = 1,
845         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
846         },
847         {
848         .description = "agg_cntr_en",
849         .field_bit_size = 1,
850         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
851         },
852         {
853         .description = "rate_cntr_en",
854         .field_bit_size = 1,
855         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
856         },
857         {
858         .description = "flow_cntr_en",
859         .field_bit_size = 1,
860         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
861         .result_operand = {
862                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
863                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
864                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
865                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
866                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
867                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
868                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
869                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
870                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
871         },
872         {
873         .description = "tcpflags_key",
874         .field_bit_size = 8,
875         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
876         },
877         {
878         .description = "tcpflags_mir",
879         .field_bit_size = 1,
880         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
881         },
882         {
883         .description = "tcpflags_match",
884         .field_bit_size = 1,
885         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
886         },
887         {
888         .description = "encap_ptr",
889         .field_bit_size = 11,
890         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
891         .result_operand = {
892                 (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
893                 BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
894                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
895                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
896         },
897         {
898         .description = "dst_ip_ptr",
899         .field_bit_size = 10,
900         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
901         .result_operand = {
902                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
903                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
904                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
905                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
906         },
907         {
908         .description = "tcp_dst_port",
909         .field_bit_size = 16,
910         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
911         .result_operand = {
912                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
913                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
914                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
915                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
916                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
917                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
918                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
919                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
920                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
921         .result_operand_true = {
922                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
923                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
924                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
925                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
926         },
927         {
928         .description = "src_ip_ptr",
929         .field_bit_size = 10,
930         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
931         .result_operand = {
932                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
933                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
934                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
935                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
936         },
937         {
938         .description = "tcp_src_port",
939         .field_bit_size = 16,
940         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
941         .result_operand = {
942                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
943                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
944                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
945                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
946                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
947                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
948                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
949                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
950                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
951         .result_operand_true = {
952                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
953                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
954                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
955                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
956         },
957         {
958         .description = "meter_id",
959         .field_bit_size = 10,
960         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
961         },
962         {
963         .description = "l3_rdir",
964         .field_bit_size = 1,
965         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
966         },
967         {
968         .description = "tl3_rdir",
969         .field_bit_size = 1,
970         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
971         },
972         {
973         .description = "l3_ttl_dec",
974         .field_bit_size = 1,
975         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
976         .result_operand = {
977                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
978                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
979                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
980                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
981         },
982         {
983         .description = "tl3_ttl_dec",
984         .field_bit_size = 1,
985         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
986         .result_operand = {
987                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
988                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
989                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
990                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
991         },
992         {
993         .description = "decap_func",
994         .field_bit_size = 4,
995         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
996         .result_operand = {
997                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
998                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
999                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
1000                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
1001                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
1002                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
1003                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
1004                 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
1005                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1006         .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
1007                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1008         .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
1009                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1010         },
1011         {
1012         .description = "vnic_or_vport",
1013         .field_bit_size = 12,
1014         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1015         .result_operand = {
1016                 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1017                 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
1018                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1019                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1020         },
1021         {
1022         .description = "pop_vlan",
1023         .field_bit_size = 1,
1024         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1025         },
1026         {
1027         .description = "meter",
1028         .field_bit_size = 1,
1029         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1030         },
1031         {
1032         .description = "mirror",
1033         .field_bit_size = 2,
1034         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1035         },
1036         {
1037         .description = "drop",
1038         .field_bit_size = 1,
1039         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1040         },
1041         {
1042         .description = "hit",
1043         .field_bit_size = 1,
1044         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1045         },
1046         {
1047         .description = "type",
1048         .field_bit_size = 1,
1049         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1050         },
1051         /* act_tid: 2, wh_plus, table: int_flow_counter_tbl_0 */
1052         {
1053         .description = "count",
1054         .field_bit_size = 64,
1055         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1056         },
1057         /* act_tid: 2, wh_plus, table: ext_full_act_record_0 */
1058         {
1059         .description = "flow_cntr_ptr",
1060         .field_bit_size = 14,
1061         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1062         .result_operand = {
1063                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1064                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
1065                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1066                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1067         },
1068         {
1069         .description = "age_enable",
1070         .field_bit_size = 1,
1071         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1072         },
1073         {
1074         .description = "agg_cntr_en",
1075         .field_bit_size = 1,
1076         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1077         },
1078         {
1079         .description = "rate_cntr_en",
1080         .field_bit_size = 1,
1081         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1082         },
1083         {
1084         .description = "flow_cntr_en",
1085         .field_bit_size = 1,
1086         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1087         .result_operand = {
1088                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
1089                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
1090                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
1091                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
1092                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
1093                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
1094                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
1095                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
1096                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1097         },
1098         {
1099         .description = "flow_cntr_ext",
1100         .field_bit_size = 1,
1101         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1102         },
1103         {
1104         .description = "tcpflags_key",
1105         .field_bit_size = 8,
1106         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1107         },
1108         {
1109         .description = "tcpflags_mir",
1110         .field_bit_size = 1,
1111         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1112         },
1113         {
1114         .description = "tcpflags_match",
1115         .field_bit_size = 1,
1116         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1117         },
1118         {
1119         .description = "encap_ptr",
1120         .field_bit_size = 11,
1121         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1122         },
1123         {
1124         .description = "encap_rec_int",
1125         .field_bit_size = 1,
1126         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1127         },
1128         {
1129         .description = "dst_ip_ptr",
1130         .field_bit_size = 10,
1131         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1132         .result_operand = {
1133                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
1134                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
1135                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1136                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1137         },
1138         {
1139         .description = "tcp_dst_port",
1140         .field_bit_size = 16,
1141         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
1142         .result_operand = {
1143                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
1144                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
1145                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
1146                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
1147                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
1148                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
1149                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
1150                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
1151                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1152         .result_operand_true = {
1153                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
1154                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
1155                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1156                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1157         },
1158         {
1159         .description = "src_ip_ptr",
1160         .field_bit_size = 10,
1161         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1162         .result_operand = {
1163                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
1164                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
1165                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1166                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1167         },
1168         {
1169         .description = "tcp_src_port",
1170         .field_bit_size = 16,
1171         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
1172         .result_operand = {
1173                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
1174                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
1175                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
1176                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
1177                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
1178                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
1179                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
1180                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
1181                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1182         .result_operand_true = {
1183                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
1184                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
1185                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1186                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1187         },
1188         {
1189         .description = "meter_id",
1190         .field_bit_size = 10,
1191         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1192         },
1193         {
1194         .description = "l3_rdir",
1195         .field_bit_size = 1,
1196         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1197         },
1198         {
1199         .description = "tl3_rdir",
1200         .field_bit_size = 1,
1201         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1202         },
1203         {
1204         .description = "l3_ttl_dec",
1205         .field_bit_size = 1,
1206         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
1207         .result_operand = {
1208                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
1209                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
1210                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1211                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1212         },
1213         {
1214         .description = "tl3_ttl_dec",
1215         .field_bit_size = 1,
1216         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
1217         .result_operand = {
1218                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
1219                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
1220                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1221                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1222         },
1223         {
1224         .description = "decap_func",
1225         .field_bit_size = 4,
1226         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
1227         .result_operand = {
1228                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
1229                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
1230                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
1231                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
1232                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
1233                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
1234                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
1235                 (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
1236                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1237         .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
1238                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1239         },
1240         {
1241         .description = "vnic_or_vport",
1242         .field_bit_size = 12,
1243         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1244         .result_operand = {
1245                 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1246                 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
1247                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1248                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1249         },
1250         {
1251         .description = "pop_vlan",
1252         .field_bit_size = 1,
1253         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1254         .result_operand = {
1255                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
1256                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
1257                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
1258                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
1259                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
1260                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
1261                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
1262                 (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
1263                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1264         },
1265         {
1266         .description = "meter",
1267         .field_bit_size = 1,
1268         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1269         },
1270         {
1271         .description = "mirror",
1272         .field_bit_size = 2,
1273         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1274         },
1275         {
1276         .description = "drop",
1277         .field_bit_size = 1,
1278         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1279         .result_operand = {
1280                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
1281                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
1282                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
1283                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
1284                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
1285                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
1286                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
1287                 (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
1288                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1289         },
1290         /* act_tid: 2, wh_plus, table: int_full_act_record_0 */
1291         {
1292         .description = "flow_cntr_ptr",
1293         .field_bit_size = 14,
1294         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1295         .result_operand = {
1296                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1297                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
1298                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1299                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1300         },
1301         {
1302         .description = "age_enable",
1303         .field_bit_size = 1,
1304         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1305         },
1306         {
1307         .description = "agg_cntr_en",
1308         .field_bit_size = 1,
1309         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1310         },
1311         {
1312         .description = "rate_cntr_en",
1313         .field_bit_size = 1,
1314         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1315         },
1316         {
1317         .description = "flow_cntr_en",
1318         .field_bit_size = 1,
1319         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1320         .result_operand = {
1321                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
1322                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
1323                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
1324                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
1325                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
1326                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
1327                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
1328                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
1329                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1330         },
1331         {
1332         .description = "tcpflags_key",
1333         .field_bit_size = 8,
1334         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1335         },
1336         {
1337         .description = "tcpflags_mir",
1338         .field_bit_size = 1,
1339         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1340         },
1341         {
1342         .description = "tcpflags_match",
1343         .field_bit_size = 1,
1344         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1345         },
1346         {
1347         .description = "encap_ptr",
1348         .field_bit_size = 11,
1349         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1350         .result_operand = {
1351                 (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
1352                 BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
1353                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1354                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1355         },
1356         {
1357         .description = "dst_ip_ptr",
1358         .field_bit_size = 10,
1359         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1360         .result_operand = {
1361                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
1362                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
1363                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1364                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1365         },
1366         {
1367         .description = "tcp_dst_port",
1368         .field_bit_size = 16,
1369         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
1370         .result_operand = {
1371                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
1372                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
1373                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
1374                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
1375                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
1376                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
1377                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
1378                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
1379                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1380         .result_operand_true = {
1381                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
1382                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
1383                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1384                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1385         },
1386         {
1387         .description = "src_ip_ptr",
1388         .field_bit_size = 10,
1389         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1390         .result_operand = {
1391                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
1392                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
1393                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1394                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1395         },
1396         {
1397         .description = "tcp_src_port",
1398         .field_bit_size = 16,
1399         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
1400         .result_operand = {
1401                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
1402                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
1403                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
1404                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
1405                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
1406                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
1407                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
1408                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
1409                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1410         .result_operand_true = {
1411                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
1412                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
1413                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1414                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1415         },
1416         {
1417         .description = "meter_id",
1418         .field_bit_size = 10,
1419         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1420         },
1421         {
1422         .description = "l3_rdir",
1423         .field_bit_size = 1,
1424         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1425         },
1426         {
1427         .description = "tl3_rdir",
1428         .field_bit_size = 1,
1429         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1430         },
1431         {
1432         .description = "l3_ttl_dec",
1433         .field_bit_size = 1,
1434         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
1435         .result_operand = {
1436                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
1437                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
1438                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1439                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1440         },
1441         {
1442         .description = "tl3_ttl_dec",
1443         .field_bit_size = 1,
1444         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
1445         .result_operand = {
1446                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
1447                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
1448                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1449                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1450         },
1451         {
1452         .description = "decap_func",
1453         .field_bit_size = 4,
1454         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
1455         .result_operand = {
1456                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
1457                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
1458                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
1459                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
1460                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
1461                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
1462                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
1463                 (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
1464                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1465         .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
1466                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1467         },
1468         {
1469         .description = "vnic_or_vport",
1470         .field_bit_size = 12,
1471         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1472         .result_operand = {
1473                 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1474                 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
1475                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1476                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1477         },
1478         {
1479         .description = "pop_vlan",
1480         .field_bit_size = 1,
1481         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1482         .result_operand = {
1483                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
1484                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
1485                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
1486                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
1487                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
1488                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
1489                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
1490                 (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
1491                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1492         },
1493         {
1494         .description = "meter",
1495         .field_bit_size = 1,
1496         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1497         },
1498         {
1499         .description = "mirror",
1500         .field_bit_size = 2,
1501         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1502         },
1503         {
1504         .description = "drop",
1505         .field_bit_size = 1,
1506         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1507         .result_operand = {
1508                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
1509                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
1510                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
1511                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
1512                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
1513                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
1514                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
1515                 (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
1516                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1517         },
1518         {
1519         .description = "hit",
1520         .field_bit_size = 1,
1521         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1522         },
1523         {
1524         .description = "type",
1525         .field_bit_size = 1,
1526         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1527         },
1528         /* act_tid: 3, wh_plus, table: int_flow_counter_tbl_0 */
1529         {
1530         .description = "count",
1531         .field_bit_size = 64,
1532         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1533         },
1534         /* act_tid: 3, wh_plus, table: ext_full_act_record_0 */
1535         {
1536         .description = "flow_cntr_ptr",
1537         .field_bit_size = 14,
1538         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1539         .result_operand = {
1540                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1541                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
1542                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1543                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1544         },
1545         {
1546         .description = "age_enable",
1547         .field_bit_size = 1,
1548         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1549         },
1550         {
1551         .description = "agg_cntr_en",
1552         .field_bit_size = 1,
1553         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1554         },
1555         {
1556         .description = "rate_cntr_en",
1557         .field_bit_size = 1,
1558         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1559         },
1560         {
1561         .description = "flow_cntr_en",
1562         .field_bit_size = 1,
1563         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1564         .result_operand = {
1565                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
1566                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
1567                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
1568                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
1569                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
1570                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
1571                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
1572                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
1573                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1574         },
1575         {
1576         .description = "flow_cntr_ext",
1577         .field_bit_size = 1,
1578         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1579         },
1580         {
1581         .description = "tcpflags_key",
1582         .field_bit_size = 8,
1583         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1584         },
1585         {
1586         .description = "tcpflags_mir",
1587         .field_bit_size = 1,
1588         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1589         },
1590         {
1591         .description = "tcpflags_match",
1592         .field_bit_size = 1,
1593         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1594         },
1595         {
1596         .description = "encap_ptr",
1597         .field_bit_size = 11,
1598         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1599         },
1600         {
1601         .description = "encap_rec_int",
1602         .field_bit_size = 1,
1603         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1604         },
1605         {
1606         .description = "dst_ip_ptr",
1607         .field_bit_size = 10,
1608         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1609         },
1610         {
1611         .description = "tcp_dst_port",
1612         .field_bit_size = 16,
1613         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1614         },
1615         {
1616         .description = "src_ip_ptr",
1617         .field_bit_size = 10,
1618         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1619         },
1620         {
1621         .description = "tcp_src_port",
1622         .field_bit_size = 16,
1623         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1624         },
1625         {
1626         .description = "meter_id",
1627         .field_bit_size = 10,
1628         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1629         },
1630         {
1631         .description = "l3_rdir",
1632         .field_bit_size = 1,
1633         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1634         },
1635         {
1636         .description = "tl3_rdir",
1637         .field_bit_size = 1,
1638         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1639         },
1640         {
1641         .description = "l3_ttl_dec",
1642         .field_bit_size = 1,
1643         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1644         },
1645         {
1646         .description = "tl3_ttl_dec",
1647         .field_bit_size = 1,
1648         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1649         },
1650         {
1651         .description = "decap_func",
1652         .field_bit_size = 4,
1653         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
1654         .result_operand = {
1655                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
1656                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
1657                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
1658                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
1659                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
1660                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
1661                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
1662                 (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
1663                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1664         .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
1665                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1666         },
1667         {
1668         .description = "vnic_or_vport",
1669         .field_bit_size = 12,
1670         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1671         .result_operand = {
1672                 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1673                 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
1674                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1675                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1676         },
1677         {
1678         .description = "pop_vlan",
1679         .field_bit_size = 1,
1680         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1681         .result_operand = {
1682                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
1683                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
1684                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
1685                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
1686                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
1687                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
1688                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
1689                 (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
1690                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1691         },
1692         {
1693         .description = "meter",
1694         .field_bit_size = 1,
1695         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1696         },
1697         {
1698         .description = "mirror",
1699         .field_bit_size = 2,
1700         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1701         },
1702         {
1703         .description = "drop",
1704         .field_bit_size = 1,
1705         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1706         },
1707         /* act_tid: 3, wh_plus, table: int_full_act_record_0 */
1708         {
1709         .description = "flow_cntr_ptr",
1710         .field_bit_size = 14,
1711         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1712         .result_operand = {
1713                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1714                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
1715                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1716                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1717         },
1718         {
1719         .description = "age_enable",
1720         .field_bit_size = 1,
1721         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1722         },
1723         {
1724         .description = "agg_cntr_en",
1725         .field_bit_size = 1,
1726         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1727         },
1728         {
1729         .description = "rate_cntr_en",
1730         .field_bit_size = 1,
1731         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1732         },
1733         {
1734         .description = "flow_cntr_en",
1735         .field_bit_size = 1,
1736         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1737         .result_operand = {
1738                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
1739                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
1740                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
1741                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
1742                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
1743                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
1744                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
1745                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
1746                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1747         },
1748         {
1749         .description = "tcpflags_key",
1750         .field_bit_size = 8,
1751         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1752         },
1753         {
1754         .description = "tcpflags_mir",
1755         .field_bit_size = 1,
1756         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1757         },
1758         {
1759         .description = "tcpflags_match",
1760         .field_bit_size = 1,
1761         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1762         },
1763         {
1764         .description = "encap_ptr",
1765         .field_bit_size = 11,
1766         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1767         },
1768         {
1769         .description = "dst_ip_ptr",
1770         .field_bit_size = 10,
1771         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1772         },
1773         {
1774         .description = "tcp_dst_port",
1775         .field_bit_size = 16,
1776         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1777         },
1778         {
1779         .description = "src_ip_ptr",
1780         .field_bit_size = 10,
1781         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1782         },
1783         {
1784         .description = "tcp_src_port",
1785         .field_bit_size = 16,
1786         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1787         },
1788         {
1789         .description = "meter_id",
1790         .field_bit_size = 10,
1791         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1792         },
1793         {
1794         .description = "l3_rdir",
1795         .field_bit_size = 1,
1796         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1797         },
1798         {
1799         .description = "tl3_rdir",
1800         .field_bit_size = 1,
1801         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1802         },
1803         {
1804         .description = "l3_ttl_dec",
1805         .field_bit_size = 1,
1806         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1807         },
1808         {
1809         .description = "tl3_ttl_dec",
1810         .field_bit_size = 1,
1811         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1812         },
1813         {
1814         .description = "decap_func",
1815         .field_bit_size = 4,
1816         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
1817         .result_operand = {
1818                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
1819                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
1820                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
1821                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
1822                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
1823                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
1824                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
1825                 (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
1826                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1827         .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
1828                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1829         },
1830         {
1831         .description = "vnic_or_vport",
1832         .field_bit_size = 12,
1833         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1834         .result_operand = {
1835                 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1836                 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
1837                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1838                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1839         },
1840         {
1841         .description = "pop_vlan",
1842         .field_bit_size = 1,
1843         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1844         .result_operand = {
1845                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
1846                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
1847                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
1848                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
1849                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
1850                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
1851                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
1852                 (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
1853                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1854         },
1855         {
1856         .description = "meter",
1857         .field_bit_size = 1,
1858         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1859         },
1860         {
1861         .description = "mirror",
1862         .field_bit_size = 2,
1863         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1864         },
1865         {
1866         .description = "drop",
1867         .field_bit_size = 1,
1868         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1869         },
1870         {
1871         .description = "hit",
1872         .field_bit_size = 1,
1873         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1874         },
1875         {
1876         .description = "type",
1877         .field_bit_size = 1,
1878         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1879         },
1880         /* act_tid: 4, wh_plus, table: int_flow_counter_tbl_0 */
1881         {
1882         .description = "count",
1883         .field_bit_size = 64,
1884         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1885         },
1886         /* act_tid: 4, wh_plus, table: int_sp_smac_ipv4_0 */
1887         {
1888         .description = "smac",
1889         .field_bit_size = 48,
1890         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1891         .result_operand = {
1892                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
1893                 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
1894                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1895                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1896         },
1897         {
1898         .description = "ipv4_src_addr",
1899         .field_bit_size = 32,
1900         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1901         .result_operand = {
1902                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
1903                 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
1904                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1905                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1906         },
1907         {
1908         .description = "reserved",
1909         .field_bit_size = 48,
1910         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1911         },
1912         /* act_tid: 4, wh_plus, table: int_sp_smac_ipv6_0 */
1913         {
1914         .description = "smac",
1915         .field_bit_size = 48,
1916         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1917         .result_operand = {
1918                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
1919                 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
1920                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1921                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1922         },
1923         {
1924         .description = "ipv6_src_addr",
1925         .field_bit_size = 128,
1926         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1927         .result_operand = {
1928                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
1929                 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
1930                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1931                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1932         },
1933         {
1934         .description = "reserved",
1935         .field_bit_size = 16,
1936         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1937         },
1938         /* act_tid: 4, wh_plus, table: int_tun_encap_record_0 */
1939         {
1940         .description = "ecv_tun_type",
1941         .field_bit_size = 3,
1942         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1943         .result_operand = {
1944                 BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN,
1945                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1946                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1947         },
1948         {
1949         .description = "ecv_l4_type",
1950         .field_bit_size = 3,
1951         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1952         .result_operand = {
1953                 BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM,
1954                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1955                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1956         },
1957         {
1958         .description = "ecv_l3_type",
1959         .field_bit_size = 3,
1960         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1961         .result_operand = {
1962                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
1963                 BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff,
1964                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1965                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1966         },
1967         {
1968         .description = "ecv_l2_en",
1969         .field_bit_size = 1,
1970         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1971         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1972                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1973         },
1974         {
1975         .description = "ecv_vtag_type",
1976         .field_bit_size = 4,
1977         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1978         .result_operand = {
1979                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
1980                 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff,
1981                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1982                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1983         },
1984         {
1985         .description = "ecv_custom_en",
1986         .field_bit_size = 1,
1987         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1988         },
1989         {
1990         .description = "ecv_valid",
1991         .field_bit_size = 1,
1992         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1993         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1994                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1995         },
1996         {
1997         .description = "encap_l2_dmac",
1998         .field_bit_size = 48,
1999         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2000         .result_operand = {
2001                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
2002                 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff,
2003                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2004                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2005         },
2006         {
2007         .description = "encap_vtag",
2008         .field_bit_size = 0,
2009         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
2010         .result_operand = {
2011                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
2012                 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
2013                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
2014                 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff,
2015                 0x00, 0x00, 0x00, 0x00, 0x00,
2016                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2017         },
2018         {
2019         .description = "encap_ip",
2020         .field_bit_size = 0,
2021         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
2022         .result_operand = {
2023                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
2024                 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
2025                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
2026                 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff,
2027                 0x00, 0x00, 0x00, 0x00, 0x00,
2028                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2029         },
2030         {
2031         .description = "encap_udp",
2032         .field_bit_size = 32,
2033         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2034         .result_operand = {
2035                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
2036                 BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff,
2037                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2038                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2039         },
2040         {
2041         .description = "encap_tun",
2042         .field_bit_size = 0,
2043         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
2044         .result_operand = {
2045                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
2046                 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
2047                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
2048                 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff,
2049                 0x00, 0x00, 0x00, 0x00, 0x00,
2050                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2051         },
2052         /* act_tid: 4, wh_plus, table: ext_full_act_record_0 */
2053         {
2054         .description = "flow_cntr_ptr",
2055         .field_bit_size = 14,
2056         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2057         .result_operand = {
2058                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2059                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
2060                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2061                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2062         },
2063         {
2064         .description = "age_enable",
2065         .field_bit_size = 1,
2066         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2067         },
2068         {
2069         .description = "agg_cntr_en",
2070         .field_bit_size = 1,
2071         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2072         },
2073         {
2074         .description = "rate_cntr_en",
2075         .field_bit_size = 1,
2076         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2077         },
2078         {
2079         .description = "flow_cntr_en",
2080         .field_bit_size = 1,
2081         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
2082         .result_operand = {
2083                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
2084                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
2085                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
2086                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
2087                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
2088                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
2089                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
2090                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
2091                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2092         },
2093         {
2094         .description = "flow_cntr_ext",
2095         .field_bit_size = 1,
2096         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2097         },
2098         {
2099         .description = "tcpflags_key",
2100         .field_bit_size = 8,
2101         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2102         },
2103         {
2104         .description = "tcpflags_mir",
2105         .field_bit_size = 1,
2106         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2107         },
2108         {
2109         .description = "tcpflags_match",
2110         .field_bit_size = 1,
2111         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2112         },
2113         {
2114         .description = "encap_ptr",
2115         .field_bit_size = 11,
2116         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2117         },
2118         {
2119         .description = "encap_rec_int",
2120         .field_bit_size = 1,
2121         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2122         },
2123         {
2124         .description = "dst_ip_ptr",
2125         .field_bit_size = 10,
2126         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2127         },
2128         {
2129         .description = "tcp_dst_port",
2130         .field_bit_size = 16,
2131         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2132         },
2133         {
2134         .description = "src_ip_ptr",
2135         .field_bit_size = 10,
2136         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2137         },
2138         {
2139         .description = "tcp_src_port",
2140         .field_bit_size = 16,
2141         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2142         },
2143         {
2144         .description = "meter_id",
2145         .field_bit_size = 10,
2146         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2147         },
2148         {
2149         .description = "l3_rdir",
2150         .field_bit_size = 1,
2151         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2152         },
2153         {
2154         .description = "tl3_rdir",
2155         .field_bit_size = 1,
2156         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2157         },
2158         {
2159         .description = "l3_ttl_dec",
2160         .field_bit_size = 1,
2161         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2162         },
2163         {
2164         .description = "tl3_ttl_dec",
2165         .field_bit_size = 1,
2166         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2167         },
2168         {
2169         .description = "decap_func",
2170         .field_bit_size = 4,
2171         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2172         },
2173         {
2174         .description = "vnic_or_vport",
2175         .field_bit_size = 12,
2176         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2177         .result_operand = {
2178                 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
2179                 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
2180                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2181                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2182         },
2183         {
2184         .description = "pop_vlan",
2185         .field_bit_size = 1,
2186         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2187         },
2188         {
2189         .description = "meter",
2190         .field_bit_size = 1,
2191         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2192         },
2193         {
2194         .description = "mirror",
2195         .field_bit_size = 2,
2196         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2197         },
2198         {
2199         .description = "drop",
2200         .field_bit_size = 1,
2201         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2202         },
2203         {
2204         .description = "ecv_tun_type",
2205         .field_bit_size = 3,
2206         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2207         .result_operand = {
2208                 BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN,
2209                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2210                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2211         },
2212         {
2213         .description = "ecv_l4_type",
2214         .field_bit_size = 3,
2215         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2216         .result_operand = {
2217                 BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM,
2218                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2219                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2220         },
2221         {
2222         .description = "ecv_l3_type",
2223         .field_bit_size = 3,
2224         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2225         .result_operand = {
2226                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
2227                 BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff,
2228                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2229                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2230         },
2231         {
2232         .description = "ecv_l2_en",
2233         .field_bit_size = 1,
2234         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2235         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2236                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2237         },
2238         {
2239         .description = "ecv_vtag_type",
2240         .field_bit_size = 4,
2241         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2242         .result_operand = {
2243                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
2244                 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff,
2245                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2246                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2247         },
2248         {
2249         .description = "ecv_custom_en",
2250         .field_bit_size = 1,
2251         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2252         },
2253         {
2254         .description = "ecv_valid",
2255         .field_bit_size = 1,
2256         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2257         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2258                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2259         },
2260         {
2261         .description = "encap_l2_dmac",
2262         .field_bit_size = 48,
2263         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2264         .result_operand = {
2265                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
2266                 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff,
2267                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2268                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2269         },
2270         {
2271         .description = "encap_vtag",
2272         .field_bit_size = 0,
2273         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
2274         .result_operand = {
2275                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
2276                 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
2277                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
2278                 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff,
2279                 0x00, 0x00, 0x00, 0x00, 0x00,
2280                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2281         },
2282         {
2283         .description = "encap_ip",
2284         .field_bit_size = 0,
2285         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
2286         .result_operand = {
2287                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
2288                 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
2289                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
2290                 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff,
2291                 0x00, 0x00, 0x00, 0x00, 0x00,
2292                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2293         },
2294         {
2295         .description = "encap_udp",
2296         .field_bit_size = 32,
2297         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2298         .result_operand = {
2299                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
2300                 BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff,
2301                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2302                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2303         },
2304         {
2305         .description = "encap_tun",
2306         .field_bit_size = 0,
2307         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
2308         .result_operand = {
2309                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
2310                 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
2311                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
2312                 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff,
2313                 0x00, 0x00, 0x00, 0x00, 0x00,
2314                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2315         },
2316         /* act_tid: 4, wh_plus, table: int_full_act_record_0 */
2317         {
2318         .description = "flow_cntr_ptr",
2319         .field_bit_size = 14,
2320         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2321         .result_operand = {
2322                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2323                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
2324                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2325                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2326         },
2327         {
2328         .description = "age_enable",
2329         .field_bit_size = 1,
2330         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2331         },
2332         {
2333         .description = "agg_cntr_en",
2334         .field_bit_size = 1,
2335         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2336         },
2337         {
2338         .description = "rate_cntr_en",
2339         .field_bit_size = 1,
2340         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2341         },
2342         {
2343         .description = "flow_cntr_en",
2344         .field_bit_size = 1,
2345         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
2346         .result_operand = {
2347                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
2348                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
2349                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
2350                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
2351                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
2352                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
2353                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
2354                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
2355                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2356         },
2357         {
2358         .description = "tcpflags_key",
2359         .field_bit_size = 8,
2360         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2361         },
2362         {
2363         .description = "tcpflags_mir",
2364         .field_bit_size = 1,
2365         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2366         },
2367         {
2368         .description = "tcpflags_match",
2369         .field_bit_size = 1,
2370         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2371         },
2372         {
2373         .description = "encap_ptr",
2374         .field_bit_size = 11,
2375         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2376         .result_operand = {
2377                 (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
2378                 BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
2379                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2380                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2381         },
2382         {
2383         .description = "dst_ip_ptr",
2384         .field_bit_size = 10,
2385         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2386         },
2387         {
2388         .description = "tcp_dst_port",
2389         .field_bit_size = 16,
2390         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2391         },
2392         {
2393         .description = "src_ip_ptr",
2394         .field_bit_size = 10,
2395         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2396         },
2397         {
2398         .description = "tcp_src_port",
2399         .field_bit_size = 16,
2400         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2401         },
2402         {
2403         .description = "meter_id",
2404         .field_bit_size = 10,
2405         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2406         },
2407         {
2408         .description = "l3_rdir",
2409         .field_bit_size = 1,
2410         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2411         },
2412         {
2413         .description = "tl3_rdir",
2414         .field_bit_size = 1,
2415         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2416         },
2417         {
2418         .description = "l3_ttl_dec",
2419         .field_bit_size = 1,
2420         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2421         },
2422         {
2423         .description = "tl3_ttl_dec",
2424         .field_bit_size = 1,
2425         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2426         },
2427         {
2428         .description = "decap_func",
2429         .field_bit_size = 4,
2430         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2431         },
2432         {
2433         .description = "vnic_or_vport",
2434         .field_bit_size = 12,
2435         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2436         .result_operand = {
2437                 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
2438                 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
2439                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2440                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2441         },
2442         {
2443         .description = "pop_vlan",
2444         .field_bit_size = 1,
2445         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2446         },
2447         {
2448         .description = "meter",
2449         .field_bit_size = 1,
2450         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2451         },
2452         {
2453         .description = "mirror",
2454         .field_bit_size = 2,
2455         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2456         },
2457         {
2458         .description = "drop",
2459         .field_bit_size = 1,
2460         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2461         },
2462         {
2463         .description = "hit",
2464         .field_bit_size = 1,
2465         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2466         },
2467         {
2468         .description = "type",
2469         .field_bit_size = 1,
2470         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2471         },
2472         /* act_tid: 5, wh_plus, table: int_flow_counter_tbl_0 */
2473         {
2474         .description = "count",
2475         .field_bit_size = 64,
2476         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2477         },
2478         /* act_tid: 5, wh_plus, table: int_act_modify_ipv4_src_0 */
2479         {
2480         .description = "ipv4_addr",
2481         .field_bit_size = 32,
2482         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2483         .result_operand = {
2484                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
2485                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff,
2486                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2487                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2488         },
2489         /* act_tid: 5, wh_plus, table: int_act_modify_ipv4_dst_0 */
2490         {
2491         .description = "ipv4_addr",
2492         .field_bit_size = 32,
2493         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2494         .result_operand = {
2495                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
2496                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff,
2497                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2498                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2499         },
2500         /* act_tid: 5, wh_plus, table: int_encap_mac_record_0 */
2501         {
2502         .description = "ecv_tun_type",
2503         .field_bit_size = 3,
2504         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2505         },
2506         {
2507         .description = "ecv_l4_type",
2508         .field_bit_size = 3,
2509         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2510         },
2511         {
2512         .description = "ecv_l3_type",
2513         .field_bit_size = 3,
2514         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2515         },
2516         {
2517         .description = "ecv_l2_en",
2518         .field_bit_size = 1,
2519         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2520         .result_operand = {
2521                 BNXT_ULP_SYM_ECV_L2_EN_YES,
2522                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2523                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2524         },
2525         {
2526         .description = "ecv_vtag_type",
2527         .field_bit_size = 4,
2528         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2529         },
2530         {
2531         .description = "ecv_custom_en",
2532         .field_bit_size = 1,
2533         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2534         },
2535         {
2536         .description = "ecv_valid",
2537         .field_bit_size = 1,
2538         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2539         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2540                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2541         },
2542         {
2543         .description = "vtag_tpid",
2544         .field_bit_size = 16,
2545         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2546         },
2547         {
2548         .description = "vtag_vid",
2549         .field_bit_size = 12,
2550         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2551         },
2552         {
2553         .description = "vtag_de",
2554         .field_bit_size = 1,
2555         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2556         },
2557         {
2558         .description = "vtag_pcp",
2559         .field_bit_size = 3,
2560         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2561         },
2562         {
2563         .description = "spare",
2564         .field_bit_size = 80,
2565         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2566         },
2567         /* act_tid: 5, wh_plus, table: int_full_act_record_0 */
2568         {
2569         .description = "flow_cntr_ptr",
2570         .field_bit_size = 14,
2571         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2572         .result_operand = {
2573                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2574                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
2575                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2576                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2577         },
2578         {
2579         .description = "age_enable",
2580         .field_bit_size = 1,
2581         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2582         },
2583         {
2584         .description = "agg_cntr_en",
2585         .field_bit_size = 1,
2586         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2587         },
2588         {
2589         .description = "rate_cntr_en",
2590         .field_bit_size = 1,
2591         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2592         },
2593         {
2594         .description = "flow_cntr_en",
2595         .field_bit_size = 1,
2596         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
2597         .result_operand = {
2598                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
2599                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
2600                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
2601                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
2602                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
2603                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
2604                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
2605                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
2606                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2607         },
2608         {
2609         .description = "tcpflags_key",
2610         .field_bit_size = 8,
2611         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2612         },
2613         {
2614         .description = "tcpflags_mir",
2615         .field_bit_size = 1,
2616         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2617         },
2618         {
2619         .description = "tcpflags_match",
2620         .field_bit_size = 1,
2621         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2622         },
2623         {
2624         .description = "encap_ptr",
2625         .field_bit_size = 11,
2626         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
2627         .result_operand = {
2628                 (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
2629                 BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
2630                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2631                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2632         },
2633         {
2634         .description = "dst_ip_ptr",
2635         .field_bit_size = 10,
2636         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2637         .result_operand = {
2638                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
2639                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
2640                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2641                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2642         },
2643         {
2644         .description = "tcp_dst_port",
2645         .field_bit_size = 16,
2646         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
2647         .result_operand = {
2648                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
2649                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
2650                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
2651                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
2652                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
2653                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
2654                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
2655                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
2656                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
2657         .result_operand_true = {
2658                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
2659                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
2660                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2661                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2662         },
2663         {
2664         .description = "src_ip_ptr",
2665         .field_bit_size = 10,
2666         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2667         .result_operand = {
2668                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
2669                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
2670                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2671                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2672         },
2673         {
2674         .description = "tcp_src_port",
2675         .field_bit_size = 16,
2676         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
2677         .result_operand = {
2678                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
2679                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
2680                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
2681                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
2682                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
2683                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
2684                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
2685                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
2686                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
2687         .result_operand_true = {
2688                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
2689                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
2690                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2691                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2692         },
2693         {
2694         .description = "meter_id",
2695         .field_bit_size = 10,
2696         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2697         },
2698         {
2699         .description = "l3_rdir",
2700         .field_bit_size = 1,
2701         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2702         },
2703         {
2704         .description = "tl3_rdir",
2705         .field_bit_size = 1,
2706         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2707         },
2708         {
2709         .description = "l3_ttl_dec",
2710         .field_bit_size = 1,
2711         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
2712         .result_operand = {
2713                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
2714                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
2715                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2716                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2717         },
2718         {
2719         .description = "tl3_ttl_dec",
2720         .field_bit_size = 1,
2721         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
2722         .result_operand = {
2723                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
2724                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
2725                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2726                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2727         },
2728         {
2729         .description = "decap_func",
2730         .field_bit_size = 4,
2731         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
2732         .result_operand = {
2733                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
2734                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
2735                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
2736                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
2737                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
2738                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
2739                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
2740                 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
2741                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
2742         .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
2743                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
2744         .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
2745                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2746         },
2747         {
2748         .description = "vnic_or_vport",
2749         .field_bit_size = 12,
2750         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2751         .result_operand = {
2752                 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
2753                 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
2754                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2755                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2756         },
2757         {
2758         .description = "pop_vlan",
2759         .field_bit_size = 1,
2760         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2761         },
2762         {
2763         .description = "meter",
2764         .field_bit_size = 1,
2765         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2766         },
2767         {
2768         .description = "mirror",
2769         .field_bit_size = 2,
2770         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2771         },
2772         {
2773         .description = "drop",
2774         .field_bit_size = 1,
2775         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2776         },
2777         {
2778         .description = "hit",
2779         .field_bit_size = 1,
2780         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2781         },
2782         {
2783         .description = "type",
2784         .field_bit_size = 1,
2785         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2786         },
2787         /* act_tid: 5, wh_plus, table: ext_full_act_record_0 */
2788         {
2789         .description = "flow_cntr_ptr",
2790         .field_bit_size = 14,
2791         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2792         .result_operand = {
2793                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2794                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
2795                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2796                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2797         },
2798         {
2799         .description = "age_enable",
2800         .field_bit_size = 1,
2801         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2802         },
2803         {
2804         .description = "agg_cntr_en",
2805         .field_bit_size = 1,
2806         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2807         },
2808         {
2809         .description = "rate_cntr_en",
2810         .field_bit_size = 1,
2811         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2812         },
2813         {
2814         .description = "flow_cntr_en",
2815         .field_bit_size = 1,
2816         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
2817         .result_operand = {
2818                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
2819                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
2820                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
2821                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
2822                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
2823                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
2824                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
2825                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
2826                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2827         },
2828         {
2829         .description = "flow_cntr_ext",
2830         .field_bit_size = 1,
2831         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2832         },
2833         {
2834         .description = "tcpflags_key",
2835         .field_bit_size = 8,
2836         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2837         },
2838         {
2839         .description = "tcpflags_mir",
2840         .field_bit_size = 1,
2841         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2842         },
2843         {
2844         .description = "tcpflags_match",
2845         .field_bit_size = 1,
2846         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2847         },
2848         {
2849         .description = "encap_ptr",
2850         .field_bit_size = 11,
2851         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2852         },
2853         {
2854         .description = "encap_rec_int",
2855         .field_bit_size = 1,
2856         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2857         },
2858         {
2859         .description = "dst_ip_ptr",
2860         .field_bit_size = 10,
2861         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2862         .result_operand = {
2863                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
2864                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
2865                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2866                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2867         },
2868         {
2869         .description = "tcp_dst_port",
2870         .field_bit_size = 16,
2871         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
2872         .result_operand = {
2873                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
2874                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
2875                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
2876                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
2877                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
2878                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
2879                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
2880                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
2881                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
2882         .result_operand_true = {
2883                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
2884                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
2885                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2886                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2887         },
2888         {
2889         .description = "src_ip_ptr",
2890         .field_bit_size = 10,
2891         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2892         .result_operand = {
2893                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
2894                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
2895                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2896                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2897         },
2898         {
2899         .description = "tcp_src_port",
2900         .field_bit_size = 16,
2901         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
2902         .result_operand = {
2903                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
2904                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
2905                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
2906                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
2907                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
2908                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
2909                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
2910                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
2911                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
2912         .result_operand_true = {
2913                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
2914                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
2915                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2916                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2917         },
2918         {
2919         .description = "meter_id",
2920         .field_bit_size = 10,
2921         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2922         },
2923         {
2924         .description = "l3_rdir",
2925         .field_bit_size = 1,
2926         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2927         },
2928         {
2929         .description = "tl3_rdir",
2930         .field_bit_size = 1,
2931         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2932         },
2933         {
2934         .description = "l3_ttl_dec",
2935         .field_bit_size = 1,
2936         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
2937         .result_operand = {
2938                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
2939                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
2940                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2941                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2942         },
2943         {
2944         .description = "tl3_ttl_dec",
2945         .field_bit_size = 1,
2946         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
2947         .result_operand = {
2948                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
2949                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
2950                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2951                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2952         },
2953         {
2954         .description = "decap_func",
2955         .field_bit_size = 4,
2956         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
2957         .result_operand = {
2958                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
2959                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
2960                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
2961                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
2962                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
2963                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
2964                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
2965                 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
2966                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
2967         .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
2968                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
2969         .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
2970                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2971         },
2972         {
2973         .description = "vnic_or_vport",
2974         .field_bit_size = 12,
2975         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
2976         .result_operand = {
2977                 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
2978                 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
2979                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2980                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2981         },
2982         {
2983         .description = "pop_vlan",
2984         .field_bit_size = 1,
2985         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2986         },
2987         {
2988         .description = "meter",
2989         .field_bit_size = 1,
2990         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2991         },
2992         {
2993         .description = "mirror",
2994         .field_bit_size = 2,
2995         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2996         },
2997         {
2998         .description = "drop",
2999         .field_bit_size = 1,
3000         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3001         },
3002         {
3003         .description = "ecv_tun_type",
3004         .field_bit_size = 3,
3005         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3006         },
3007         {
3008         .description = "ecv_l4_type",
3009         .field_bit_size = 3,
3010         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3011         },
3012         {
3013         .description = "ecv_l3_type",
3014         .field_bit_size = 3,
3015         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3016         },
3017         {
3018         .description = "ecv_l2_en",
3019         .field_bit_size = 1,
3020         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
3021         .result_operand = {
3022                 BNXT_ULP_SYM_ECV_L2_EN_YES,
3023                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3024                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3025         },
3026         {
3027         .description = "ecv_vtag_type",
3028         .field_bit_size = 4,
3029         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3030         },
3031         {
3032         .description = "ecv_custom_en",
3033         .field_bit_size = 1,
3034         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3035         },
3036         {
3037         .description = "ecv_valid",
3038         .field_bit_size = 1,
3039         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
3040         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
3041                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3042         },
3043         {
3044         .description = "vtag_tpid",
3045         .field_bit_size = 16,
3046         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3047         },
3048         {
3049         .description = "vtag_vid",
3050         .field_bit_size = 12,
3051         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3052         },
3053         {
3054         .description = "vtag_de",
3055         .field_bit_size = 1,
3056         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3057         },
3058         {
3059         .description = "vtag_pcp",
3060         .field_bit_size = 3,
3061         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3062         },
3063         /* act_tid: 6, wh_plus, table: int_flow_counter_tbl_0 */
3064         {
3065         .description = "count",
3066         .field_bit_size = 64,
3067         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3068         },
3069         /* act_tid: 6, wh_plus, table: int_vtag_encap_record_0 */
3070         {
3071         .description = "ecv_tun_type",
3072         .field_bit_size = 3,
3073         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3074         },
3075         {
3076         .description = "ecv_l4_type",
3077         .field_bit_size = 3,
3078         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3079         },
3080         {
3081         .description = "ecv_l3_type",
3082         .field_bit_size = 3,
3083         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3084         },
3085         {
3086         .description = "ecv_l2_en",
3087         .field_bit_size = 1,
3088         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3089         },
3090         {
3091         .description = "ecv_vtag_type",
3092         .field_bit_size = 4,
3093         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
3094         .result_operand = {
3095                 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI,
3096                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3097                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3098         },
3099         {
3100         .description = "ecv_custom_en",
3101         .field_bit_size = 1,
3102         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3103         },
3104         {
3105         .description = "ecv_valid",
3106         .field_bit_size = 1,
3107         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
3108         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
3109                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3110         },
3111         {
3112         .description = "vtag_tpid",
3113         .field_bit_size = 16,
3114         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
3115         .result_operand = {
3116                 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
3117                 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff,
3118                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3119                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3120         },
3121         {
3122         .description = "vtag_vid",
3123         .field_bit_size = 12,
3124         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
3125         .result_operand = {
3126                 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
3127                 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff,
3128                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3129                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3130         },
3131         {
3132         .description = "vtag_de",
3133         .field_bit_size = 1,
3134         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3135         },
3136         {
3137         .description = "vtag_pcp",
3138         .field_bit_size = 3,
3139         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
3140         .result_operand = {
3141                 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
3142                 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff,
3143                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3144                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3145         },
3146         {
3147         .description = "spare",
3148         .field_bit_size = 80,
3149         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3150         },
3151         /* act_tid: 6, wh_plus, table: int_full_act_record_0 */
3152         {
3153         .description = "flow_cntr_ptr",
3154         .field_bit_size = 14,
3155         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
3156         .result_operand = {
3157                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3158                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
3159                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3160                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3161         },
3162         {
3163         .description = "age_enable",
3164         .field_bit_size = 1,
3165         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3166         },
3167         {
3168         .description = "agg_cntr_en",
3169         .field_bit_size = 1,
3170         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3171         },
3172         {
3173         .description = "rate_cntr_en",
3174         .field_bit_size = 1,
3175         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3176         },
3177         {
3178         .description = "flow_cntr_en",
3179         .field_bit_size = 1,
3180         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
3181         .result_operand = {
3182                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
3183                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
3184                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
3185                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
3186                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
3187                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
3188                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
3189                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
3190                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3191         },
3192         {
3193         .description = "tcpflags_key",
3194         .field_bit_size = 8,
3195         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3196         },
3197         {
3198         .description = "tcpflags_mir",
3199         .field_bit_size = 1,
3200         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3201         },
3202         {
3203         .description = "tcpflags_match",
3204         .field_bit_size = 1,
3205         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3206         },
3207         {
3208         .description = "encap_ptr",
3209         .field_bit_size = 11,
3210         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
3211         .result_operand = {
3212                 (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
3213                 BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
3214                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3215                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3216         },
3217         {
3218         .description = "dst_ip_ptr",
3219         .field_bit_size = 10,
3220         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3221         },
3222         {
3223         .description = "tcp_dst_port",
3224         .field_bit_size = 16,
3225         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3226         },
3227         {
3228         .description = "src_ip_ptr",
3229         .field_bit_size = 10,
3230         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3231         },
3232         {
3233         .description = "tcp_src_port",
3234         .field_bit_size = 16,
3235         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3236         },
3237         {
3238         .description = "meter_id",
3239         .field_bit_size = 10,
3240         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3241         },
3242         {
3243         .description = "l3_rdir",
3244         .field_bit_size = 1,
3245         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3246         },
3247         {
3248         .description = "tl3_rdir",
3249         .field_bit_size = 1,
3250         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3251         },
3252         {
3253         .description = "l3_ttl_dec",
3254         .field_bit_size = 1,
3255         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
3256         .result_operand = {
3257                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3258                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
3259                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3260                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3261         },
3262         {
3263         .description = "tl3_ttl_dec",
3264         .field_bit_size = 1,
3265         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
3266         .result_operand = {
3267                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3268                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
3269                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3270                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3271         },
3272         {
3273         .description = "decap_func",
3274         .field_bit_size = 4,
3275         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3276         },
3277         {
3278         .description = "vnic_or_vport",
3279         .field_bit_size = 12,
3280         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
3281         .result_operand = {
3282                 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3283                 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
3284                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3285                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3286         },
3287         {
3288         .description = "pop_vlan",
3289         .field_bit_size = 1,
3290         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3291         },
3292         {
3293         .description = "meter",
3294         .field_bit_size = 1,
3295         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3296         },
3297         {
3298         .description = "mirror",
3299         .field_bit_size = 2,
3300         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3301         },
3302         {
3303         .description = "drop",
3304         .field_bit_size = 1,
3305         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
3306         .result_operand = {
3307                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
3308                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
3309                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
3310                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
3311                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
3312                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
3313                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
3314                 (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
3315                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3316         },
3317         {
3318         .description = "hit",
3319         .field_bit_size = 1,
3320         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3321         },
3322         {
3323         .description = "type",
3324         .field_bit_size = 1,
3325         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3326         },
3327         /* act_tid: 6, wh_plus, table: ext_full_act_record_no_tag_0 */
3328         {
3329         .description = "flow_cntr_ptr",
3330         .field_bit_size = 14,
3331         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
3332         .result_operand = {
3333                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3334                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
3335                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3336                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3337         },
3338         {
3339         .description = "age_enable",
3340         .field_bit_size = 1,
3341         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3342         },
3343         {
3344         .description = "agg_cntr_en",
3345         .field_bit_size = 1,
3346         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3347         },
3348         {
3349         .description = "rate_cntr_en",
3350         .field_bit_size = 1,
3351         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3352         },
3353         {
3354         .description = "flow_cntr_en",
3355         .field_bit_size = 1,
3356         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
3357         .result_operand = {
3358                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
3359                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
3360                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
3361                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
3362                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
3363                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
3364                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
3365                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
3366                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3367         },
3368         {
3369         .description = "flow_cntr_ext",
3370         .field_bit_size = 1,
3371         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3372         },
3373         {
3374         .description = "tcpflags_key",
3375         .field_bit_size = 8,
3376         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3377         },
3378         {
3379         .description = "tcpflags_mir",
3380         .field_bit_size = 1,
3381         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3382         },
3383         {
3384         .description = "tcpflags_match",
3385         .field_bit_size = 1,
3386         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3387         },
3388         {
3389         .description = "encap_ptr",
3390         .field_bit_size = 11,
3391         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3392         },
3393         {
3394         .description = "encap_rec_int",
3395         .field_bit_size = 1,
3396         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3397         },
3398         {
3399         .description = "dst_ip_ptr",
3400         .field_bit_size = 10,
3401         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3402         },
3403         {
3404         .description = "tcp_dst_port",
3405         .field_bit_size = 16,
3406         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3407         },
3408         {
3409         .description = "src_ip_ptr",
3410         .field_bit_size = 10,
3411         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3412         },
3413         {
3414         .description = "tcp_src_port",
3415         .field_bit_size = 16,
3416         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3417         },
3418         {
3419         .description = "meter_id",
3420         .field_bit_size = 10,
3421         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3422         },
3423         {
3424         .description = "l3_rdir",
3425         .field_bit_size = 1,
3426         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3427         },
3428         {
3429         .description = "tl3_rdir",
3430         .field_bit_size = 1,
3431         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3432         },
3433         {
3434         .description = "l3_ttl_dec",
3435         .field_bit_size = 1,
3436         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
3437         .result_operand = {
3438                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3439                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
3440                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3441                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3442         },
3443         {
3444         .description = "tl3_ttl_dec",
3445         .field_bit_size = 1,
3446         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
3447         .result_operand = {
3448                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3449                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
3450                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3451                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3452         },
3453         {
3454         .description = "decap_func",
3455         .field_bit_size = 4,
3456         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3457         },
3458         {
3459         .description = "vnic_or_vport",
3460         .field_bit_size = 12,
3461         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
3462         .result_operand = {
3463                 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3464                 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
3465                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3466                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3467         },
3468         {
3469         .description = "pop_vlan",
3470         .field_bit_size = 1,
3471         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3472         },
3473         {
3474         .description = "meter",
3475         .field_bit_size = 1,
3476         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3477         },
3478         {
3479         .description = "mirror",
3480         .field_bit_size = 2,
3481         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3482         },
3483         {
3484         .description = "drop",
3485         .field_bit_size = 1,
3486         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
3487         .result_operand = {
3488                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
3489                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
3490                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
3491                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
3492                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
3493                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
3494                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
3495                 (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
3496                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3497         },
3498         /* act_tid: 6, wh_plus, table: ext_full_act_record_one_tag_0 */
3499         {
3500         .description = "flow_cntr_ptr",
3501         .field_bit_size = 14,
3502         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
3503         .result_operand = {
3504                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3505                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
3506                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3507                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3508         },
3509         {
3510         .description = "age_enable",
3511         .field_bit_size = 1,
3512         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3513         },
3514         {
3515         .description = "agg_cntr_en",
3516         .field_bit_size = 1,
3517         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3518         },
3519         {
3520         .description = "rate_cntr_en",
3521         .field_bit_size = 1,
3522         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3523         },
3524         {
3525         .description = "flow_cntr_en",
3526         .field_bit_size = 1,
3527         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
3528         .result_operand = {
3529                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
3530                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
3531                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
3532                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
3533                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
3534                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
3535                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
3536                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
3537                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3538         },
3539         {
3540         .description = "flow_cntr_ext",
3541         .field_bit_size = 1,
3542         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3543         },
3544         {
3545         .description = "tcpflags_key",
3546         .field_bit_size = 8,
3547         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3548         },
3549         {
3550         .description = "tcpflags_mir",
3551         .field_bit_size = 1,
3552         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3553         },
3554         {
3555         .description = "tcpflags_match",
3556         .field_bit_size = 1,
3557         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3558         },
3559         {
3560         .description = "encap_ptr",
3561         .field_bit_size = 11,
3562         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3563         },
3564         {
3565         .description = "encap_rec_int",
3566         .field_bit_size = 1,
3567         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3568         },
3569         {
3570         .description = "dst_ip_ptr",
3571         .field_bit_size = 10,
3572         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3573         },
3574         {
3575         .description = "tcp_dst_port",
3576         .field_bit_size = 16,
3577         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3578         },
3579         {
3580         .description = "src_ip_ptr",
3581         .field_bit_size = 10,
3582         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3583         },
3584         {
3585         .description = "tcp_src_port",
3586         .field_bit_size = 16,
3587         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3588         },
3589         {
3590         .description = "meter_id",
3591         .field_bit_size = 10,
3592         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3593         },
3594         {
3595         .description = "l3_rdir",
3596         .field_bit_size = 1,
3597         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3598         },
3599         {
3600         .description = "tl3_rdir",
3601         .field_bit_size = 1,
3602         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3603         },
3604         {
3605         .description = "l3_ttl_dec",
3606         .field_bit_size = 1,
3607         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
3608         .result_operand = {
3609                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3610                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
3611                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3612                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3613         },
3614         {
3615         .description = "tl3_ttl_dec",
3616         .field_bit_size = 1,
3617         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
3618         .result_operand = {
3619                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3620                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
3621                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3622                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3623         },
3624         {
3625         .description = "decap_func",
3626         .field_bit_size = 4,
3627         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3628         },
3629         {
3630         .description = "vnic_or_vport",
3631         .field_bit_size = 12,
3632         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
3633         .result_operand = {
3634                 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3635                 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
3636                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3637                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3638         },
3639         {
3640         .description = "pop_vlan",
3641         .field_bit_size = 1,
3642         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
3643         .result_operand = {
3644                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
3645                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
3646                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
3647                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
3648                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
3649                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
3650                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
3651                 (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
3652                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3653         },
3654         {
3655         .description = "meter",
3656         .field_bit_size = 1,
3657         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3658         },
3659         {
3660         .description = "mirror",
3661         .field_bit_size = 2,
3662         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3663         },
3664         {
3665         .description = "drop",
3666         .field_bit_size = 1,
3667         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
3668         .result_operand = {
3669                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
3670                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
3671                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
3672                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
3673                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
3674                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
3675                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
3676                 (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
3677                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3678         },
3679         {
3680         .description = "ecv_tun_type",
3681         .field_bit_size = 3,
3682         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3683         },
3684         {
3685         .description = "ecv_l4_type",
3686         .field_bit_size = 3,
3687         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3688         },
3689         {
3690         .description = "ecv_l3_type",
3691         .field_bit_size = 3,
3692         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3693         },
3694         {
3695         .description = "ecv_l2_en",
3696         .field_bit_size = 1,
3697         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3698         },
3699         {
3700         .description = "ecv_vtag_type",
3701         .field_bit_size = 4,
3702         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
3703         .result_operand = {
3704                 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI,
3705                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3706                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3707         },
3708         {
3709         .description = "ecv_custom_en",
3710         .field_bit_size = 1,
3711         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3712         },
3713         {
3714         .description = "ecv_valid",
3715         .field_bit_size = 1,
3716         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
3717         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
3718                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3719         },
3720         {
3721         .description = "vtag_tpid",
3722         .field_bit_size = 16,
3723         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
3724         .result_operand = {
3725                 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
3726                 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff,
3727                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3728                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3729         },
3730         {
3731         .description = "vtag_vid",
3732         .field_bit_size = 12,
3733         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
3734         .result_operand = {
3735                 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
3736                 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff,
3737                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3738                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3739         },
3740         {
3741         .description = "vtag_de",
3742         .field_bit_size = 1,
3743         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
3744         },
3745         {
3746         .description = "vtag_pcp",
3747         .field_bit_size = 3,
3748         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
3749         .result_operand = {
3750                 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
3751                 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff,
3752                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3753                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
3754         }
3755 };