3e9ec260eff639e1e13c7501267d35f5a07d5279
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_template_db_wh_plus_act.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2020 Broadcom
3  * All rights reserved.
4  */
5
6 #include "ulp_template_db_enum.h"
7 #include "ulp_template_db_field.h"
8 #include "ulp_template_struct.h"
9 #include "ulp_rte_parser.h"
10
11 struct bnxt_ulp_mapper_tbl_list_info ulp_act_wh_plus_tmpl_list[] = {
12         [1] = {
13         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
14         .num_tbls = 5,
15         .start_tbl_idx = 0,
16         .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
17         },
18         [2] = {
19         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
20         .num_tbls = 2,
21         .start_tbl_idx = 5,
22         .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
23         },
24         [3] = {
25         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
26         .num_tbls = 2,
27         .start_tbl_idx = 7,
28         .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
29         },
30         [4] = {
31         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
32         .num_tbls = 5,
33         .start_tbl_idx = 9,
34         .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
35         },
36         [5] = {
37         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
38         .num_tbls = 5,
39         .start_tbl_idx = 14,
40         .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
41         },
42         [6] = {
43         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
44         .num_tbls = 3,
45         .start_tbl_idx = 19,
46         .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
47         }
48 };
49
50 struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
51         {
52         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
53         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
54         .resource_sub_type =
55                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT,
56         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
57         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
58         .direction = TF_DIR_RX,
59         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
60         .result_start_idx = 0,
61         .result_bit_size = 64,
62         .result_num_fields = 1,
63         .encap_num_fields = 0,
64         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
65         .index_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0,
66         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
67         },
68         {
69         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
70         .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
71         .resource_sub_type =
72                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
73         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
74         .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_SRC,
75         .direction = TF_DIR_RX,
76         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
77         .result_start_idx = 1,
78         .result_bit_size = 32,
79         .result_num_fields = 1,
80         .encap_num_fields = 0,
81         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
82         .index_operand = BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0,
83         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
84         },
85         {
86         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
87         .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
88         .resource_sub_type =
89                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
90         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
91         .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_DST,
92         .direction = TF_DIR_RX,
93         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
94         .result_start_idx = 2,
95         .result_bit_size = 32,
96         .result_num_fields = 1,
97         .encap_num_fields = 0,
98         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
99         .index_operand = BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0,
100         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
101         },
102         {
103         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
104         .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
105         .resource_sub_type =
106                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
107         .direction = TF_DIR_RX,
108         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
109         .result_start_idx = 3,
110         .result_bit_size = 0,
111         .result_num_fields = 0,
112         .encap_num_fields = 12,
113         .index_opcode = BNXT_ULP_INDEX_OPCODE_GLOBAL,
114         .index_operand = BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR,
115         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
116         },
117         {
118         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
119         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
120         .resource_sub_type =
121                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
122         .direction = TF_DIR_RX,
123         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
124         .result_start_idx = 15,
125         .result_bit_size = 128,
126         .result_num_fields = 26,
127         .encap_num_fields = 0,
128         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
129         .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
130         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
131         },
132         {
133         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
134         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
135         .resource_sub_type =
136                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT,
137         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
138         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
139         .direction = TF_DIR_RX,
140         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
141         .result_start_idx = 41,
142         .result_bit_size = 64,
143         .result_num_fields = 1,
144         .encap_num_fields = 0,
145         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
146         .index_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0,
147         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
148         },
149         {
150         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
151         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
152         .resource_sub_type =
153                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
154         .direction = TF_DIR_RX,
155         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
156         .result_start_idx = 42,
157         .result_bit_size = 128,
158         .result_num_fields = 26,
159         .encap_num_fields = 0,
160         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
161         .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
162         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
163         },
164         {
165         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
166         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
167         .resource_sub_type =
168                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT,
169         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
170         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
171         .direction = TF_DIR_RX,
172         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
173         .result_start_idx = 68,
174         .result_bit_size = 64,
175         .result_num_fields = 1,
176         .encap_num_fields = 0,
177         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
178         .index_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0,
179         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
180         },
181         {
182         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
183         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
184         .resource_sub_type =
185                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
186         .direction = TF_DIR_RX,
187         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
188         .result_start_idx = 69,
189         .result_bit_size = 128,
190         .result_num_fields = 26,
191         .encap_num_fields = 0,
192         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
193         .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
194         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
195         },
196         {
197         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
198         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
199         .resource_sub_type =
200                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT,
201         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
202         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
203         .direction = TF_DIR_TX,
204         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
205         .result_start_idx = 95,
206         .result_bit_size = 64,
207         .result_num_fields = 1,
208         .encap_num_fields = 0,
209         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
210         .index_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0,
211         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
212         },
213         {
214         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
215         .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
216         .resource_sub_type =
217                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
218         .cond_opcode = BNXT_ULP_COND_OPCODE_COMP_FIELD_IS_SET,
219         .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG,
220         .direction = TF_DIR_TX,
221         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
222         .result_start_idx = 96,
223         .result_bit_size = 0,
224         .result_num_fields = 0,
225         .encap_num_fields = 3,
226         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
227         .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_SP_PTR,
228         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
229         },
230         {
231         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
232         .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV6,
233         .resource_sub_type =
234                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
235         .cond_opcode = BNXT_ULP_COND_OPCODE_COMP_FIELD_IS_SET,
236         .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG,
237         .direction = TF_DIR_TX,
238         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
239         .result_start_idx = 99,
240         .result_bit_size = 0,
241         .result_num_fields = 0,
242         .encap_num_fields = 3,
243         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
244         .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_SP_PTR,
245         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
246         },
247         {
248         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
249         .resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
250         .resource_sub_type =
251                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
252         .direction = TF_DIR_TX,
253         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
254         .result_start_idx = 102,
255         .result_bit_size = 0,
256         .result_num_fields = 0,
257         .encap_num_fields = 12,
258         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
259         .index_operand = BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0,
260         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
261         },
262         {
263         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
264         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
265         .resource_sub_type =
266                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
267         .direction = TF_DIR_TX,
268         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
269         .result_start_idx = 114,
270         .result_bit_size = 128,
271         .result_num_fields = 26,
272         .encap_num_fields = 0,
273         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
274         .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
275         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
276         },
277         {
278         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
279         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
280         .resource_sub_type =
281                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT,
282         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
283         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
284         .direction = TF_DIR_TX,
285         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
286         .result_start_idx = 140,
287         .result_bit_size = 64,
288         .result_num_fields = 1,
289         .encap_num_fields = 0,
290         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
291         .index_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0,
292         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
293         },
294         {
295         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
296         .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
297         .resource_sub_type =
298                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
299         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
300         .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_SRC,
301         .direction = TF_DIR_TX,
302         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
303         .result_start_idx = 141,
304         .result_bit_size = 32,
305         .result_num_fields = 1,
306         .encap_num_fields = 0,
307         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
308         .index_operand = BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0,
309         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
310         },
311         {
312         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
313         .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
314         .resource_sub_type =
315                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
316         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
317         .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_DST,
318         .direction = TF_DIR_TX,
319         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
320         .result_start_idx = 142,
321         .result_bit_size = 32,
322         .result_num_fields = 1,
323         .encap_num_fields = 0,
324         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
325         .index_operand = BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0,
326         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
327         },
328         {
329         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
330         .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
331         .resource_sub_type =
332                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
333         .direction = TF_DIR_TX,
334         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
335         .result_start_idx = 143,
336         .result_bit_size = 0,
337         .result_num_fields = 0,
338         .encap_num_fields = 12,
339         .index_opcode = BNXT_ULP_INDEX_OPCODE_GLOBAL,
340         .index_operand = BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR,
341         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
342         },
343         {
344         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
345         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
346         .resource_sub_type =
347                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
348         .direction = TF_DIR_TX,
349         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
350         .result_start_idx = 155,
351         .result_bit_size = 128,
352         .result_num_fields = 26,
353         .encap_num_fields = 0,
354         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
355         .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
356         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
357         },
358         {
359         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
360         .resource_type = TF_TBL_TYPE_ACT_STATS_64,
361         .resource_sub_type =
362                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT,
363         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
364         .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
365         .direction = TF_DIR_TX,
366         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
367         .result_start_idx = 181,
368         .result_bit_size = 64,
369         .result_num_fields = 1,
370         .encap_num_fields = 0,
371         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
372         .index_operand = BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0,
373         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
374         },
375         {
376         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
377         .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
378         .resource_sub_type =
379                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
380         .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
381         .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN,
382         .direction = TF_DIR_TX,
383         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
384         .result_start_idx = 182,
385         .result_bit_size = 0,
386         .result_num_fields = 0,
387         .encap_num_fields = 12,
388         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
389         .index_operand = BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0,
390         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
391         },
392         {
393         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
394         .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
395         .resource_sub_type =
396                 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
397         .direction = TF_DIR_TX,
398         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
399         .result_start_idx = 194,
400         .result_bit_size = 128,
401         .result_num_fields = 26,
402         .encap_num_fields = 0,
403         .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
404         .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
405         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
406         }
407 };
408
409 struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
410         {
411         .field_bit_size = 64,
412         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
413         },
414         {
415         .field_bit_size = 32,
416         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
417         .result_operand = {
418                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
419                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff,
420                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
421                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
422         },
423         {
424         .field_bit_size = 32,
425         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
426         .result_operand = {
427                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
428                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff,
429                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
430                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
431         },
432         {
433         .field_bit_size = 3,
434         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
435         },
436         {
437         .field_bit_size = 3,
438         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
439         },
440         {
441         .field_bit_size = 3,
442         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
443         },
444         {
445         .field_bit_size = 1,
446         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
447         .result_operand = {
448                 BNXT_ULP_SYM_ECV_L2_EN_YES,
449                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
450                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
451         },
452         {
453         .field_bit_size = 4,
454         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
455         },
456         {
457         .field_bit_size = 1,
458         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
459         },
460         {
461         .field_bit_size = 1,
462         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
463         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
464                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
465         },
466         {
467         .field_bit_size = 16,
468         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
469         },
470         {
471         .field_bit_size = 12,
472         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
473         },
474         {
475         .field_bit_size = 1,
476         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
477         },
478         {
479         .field_bit_size = 3,
480         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
481         },
482         {
483         .field_bit_size = 80,
484         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
485         },
486         {
487         .field_bit_size = 14,
488         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
489         .result_operand = {
490                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
491                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
492                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
493                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
494         },
495         {
496         .field_bit_size = 1,
497         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
498         },
499         {
500         .field_bit_size = 1,
501         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
502         },
503         {
504         .field_bit_size = 1,
505         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
506         },
507         {
508         .field_bit_size = 1,
509         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
510         .result_operand = {
511                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
512                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
513                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
514                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
515                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
516                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
517                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
518                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
519                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
520         },
521         {
522         .field_bit_size = 8,
523         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
524         },
525         {
526         .field_bit_size = 1,
527         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
528         },
529         {
530         .field_bit_size = 1,
531         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
532         },
533         {
534         .field_bit_size = 11,
535         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
536         .result_operand = {
537                 (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
538                 BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
539                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
540                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
541         },
542         {
543         .field_bit_size = 10,
544         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
545         .result_operand = {
546                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
547                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
548                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
549                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
550         },
551         {
552         .field_bit_size = 16,
553         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
554         .result_operand = {
555                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
556                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
557                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
558                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
559                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
560                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
561                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
562                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
563                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
564         .result_operand_true = {
565                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
566                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
567                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
568                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
569         },
570         {
571         .field_bit_size = 10,
572         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
573         .result_operand = {
574                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
575                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
576                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
577                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
578         },
579         {
580         .field_bit_size = 16,
581         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
582         .result_operand = {
583                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
584                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
585                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
586                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
587                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
588                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
589                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
590                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
591                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
592         .result_operand_true = {
593                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
594                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
595                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
596                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
597         },
598         {
599         .field_bit_size = 10,
600         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
601         },
602         {
603         .field_bit_size = 1,
604         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
605         },
606         {
607         .field_bit_size = 1,
608         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
609         },
610         {
611         .field_bit_size = 1,
612         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
613         .result_operand = {
614                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
615                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
616                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
617                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
618         },
619         {
620         .field_bit_size = 1,
621         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
622         .result_operand = {
623                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
624                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
625                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
626                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
627         },
628         {
629         .field_bit_size = 4,
630         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
631         .result_operand = {
632                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
633                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
634                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
635                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
636                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
637                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
638                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
639                 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
640                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
641         .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
642                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
643         .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
644                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
645         },
646         {
647         .field_bit_size = 12,
648         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
649         .result_operand = {
650                 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
651                 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
652                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
653                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
654         },
655         {
656         .field_bit_size = 1,
657         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
658         },
659         {
660         .field_bit_size = 1,
661         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
662         },
663         {
664         .field_bit_size = 2,
665         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
666         },
667         {
668         .field_bit_size = 1,
669         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
670         },
671         {
672         .field_bit_size = 1,
673         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
674         },
675         {
676         .field_bit_size = 1,
677         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
678         },
679         {
680         .field_bit_size = 64,
681         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
682         },
683         {
684         .field_bit_size = 14,
685         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
686         .result_operand = {
687                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
688                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
689                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
690                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
691         },
692         {
693         .field_bit_size = 1,
694         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
695         },
696         {
697         .field_bit_size = 1,
698         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
699         },
700         {
701         .field_bit_size = 1,
702         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
703         },
704         {
705         .field_bit_size = 1,
706         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
707         .result_operand = {
708                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
709                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
710                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
711                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
712                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
713                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
714                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
715                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
716                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
717         },
718         {
719         .field_bit_size = 8,
720         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
721         },
722         {
723         .field_bit_size = 1,
724         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
725         },
726         {
727         .field_bit_size = 1,
728         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
729         },
730         {
731         .field_bit_size = 11,
732         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
733         .result_operand = {
734                 (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
735                 BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
736                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
737                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
738         },
739         {
740         .field_bit_size = 10,
741         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
742         .result_operand = {
743                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
744                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
745                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
746                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
747         },
748         {
749         .field_bit_size = 16,
750         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
751         .result_operand = {
752                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
753                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
754                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
755                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
756                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
757                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
758                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
759                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
760                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
761         .result_operand_true = {
762                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
763                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
764                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
765                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
766         },
767         {
768         .field_bit_size = 10,
769         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
770         .result_operand = {
771                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
772                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
773                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
774                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
775         },
776         {
777         .field_bit_size = 16,
778         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
779         .result_operand = {
780                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
781                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
782                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
783                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
784                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
785                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
786                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
787                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
788                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
789         .result_operand_true = {
790                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
791                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
792                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
793                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
794         },
795         {
796         .field_bit_size = 10,
797         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
798         },
799         {
800         .field_bit_size = 1,
801         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
802         },
803         {
804         .field_bit_size = 1,
805         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
806         },
807         {
808         .field_bit_size = 1,
809         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
810         .result_operand = {
811                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
812                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
813                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
814                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
815         },
816         {
817         .field_bit_size = 1,
818         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
819         .result_operand = {
820                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
821                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
822                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
823                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
824         },
825         {
826         .field_bit_size = 4,
827         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
828         .result_operand = {
829                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
830                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
831                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
832                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
833                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
834                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
835                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
836                 (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
837                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
838         .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
839                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
840         },
841         {
842         .field_bit_size = 12,
843         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
844         .result_operand = {
845                 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
846                 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
847                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
848                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
849         },
850         {
851         .field_bit_size = 1,
852         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
853         .result_operand = {
854                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
855                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
856                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
857                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
858                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
859                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
860                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
861                 (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
862                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
863         },
864         {
865         .field_bit_size = 1,
866         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
867         },
868         {
869         .field_bit_size = 2,
870         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
871         },
872         {
873         .field_bit_size = 1,
874         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
875         .result_operand = {
876                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
877                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
878                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
879                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
880                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
881                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
882                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
883                 (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
884                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
885         },
886         {
887         .field_bit_size = 1,
888         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
889         },
890         {
891         .field_bit_size = 1,
892         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
893         },
894         {
895         .field_bit_size = 64,
896         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
897         },
898         {
899         .field_bit_size = 14,
900         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
901         .result_operand = {
902                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
903                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
904                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
905                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
906         },
907         {
908         .field_bit_size = 1,
909         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
910         },
911         {
912         .field_bit_size = 1,
913         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
914         },
915         {
916         .field_bit_size = 1,
917         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
918         },
919         {
920         .field_bit_size = 1,
921         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
922         .result_operand = {
923                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
924                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
925                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
926                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
927                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
928                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
929                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
930                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
931                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
932         },
933         {
934         .field_bit_size = 8,
935         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
936         },
937         {
938         .field_bit_size = 1,
939         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
940         },
941         {
942         .field_bit_size = 1,
943         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
944         },
945         {
946         .field_bit_size = 11,
947         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
948         },
949         {
950         .field_bit_size = 10,
951         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
952         },
953         {
954         .field_bit_size = 16,
955         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
956         },
957         {
958         .field_bit_size = 10,
959         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
960         },
961         {
962         .field_bit_size = 16,
963         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
964         },
965         {
966         .field_bit_size = 10,
967         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
968         },
969         {
970         .field_bit_size = 1,
971         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
972         },
973         {
974         .field_bit_size = 1,
975         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
976         },
977         {
978         .field_bit_size = 1,
979         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
980         },
981         {
982         .field_bit_size = 1,
983         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
984         },
985         {
986         .field_bit_size = 4,
987         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
988         .result_operand = {
989                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
990                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
991                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
992                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
993                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
994                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
995                 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
996                 (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
997                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
998         .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
999                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1000         },
1001         {
1002         .field_bit_size = 12,
1003         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1004         .result_operand = {
1005                 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1006                 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
1007                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1008                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1009         },
1010         {
1011         .field_bit_size = 1,
1012         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1013         .result_operand = {
1014                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
1015                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
1016                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
1017                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
1018                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
1019                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
1020                 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
1021                 (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
1022                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1023         },
1024         {
1025         .field_bit_size = 1,
1026         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1027         },
1028         {
1029         .field_bit_size = 2,
1030         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1031         },
1032         {
1033         .field_bit_size = 1,
1034         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1035         },
1036         {
1037         .field_bit_size = 1,
1038         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1039         },
1040         {
1041         .field_bit_size = 1,
1042         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1043         },
1044         {
1045         .field_bit_size = 64,
1046         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1047         },
1048         {
1049         .field_bit_size = 48,
1050         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1051         .result_operand = {
1052                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
1053                 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
1054                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1055                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1056         },
1057         {
1058         .field_bit_size = 32,
1059         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1060         .result_operand = {
1061                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
1062                 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
1063                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1064                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1065         },
1066         {
1067         .field_bit_size = 48,
1068         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1069         },
1070         {
1071         .field_bit_size = 48,
1072         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1073         .result_operand = {
1074                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
1075                 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
1076                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1077                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1078         },
1079         {
1080         .field_bit_size = 128,
1081         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1082         .result_operand = {
1083                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
1084                 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
1085                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1086                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1087         },
1088         {
1089         .field_bit_size = 16,
1090         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1091         },
1092         {
1093         .field_bit_size = 3,
1094         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1095         .result_operand = {
1096                 BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN,
1097                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1098                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1099         },
1100         {
1101         .field_bit_size = 3,
1102         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1103         .result_operand = {
1104                 BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM,
1105                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1106                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1107         },
1108         {
1109         .field_bit_size = 3,
1110         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1111         .result_operand = {
1112                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
1113                 BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff,
1114                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1115                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1116         },
1117         {
1118         .field_bit_size = 1,
1119         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1120         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1121                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1122         },
1123         {
1124         .field_bit_size = 4,
1125         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1126         .result_operand = {
1127                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
1128                 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff,
1129                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1130                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1131         },
1132         {
1133         .field_bit_size = 1,
1134         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1135         },
1136         {
1137         .field_bit_size = 1,
1138         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1139         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1140                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1141         },
1142         {
1143         .field_bit_size = 48,
1144         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1145         .result_operand = {
1146                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
1147                 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff,
1148                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1149                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1150         },
1151         {
1152         .field_bit_size = 0,
1153         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
1154         .result_operand = {
1155                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
1156                 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
1157                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
1158                 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff,
1159                 0x00, 0x00, 0x00, 0x00, 0x00,
1160                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1161         },
1162         {
1163         .field_bit_size = 0,
1164         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
1165         .result_operand = {
1166                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
1167                 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
1168                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
1169                 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff,
1170                 0x00, 0x00, 0x00, 0x00, 0x00,
1171                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1172         },
1173         {
1174         .field_bit_size = 32,
1175         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1176         .result_operand = {
1177                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
1178                 BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff,
1179                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1180                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1181         },
1182         {
1183         .field_bit_size = 0,
1184         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
1185         .result_operand = {
1186                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
1187                 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
1188                 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
1189                 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff,
1190                 0x00, 0x00, 0x00, 0x00, 0x00,
1191                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1192         },
1193         {
1194         .field_bit_size = 14,
1195         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1196         .result_operand = {
1197                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1198                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
1199                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1200                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1201         },
1202         {
1203         .field_bit_size = 1,
1204         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1205         },
1206         {
1207         .field_bit_size = 1,
1208         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1209         },
1210         {
1211         .field_bit_size = 1,
1212         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1213         },
1214         {
1215         .field_bit_size = 1,
1216         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1217         .result_operand = {
1218                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
1219                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
1220                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
1221                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
1222                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
1223                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
1224                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
1225                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
1226                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1227         },
1228         {
1229         .field_bit_size = 8,
1230         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1231         },
1232         {
1233         .field_bit_size = 1,
1234         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1235         },
1236         {
1237         .field_bit_size = 1,
1238         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1239         },
1240         {
1241         .field_bit_size = 11,
1242         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1243         .result_operand = {
1244                 (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
1245                 BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
1246                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1247                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1248         },
1249         {
1250         .field_bit_size = 10,
1251         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1252         },
1253         {
1254         .field_bit_size = 16,
1255         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1256         },
1257         {
1258         .field_bit_size = 10,
1259         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1260         },
1261         {
1262         .field_bit_size = 16,
1263         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1264         },
1265         {
1266         .field_bit_size = 10,
1267         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1268         },
1269         {
1270         .field_bit_size = 1,
1271         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1272         },
1273         {
1274         .field_bit_size = 1,
1275         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1276         },
1277         {
1278         .field_bit_size = 1,
1279         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1280         },
1281         {
1282         .field_bit_size = 1,
1283         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1284         },
1285         {
1286         .field_bit_size = 4,
1287         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1288         },
1289         {
1290         .field_bit_size = 12,
1291         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1292         .result_operand = {
1293                 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
1294                 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
1295                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1296                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1297         },
1298         {
1299         .field_bit_size = 1,
1300         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1301         },
1302         {
1303         .field_bit_size = 1,
1304         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1305         },
1306         {
1307         .field_bit_size = 2,
1308         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1309         },
1310         {
1311         .field_bit_size = 1,
1312         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1313         },
1314         {
1315         .field_bit_size = 1,
1316         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1317         },
1318         {
1319         .field_bit_size = 1,
1320         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1321         },
1322         {
1323         .field_bit_size = 64,
1324         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1325         },
1326         {
1327         .field_bit_size = 32,
1328         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1329         .result_operand = {
1330                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
1331                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff,
1332                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1333                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1334         },
1335         {
1336         .field_bit_size = 32,
1337         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1338         .result_operand = {
1339                 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
1340                 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff,
1341                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1342                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1343         },
1344         {
1345         .field_bit_size = 3,
1346         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1347         },
1348         {
1349         .field_bit_size = 3,
1350         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1351         },
1352         {
1353         .field_bit_size = 3,
1354         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1355         },
1356         {
1357         .field_bit_size = 1,
1358         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1359         .result_operand = {
1360                 BNXT_ULP_SYM_ECV_L2_EN_YES,
1361                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1362                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1363         },
1364         {
1365         .field_bit_size = 4,
1366         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1367         },
1368         {
1369         .field_bit_size = 1,
1370         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1371         },
1372         {
1373         .field_bit_size = 1,
1374         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1375         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1376                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1377         },
1378         {
1379         .field_bit_size = 16,
1380         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1381         },
1382         {
1383         .field_bit_size = 12,
1384         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1385         },
1386         {
1387         .field_bit_size = 1,
1388         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1389         },
1390         {
1391         .field_bit_size = 3,
1392         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1393         },
1394         {
1395         .field_bit_size = 80,
1396         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1397         },
1398         {
1399         .field_bit_size = 14,
1400         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1401         .result_operand = {
1402                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1403                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
1404                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1405                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1406         },
1407         {
1408         .field_bit_size = 1,
1409         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1410         },
1411         {
1412         .field_bit_size = 1,
1413         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1414         },
1415         {
1416         .field_bit_size = 1,
1417         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1418         },
1419         {
1420         .field_bit_size = 1,
1421         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1422         .result_operand = {
1423                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
1424                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
1425                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
1426                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
1427                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
1428                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
1429                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
1430                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
1431                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1432         },
1433         {
1434         .field_bit_size = 8,
1435         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1436         },
1437         {
1438         .field_bit_size = 1,
1439         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1440         },
1441         {
1442         .field_bit_size = 1,
1443         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1444         },
1445         {
1446         .field_bit_size = 11,
1447         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
1448         .result_operand = {
1449                 (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
1450                 BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
1451                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1452                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1453         },
1454         {
1455         .field_bit_size = 10,
1456         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1457         .result_operand = {
1458                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
1459                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
1460                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1461                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1462         },
1463         {
1464         .field_bit_size = 16,
1465         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
1466         .result_operand = {
1467                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
1468                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
1469                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
1470                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
1471                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
1472                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
1473                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
1474                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
1475                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1476         .result_operand_true = {
1477                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
1478                 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
1479                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1480                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1481         },
1482         {
1483         .field_bit_size = 10,
1484         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1485         .result_operand = {
1486                 (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
1487                 BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
1488                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1489                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1490         },
1491         {
1492         .field_bit_size = 16,
1493         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
1494         .result_operand = {
1495                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
1496                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
1497                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
1498                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
1499                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
1500                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
1501                 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
1502                 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
1503                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1504         .result_operand_true = {
1505                 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
1506                 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
1507                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1508                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1509         },
1510         {
1511         .field_bit_size = 10,
1512         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1513         },
1514         {
1515         .field_bit_size = 1,
1516         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1517         },
1518         {
1519         .field_bit_size = 1,
1520         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1521         },
1522         {
1523         .field_bit_size = 1,
1524         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
1525         .result_operand = {
1526                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
1527                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
1528                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1529                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1530         },
1531         {
1532         .field_bit_size = 1,
1533         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
1534         .result_operand = {
1535                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
1536                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
1537                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1538                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1539         },
1540         {
1541         .field_bit_size = 4,
1542         .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
1543         .result_operand = {
1544                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
1545                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
1546                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
1547                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
1548                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
1549                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
1550                 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
1551                 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
1552                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1553         .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
1554                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1555         .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
1556                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1557         },
1558         {
1559         .field_bit_size = 12,
1560         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1561         .result_operand = {
1562                 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
1563                 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
1564                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1565                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1566         },
1567         {
1568         .field_bit_size = 1,
1569         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1570         },
1571         {
1572         .field_bit_size = 1,
1573         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1574         },
1575         {
1576         .field_bit_size = 2,
1577         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1578         },
1579         {
1580         .field_bit_size = 1,
1581         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1582         },
1583         {
1584         .field_bit_size = 1,
1585         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1586         },
1587         {
1588         .field_bit_size = 1,
1589         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1590         },
1591         {
1592         .field_bit_size = 64,
1593         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1594         },
1595         {
1596         .field_bit_size = 3,
1597         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1598         },
1599         {
1600         .field_bit_size = 3,
1601         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1602         },
1603         {
1604         .field_bit_size = 3,
1605         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1606         },
1607         {
1608         .field_bit_size = 1,
1609         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1610         },
1611         {
1612         .field_bit_size = 4,
1613         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1614         .result_operand = {
1615                 BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI,
1616                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1617                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1618         },
1619         {
1620         .field_bit_size = 1,
1621         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1622         },
1623         {
1624         .field_bit_size = 1,
1625         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1626         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1627                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1628         },
1629         {
1630         .field_bit_size = 16,
1631         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1632         .result_operand = {
1633                 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
1634                 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff,
1635                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1636                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1637         },
1638         {
1639         .field_bit_size = 12,
1640         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1641         .result_operand = {
1642                 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
1643                 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff,
1644                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1645                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1646         },
1647         {
1648         .field_bit_size = 1,
1649         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1650         },
1651         {
1652         .field_bit_size = 3,
1653         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1654         .result_operand = {
1655                 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
1656                 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff,
1657                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1658                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1659         },
1660         {
1661         .field_bit_size = 80,
1662         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1663         },
1664         {
1665         .field_bit_size = 14,
1666         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1667         .result_operand = {
1668                 (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1669                 BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
1670                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1671                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1672         },
1673         {
1674         .field_bit_size = 1,
1675         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1676         },
1677         {
1678         .field_bit_size = 1,
1679         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1680         },
1681         {
1682         .field_bit_size = 1,
1683         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1684         },
1685         {
1686         .field_bit_size = 1,
1687         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1688         .result_operand = {
1689                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
1690                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
1691                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
1692                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
1693                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
1694                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
1695                 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
1696                 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
1697                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1698         },
1699         {
1700         .field_bit_size = 8,
1701         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1702         },
1703         {
1704         .field_bit_size = 1,
1705         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1706         },
1707         {
1708         .field_bit_size = 1,
1709         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1710         },
1711         {
1712         .field_bit_size = 11,
1713         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1714         .result_operand = {
1715                 (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
1716                 BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
1717                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1718                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1719         },
1720         {
1721         .field_bit_size = 10,
1722         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1723         },
1724         {
1725         .field_bit_size = 16,
1726         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1727         },
1728         {
1729         .field_bit_size = 10,
1730         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1731         },
1732         {
1733         .field_bit_size = 16,
1734         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1735         },
1736         {
1737         .field_bit_size = 10,
1738         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1739         },
1740         {
1741         .field_bit_size = 1,
1742         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1743         },
1744         {
1745         .field_bit_size = 1,
1746         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1747         },
1748         {
1749         .field_bit_size = 1,
1750         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
1751         .result_operand = {
1752                 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
1753                 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
1754                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1755                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1756         },
1757         {
1758         .field_bit_size = 1,
1759         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
1760         .result_operand = {
1761                 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
1762                 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
1763                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1764                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1765         },
1766         {
1767         .field_bit_size = 4,
1768         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1769         },
1770         {
1771         .field_bit_size = 12,
1772         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
1773         .result_operand = {
1774                 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
1775                 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
1776                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1777                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1778         },
1779         {
1780         .field_bit_size = 1,
1781         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1782         },
1783         {
1784         .field_bit_size = 1,
1785         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1786         },
1787         {
1788         .field_bit_size = 2,
1789         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1790         },
1791         {
1792         .field_bit_size = 1,
1793         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
1794         .result_operand = {
1795                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
1796                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
1797                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
1798                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
1799                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
1800                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
1801                 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
1802                 (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
1803                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1804         },
1805         {
1806         .field_bit_size = 1,
1807         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1808         },
1809         {
1810         .field_bit_size = 1,
1811         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1812         }
1813 };