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