net/bnxt: add index opcode and operand to mapper table
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_template_db_class.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 uint16_t ulp_class_sig_tbl[BNXT_ULP_CLASS_SIG_TBL_MAX_SZ] = {
12         [BNXT_ULP_CLASS_HID_0080] = 1,
13         [BNXT_ULP_CLASS_HID_0000] = 2,
14         [BNXT_ULP_CLASS_HID_0087] = 3
15 };
16
17 struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
18         [1] = {
19         .class_hid = BNXT_ULP_CLASS_HID_0080,
20         .hdr_sig = { .bits =
21                 BNXT_ULP_HDR_BIT_O_ETH |
22                 BNXT_ULP_HDR_BIT_O_IPV4 |
23                 BNXT_ULP_HDR_BIT_O_UDP |
24                 BNXT_ULP_FLOW_DIR_BITMASK_ING },
25         .field_sig = { .bits =
26                 BNXT_ULP_HF0_BITMASK_O_IPV4_SRC_ADDR |
27                 BNXT_ULP_HF0_BITMASK_O_IPV4_DST_ADDR |
28                 BNXT_ULP_HF0_BITMASK_O_UDP_SRC_PORT |
29                 BNXT_ULP_HF0_BITMASK_O_UDP_DST_PORT |
30                 BNXT_ULP_MATCH_TYPE_BITMASK_EM },
31         .class_tid = 0,
32         .act_vnic = 0,
33         .wc_pri = 0
34         },
35         [2] = {
36         .class_hid = BNXT_ULP_CLASS_HID_0000,
37         .hdr_sig = { .bits =
38                 BNXT_ULP_HDR_BIT_O_ETH |
39                 BNXT_ULP_HDR_BIT_O_IPV4 |
40                 BNXT_ULP_HDR_BIT_O_UDP |
41                 BNXT_ULP_FLOW_DIR_BITMASK_EGR },
42         .field_sig = { .bits =
43                 BNXT_ULP_HF1_BITMASK_O_IPV4_SRC_ADDR |
44                 BNXT_ULP_HF1_BITMASK_O_IPV4_DST_ADDR |
45                 BNXT_ULP_HF1_BITMASK_O_UDP_SRC_PORT |
46                 BNXT_ULP_HF1_BITMASK_O_UDP_DST_PORT |
47                 BNXT_ULP_MATCH_TYPE_BITMASK_EM },
48         .class_tid = 1,
49         .act_vnic = 0,
50         .wc_pri = 0
51         },
52         [3] = {
53         .class_hid = BNXT_ULP_CLASS_HID_0087,
54         .hdr_sig = { .bits =
55                 BNXT_ULP_HDR_BIT_O_ETH |
56                 BNXT_ULP_HDR_BIT_O_IPV4 |
57                 BNXT_ULP_HDR_BIT_O_UDP |
58                 BNXT_ULP_HDR_BIT_T_VXLAN |
59                 BNXT_ULP_HDR_BIT_I_ETH |
60                 BNXT_ULP_HDR_BIT_I_IPV4 |
61                 BNXT_ULP_HDR_BIT_I_UDP |
62                 BNXT_ULP_FLOW_DIR_BITMASK_ING },
63         .field_sig = { .bits =
64                 BNXT_ULP_HF2_BITMASK_I_IPV4_SRC_ADDR |
65                 BNXT_ULP_HF2_BITMASK_I_IPV4_DST_ADDR |
66                 BNXT_ULP_HF2_BITMASK_I_UDP_SRC_PORT |
67                 BNXT_ULP_HF2_BITMASK_I_UDP_DST_PORT |
68                 BNXT_ULP_MATCH_TYPE_BITMASK_EM },
69         .class_tid = 2,
70         .act_vnic = 0,
71         .wc_pri = 0
72         }
73 };
74
75 struct bnxt_ulp_mapper_tbl_list_info ulp_class_tmpl_list[] = {
76         [((0 << BNXT_ULP_LOG2_MAX_NUM_DEV) |
77                 BNXT_ULP_DEVICE_ID_WH_PLUS)] = {
78         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
79         .num_tbls = 5,
80         .start_tbl_idx = 0
81         },
82         [((1 << BNXT_ULP_LOG2_MAX_NUM_DEV) |
83                 BNXT_ULP_DEVICE_ID_WH_PLUS)] = {
84         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
85         .num_tbls = 5,
86         .start_tbl_idx = 5
87         },
88         [((2 << BNXT_ULP_LOG2_MAX_NUM_DEV) |
89                 BNXT_ULP_DEVICE_ID_WH_PLUS)] = {
90         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
91         .num_tbls = 5,
92         .start_tbl_idx = 10
93         }
94 };
95
96 struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = {
97         {
98         .resource_func = BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE,
99         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM,
100         .resource_sub_type =
101                 BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
102         .direction = TF_DIR_RX,
103         .priority = BNXT_ULP_PRIORITY_NOT_USED,
104         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
105         .key_start_idx = 0,
106         .blob_key_bit_size = 12,
107         .key_bit_size = 12,
108         .key_num_fields = 2,
109         .result_start_idx = 0,
110         .result_bit_size = 10,
111         .result_num_fields = 1,
112         .encap_num_fields = 0,
113         .ident_start_idx = 0,
114         .ident_nums = 1,
115         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
116         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
117         },
118         {
119         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
120         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM,
121         .resource_sub_type =
122                 BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED,
123         .direction = TF_DIR_RX,
124         .priority = BNXT_ULP_PRIORITY_LEVEL_0,
125         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
126         .key_start_idx = 2,
127         .blob_key_bit_size = 167,
128         .key_bit_size = 167,
129         .key_num_fields = 13,
130         .result_start_idx = 1,
131         .result_bit_size = 64,
132         .result_num_fields = 13,
133         .encap_num_fields = 0,
134         .ident_start_idx = 1,
135         .ident_nums = 0,
136         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
137         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
138         },
139         {
140         .resource_func = BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE,
141         .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
142         .resource_sub_type =
143                 BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
144         .direction = TF_DIR_RX,
145         .priority = BNXT_ULP_PRIORITY_NOT_USED,
146         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
147         .key_start_idx = 15,
148         .blob_key_bit_size = 16,
149         .key_bit_size = 16,
150         .key_num_fields = 3,
151         .result_start_idx = 14,
152         .result_bit_size = 10,
153         .result_num_fields = 1,
154         .encap_num_fields = 0,
155         .ident_start_idx = 1,
156         .ident_nums = 1,
157         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
158         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
159         },
160         {
161         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
162         .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
163         .resource_sub_type =
164                 BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED,
165         .direction = TF_DIR_RX,
166         .priority = BNXT_ULP_PRIORITY_LEVEL_0,
167         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
168         .key_start_idx = 18,
169         .blob_key_bit_size = 81,
170         .key_bit_size = 81,
171         .key_num_fields = 42,
172         .result_start_idx = 15,
173         .result_bit_size = 38,
174         .result_num_fields = 8,
175         .encap_num_fields = 0,
176         .ident_start_idx = 2,
177         .ident_nums = 0,
178         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
179         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
180         },
181         {
182         .resource_func = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
183         .resource_type = TF_MEM_EXTERNAL,
184         .resource_sub_type =
185                 BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED,
186         .direction = TF_DIR_RX,
187         .priority = BNXT_ULP_PRIORITY_NOT_USED,
188         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
189         .key_start_idx = 60,
190         .blob_key_bit_size = 448,
191         .key_bit_size = 448,
192         .key_num_fields = 11,
193         .result_start_idx = 23,
194         .result_bit_size = 64,
195         .result_num_fields = 9,
196         .encap_num_fields = 0,
197         .ident_start_idx = 2,
198         .ident_nums = 0,
199         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
200         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
201         },
202         {
203         .resource_func = BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE,
204         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM,
205         .resource_sub_type =
206                 BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
207         .direction = TF_DIR_TX,
208         .priority = BNXT_ULP_PRIORITY_NOT_USED,
209         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
210         .key_start_idx = 71,
211         .blob_key_bit_size = 12,
212         .key_bit_size = 12,
213         .key_num_fields = 2,
214         .result_start_idx = 32,
215         .result_bit_size = 10,
216         .result_num_fields = 1,
217         .encap_num_fields = 0,
218         .ident_start_idx = 2,
219         .ident_nums = 1,
220         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
221         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
222         },
223         {
224         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
225         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM,
226         .resource_sub_type =
227                 BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED,
228         .direction = TF_DIR_TX,
229         .priority = BNXT_ULP_PRIORITY_LEVEL_0,
230         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
231         .key_start_idx = 73,
232         .blob_key_bit_size = 167,
233         .key_bit_size = 167,
234         .key_num_fields = 13,
235         .result_start_idx = 33,
236         .result_bit_size = 64,
237         .result_num_fields = 13,
238         .encap_num_fields = 0,
239         .ident_start_idx = 3,
240         .ident_nums = 0,
241         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
242         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
243         },
244         {
245         .resource_func = BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE,
246         .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
247         .resource_sub_type =
248                 BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
249         .direction = TF_DIR_TX,
250         .priority = BNXT_ULP_PRIORITY_NOT_USED,
251         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
252         .key_start_idx = 86,
253         .blob_key_bit_size = 16,
254         .key_bit_size = 16,
255         .key_num_fields = 3,
256         .result_start_idx = 46,
257         .result_bit_size = 10,
258         .result_num_fields = 1,
259         .encap_num_fields = 0,
260         .ident_start_idx = 3,
261         .ident_nums = 1,
262         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
263         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
264         },
265         {
266         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
267         .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
268         .resource_sub_type =
269                 BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED,
270         .direction = TF_DIR_TX,
271         .priority = BNXT_ULP_PRIORITY_LEVEL_0,
272         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
273         .key_start_idx = 89,
274         .blob_key_bit_size = 81,
275         .key_bit_size = 81,
276         .key_num_fields = 42,
277         .result_start_idx = 47,
278         .result_bit_size = 38,
279         .result_num_fields = 8,
280         .encap_num_fields = 0,
281         .ident_start_idx = 4,
282         .ident_nums = 0,
283         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
284         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
285         },
286         {
287         .resource_func = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
288         .resource_type = TF_MEM_EXTERNAL,
289         .resource_sub_type =
290                 BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED,
291         .direction = TF_DIR_TX,
292         .priority = BNXT_ULP_PRIORITY_NOT_USED,
293         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
294         .key_start_idx = 131,
295         .blob_key_bit_size = 448,
296         .key_bit_size = 448,
297         .key_num_fields = 11,
298         .result_start_idx = 55,
299         .result_bit_size = 64,
300         .result_num_fields = 9,
301         .encap_num_fields = 0,
302         .ident_start_idx = 4,
303         .ident_nums = 0,
304         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
305         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
306         },
307         {
308         .resource_func = BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE,
309         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM,
310         .resource_sub_type =
311                 BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
312         .direction = TF_DIR_RX,
313         .priority = BNXT_ULP_PRIORITY_NOT_USED,
314         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
315         .key_start_idx = 142,
316         .blob_key_bit_size = 12,
317         .key_bit_size = 12,
318         .key_num_fields = 2,
319         .result_start_idx = 64,
320         .result_bit_size = 10,
321         .result_num_fields = 1,
322         .encap_num_fields = 0,
323         .ident_start_idx = 4,
324         .ident_nums = 1,
325         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
326         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
327         },
328         {
329         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
330         .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM,
331         .resource_sub_type =
332                 BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED,
333         .direction = TF_DIR_RX,
334         .priority = BNXT_ULP_PRIORITY_LEVEL_0,
335         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
336         .key_start_idx = 144,
337         .blob_key_bit_size = 167,
338         .key_bit_size = 167,
339         .key_num_fields = 13,
340         .result_start_idx = 65,
341         .result_bit_size = 64,
342         .result_num_fields = 13,
343         .encap_num_fields = 0,
344         .ident_start_idx = 5,
345         .ident_nums = 0,
346         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
347         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
348         },
349         {
350         .resource_func = BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE,
351         .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
352         .resource_sub_type =
353                 BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
354         .direction = TF_DIR_RX,
355         .priority = BNXT_ULP_PRIORITY_NOT_USED,
356         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
357         .key_start_idx = 157,
358         .blob_key_bit_size = 16,
359         .key_bit_size = 16,
360         .key_num_fields = 3,
361         .result_start_idx = 78,
362         .result_bit_size = 10,
363         .result_num_fields = 1,
364         .encap_num_fields = 0,
365         .ident_start_idx = 5,
366         .ident_nums = 1,
367         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
368         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
369         },
370         {
371         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
372         .resource_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
373         .resource_sub_type =
374                 BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED,
375         .direction = TF_DIR_RX,
376         .priority = BNXT_ULP_PRIORITY_LEVEL_0,
377         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
378         .key_start_idx = 160,
379         .blob_key_bit_size = 81,
380         .key_bit_size = 81,
381         .key_num_fields = 42,
382         .result_start_idx = 79,
383         .result_bit_size = 38,
384         .result_num_fields = 8,
385         .encap_num_fields = 0,
386         .ident_start_idx = 6,
387         .ident_nums = 0,
388         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
389         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
390         },
391         {
392         .resource_func = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
393         .resource_type = TF_MEM_EXTERNAL,
394         .resource_sub_type =
395                 BNXT_ULP_RESOURCE_SUB_TYPE_NOT_USED,
396         .direction = TF_DIR_RX,
397         .priority = BNXT_ULP_PRIORITY_NOT_USED,
398         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
399         .key_start_idx = 202,
400         .blob_key_bit_size = 448,
401         .key_bit_size = 448,
402         .key_num_fields = 11,
403         .result_start_idx = 87,
404         .result_bit_size = 64,
405         .result_num_fields = 9,
406         .encap_num_fields = 0,
407         .ident_start_idx = 6,
408         .ident_nums = 0,
409         .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
410         .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
411         }
412 };
413
414 struct bnxt_ulp_mapper_class_key_field_info ulp_class_key_field_list[] = {
415         {
416         .field_bit_size = 8,
417         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
418         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
419         .spec_operand = {
420                 (BNXT_ULP_HF0_IDX_SVIF_INDEX >> 8) & 0xff,
421                 BNXT_ULP_HF0_IDX_SVIF_INDEX & 0xff,
422                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
423                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
424         },
425         {
426         .field_bit_size = 4,
427         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
428         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
429         .spec_operand = {
430                 BNXT_ULP_SYM_TUN_HDR_TYPE_NONE,
431                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
432                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
433         },
434         {
435         .field_bit_size = 12,
436         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
437         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
438         },
439         {
440         .field_bit_size = 12,
441         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
442         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
443         },
444         {
445         .field_bit_size = 48,
446         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
447         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
448         },
449         {
450         .field_bit_size = 8,
451         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
452         .mask_operand = {
453                 (BNXT_ULP_HF0_IDX_SVIF_INDEX >> 8) & 0xff,
454                 BNXT_ULP_HF0_IDX_SVIF_INDEX & 0xff,
455                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
456                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
457         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
458         .spec_operand = {
459                 (BNXT_ULP_HF0_IDX_SVIF_INDEX >> 8) & 0xff,
460                 BNXT_ULP_HF0_IDX_SVIF_INDEX & 0xff,
461                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
462                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
463         },
464         {
465         .field_bit_size = 4,
466         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
467         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
468         },
469         {
470         .field_bit_size = 12,
471         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
472         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
473         },
474         {
475         .field_bit_size = 12,
476         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
477         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
478         },
479         {
480         .field_bit_size = 48,
481         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
482         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
483         },
484         {
485         .field_bit_size = 2,
486         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
487         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
488         },
489         {
490         .field_bit_size = 2,
491         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
492         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
493         },
494         {
495         .field_bit_size = 4,
496         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
497         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
498                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
499         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
500         .spec_operand = {
501                 BNXT_ULP_SYM_TUN_HDR_TYPE_NONE,
502                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
503                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
504         },
505         {
506         .field_bit_size = 2,
507         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
508         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
509         },
510         {
511         .field_bit_size = 1,
512         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
513         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
514                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
515         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
516         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
517                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
518         },
519         {
520         .field_bit_size = 1,
521         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
522         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
523         },
524         {
525         .field_bit_size = 7,
526         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
527         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
528         .spec_operand = {
529                 (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
530                 BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
531                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
532                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
533         },
534         {
535         .field_bit_size = 8,
536         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
537         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
538         .spec_operand = {
539                 (BNXT_ULP_REGFILE_INDEX_CLASS_TID >> 8) & 0xff,
540                 BNXT_ULP_REGFILE_INDEX_CLASS_TID & 0xff,
541                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
542                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
543         },
544         {
545         .field_bit_size = 1,
546         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
547         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
548         },
549         {
550         .field_bit_size = 4,
551         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
552         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
553                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
554         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
555         .spec_operand = {
556                 BNXT_ULP_SYM_L4_HDR_TYPE_UDP,
557                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
558                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
559         },
560         {
561         .field_bit_size = 1,
562         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
563         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
564                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
565         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
566         },
567         {
568         .field_bit_size = 1,
569         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
570         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
571                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
572         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
573         .spec_operand = {
574                 BNXT_ULP_SYM_L4_HDR_VALID_YES,
575                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
576                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
577         },
578         {
579         .field_bit_size = 1,
580         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
581         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
582         },
583         {
584         .field_bit_size = 1,
585         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
586         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
587         },
588         {
589         .field_bit_size = 1,
590         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
591         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
592         },
593         {
594         .field_bit_size = 4,
595         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
596         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
597                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
598         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
599         },
600         {
601         .field_bit_size = 1,
602         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
603         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
604                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
605         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
606         },
607         {
608         .field_bit_size = 1,
609         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
610         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
611                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
612         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
613         .spec_operand = {
614                 BNXT_ULP_SYM_L3_HDR_VALID_YES,
615                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
616                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
617         },
618         {
619         .field_bit_size = 1,
620         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
621         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
622         },
623         {
624         .field_bit_size = 1,
625         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
626         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
627         },
628         {
629         .field_bit_size = 2,
630         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
631         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
632                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
633         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
634         },
635         {
636         .field_bit_size = 2,
637         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
638         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
639                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
640         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
641         },
642         {
643         .field_bit_size = 1,
644         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
645         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
646                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
647         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
648         },
649         {
650         .field_bit_size = 1,
651         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
652         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
653                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
654         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
655         .spec_operand = {
656                 BNXT_ULP_SYM_L2_HDR_VALID_YES,
657                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
658                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
659         },
660         {
661         .field_bit_size = 3,
662         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
663         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
664         },
665         {
666         .field_bit_size = 4,
667         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
668         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
669         },
670         {
671         .field_bit_size = 1,
672         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
673         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
674         },
675         {
676         .field_bit_size = 1,
677         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
678         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
679         },
680         {
681         .field_bit_size = 1,
682         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
683         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
684         },
685         {
686         .field_bit_size = 4,
687         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
688         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
689         },
690         {
691         .field_bit_size = 1,
692         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
693         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
694         },
695         {
696         .field_bit_size = 1,
697         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
698         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
699         },
700         {
701         .field_bit_size = 1,
702         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
703         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
704         },
705         {
706         .field_bit_size = 1,
707         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
708         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
709         },
710         {
711         .field_bit_size = 1,
712         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
713         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
714         },
715         {
716         .field_bit_size = 4,
717         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
718         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
719         },
720         {
721         .field_bit_size = 1,
722         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
723         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
724         },
725         {
726         .field_bit_size = 1,
727         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
728         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
729         },
730         {
731         .field_bit_size = 1,
732         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
733         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
734         },
735         {
736         .field_bit_size = 1,
737         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
738         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
739         },
740         {
741         .field_bit_size = 2,
742         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
743         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
744         },
745         {
746         .field_bit_size = 2,
747         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
748         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
749         },
750         {
751         .field_bit_size = 1,
752         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
753         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
754         },
755         {
756         .field_bit_size = 1,
757         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
758         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
759         },
760         {
761         .field_bit_size = 9,
762         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
763         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
764         },
765         {
766         .field_bit_size = 7,
767         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
768         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
769                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
770         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
771         .spec_operand = {
772                 (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
773                 BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
774                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
775                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
776         },
777         {
778         .field_bit_size = 1,
779         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
780         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
781         },
782         {
783         .field_bit_size = 2,
784         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
785         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
786                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
787         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
788         },
789         {
790         .field_bit_size = 4,
791         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
792         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
793                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
794         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
795         },
796         {
797         .field_bit_size = 1,
798         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
799         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
800                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
801         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
802         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
803                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
804         },
805         {
806         .field_bit_size = 251,
807         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
808         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
809         },
810         {
811         .field_bit_size = 3,
812         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
813         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
814         },
815         {
816         .field_bit_size = 16,
817         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
818         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
819         .spec_operand = {
820                 (BNXT_ULP_HF0_IDX_O_UDP_DST_PORT >> 8) & 0xff,
821                 BNXT_ULP_HF0_IDX_O_UDP_DST_PORT & 0xff,
822                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
823                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
824         },
825         {
826         .field_bit_size = 16,
827         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
828         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
829         .spec_operand = {
830                 (BNXT_ULP_HF0_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
831                 BNXT_ULP_HF0_IDX_O_UDP_SRC_PORT & 0xff,
832                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
833                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
834         },
835         {
836         .field_bit_size = 8,
837         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
838         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
839         .spec_operand = {
840                 BNXT_ULP_SYM_IP_PROTO_UDP,
841                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
842                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
843         },
844         {
845         .field_bit_size = 32,
846         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
847         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
848         .spec_operand = {
849                 (BNXT_ULP_HF0_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
850                 BNXT_ULP_HF0_IDX_O_IPV4_DST_ADDR & 0xff,
851                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
852                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
853         },
854         {
855         .field_bit_size = 32,
856         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
857         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
858         .spec_operand = {
859                 (BNXT_ULP_HF0_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
860                 BNXT_ULP_HF0_IDX_O_IPV4_SRC_ADDR & 0xff,
861                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
862                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
863         },
864         {
865         .field_bit_size = 48,
866         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
867         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
868         },
869         {
870         .field_bit_size = 24,
871         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
872         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
873         },
874         {
875         .field_bit_size = 10,
876         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
877         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
878         .spec_operand = {
879                 (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
880                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
881                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
882                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
883         },
884         {
885         .field_bit_size = 8,
886         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
887         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
888         .spec_operand = {
889                 (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
890                 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
891                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
892                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
893         },
894         {
895         .field_bit_size = 8,
896         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
897         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
898         .spec_operand = {
899                 (BNXT_ULP_HF1_IDX_SVIF_INDEX >> 8) & 0xff,
900                 BNXT_ULP_HF1_IDX_SVIF_INDEX & 0xff,
901                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
902                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
903         },
904         {
905         .field_bit_size = 4,
906         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
907         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
908         .spec_operand = {
909                 BNXT_ULP_SYM_TUN_HDR_TYPE_NONE,
910                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
911                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
912         },
913         {
914         .field_bit_size = 12,
915         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
916         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
917         },
918         {
919         .field_bit_size = 12,
920         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
921         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
922         },
923         {
924         .field_bit_size = 48,
925         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
926         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
927         },
928         {
929         .field_bit_size = 8,
930         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
931         .mask_operand = {
932                 (BNXT_ULP_HF1_IDX_SVIF_INDEX >> 8) & 0xff,
933                 BNXT_ULP_HF1_IDX_SVIF_INDEX & 0xff,
934                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
935                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
936         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
937         .spec_operand = {
938                 (BNXT_ULP_HF1_IDX_SVIF_INDEX >> 8) & 0xff,
939                 BNXT_ULP_HF1_IDX_SVIF_INDEX & 0xff,
940                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
941                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
942         },
943         {
944         .field_bit_size = 4,
945         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
946         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
947         },
948         {
949         .field_bit_size = 12,
950         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
951         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
952         },
953         {
954         .field_bit_size = 12,
955         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
956         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
957         },
958         {
959         .field_bit_size = 48,
960         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
961         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
962         },
963         {
964         .field_bit_size = 2,
965         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
966         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
967         },
968         {
969         .field_bit_size = 2,
970         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
971         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
972         },
973         {
974         .field_bit_size = 4,
975         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
976         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
977                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
978         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
979         .spec_operand = {
980                 BNXT_ULP_SYM_TUN_HDR_TYPE_NONE,
981                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
982                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
983         },
984         {
985         .field_bit_size = 2,
986         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
987         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
988         },
989         {
990         .field_bit_size = 1,
991         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
992         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
993                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
994         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
995         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
996                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
997         },
998         {
999         .field_bit_size = 1,
1000         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1001         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1002         },
1003         {
1004         .field_bit_size = 7,
1005         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1006         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
1007         .spec_operand = {
1008                 (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
1009                 BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
1010                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1011                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1012         },
1013         {
1014         .field_bit_size = 8,
1015         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1016         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1017         .spec_operand = {
1018                 (BNXT_ULP_REGFILE_INDEX_CLASS_TID >> 8) & 0xff,
1019                 BNXT_ULP_REGFILE_INDEX_CLASS_TID & 0xff,
1020                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1021                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1022         },
1023         {
1024         .field_bit_size = 1,
1025         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1026         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1027         },
1028         {
1029         .field_bit_size = 4,
1030         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1031         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1032                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1033         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1034         .spec_operand = {
1035                 BNXT_ULP_SYM_L4_HDR_TYPE_UDP,
1036                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1037                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1038         },
1039         {
1040         .field_bit_size = 1,
1041         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1042         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1043                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1044         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1045         },
1046         {
1047         .field_bit_size = 1,
1048         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1049         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1050                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1051         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1052         .spec_operand = {
1053                 BNXT_ULP_SYM_L4_HDR_VALID_YES,
1054                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1055                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1056         },
1057         {
1058         .field_bit_size = 1,
1059         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1060         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1061         },
1062         {
1063         .field_bit_size = 1,
1064         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1065         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1066         },
1067         {
1068         .field_bit_size = 1,
1069         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1070         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1071         },
1072         {
1073         .field_bit_size = 4,
1074         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1075         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1076                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1077         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1078         },
1079         {
1080         .field_bit_size = 1,
1081         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1082         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1083                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1084         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1085         },
1086         {
1087         .field_bit_size = 1,
1088         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1089         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1090                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1091         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1092         .spec_operand = {
1093                 BNXT_ULP_SYM_L3_HDR_VALID_YES,
1094                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1095                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1096         },
1097         {
1098         .field_bit_size = 1,
1099         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1100         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1101         },
1102         {
1103         .field_bit_size = 1,
1104         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1105         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1106         },
1107         {
1108         .field_bit_size = 2,
1109         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1110         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1111         },
1112         {
1113         .field_bit_size = 2,
1114         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1115         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1116                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1117         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1118         },
1119         {
1120         .field_bit_size = 1,
1121         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1122         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1123                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1124         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1125         },
1126         {
1127         .field_bit_size = 1,
1128         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1129         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1130                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1131         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1132         .spec_operand = {
1133                 BNXT_ULP_SYM_L2_HDR_VALID_YES,
1134                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1135                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1136         },
1137         {
1138         .field_bit_size = 3,
1139         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1140         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1141         },
1142         {
1143         .field_bit_size = 4,
1144         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1145         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1146         },
1147         {
1148         .field_bit_size = 1,
1149         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1150         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1151         },
1152         {
1153         .field_bit_size = 1,
1154         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1155         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1156         },
1157         {
1158         .field_bit_size = 1,
1159         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1160         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1161         },
1162         {
1163         .field_bit_size = 4,
1164         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1165         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1166         },
1167         {
1168         .field_bit_size = 1,
1169         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1170         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1171         },
1172         {
1173         .field_bit_size = 1,
1174         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1175         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1176         },
1177         {
1178         .field_bit_size = 1,
1179         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1180         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1181         },
1182         {
1183         .field_bit_size = 1,
1184         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1185         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1186         },
1187         {
1188         .field_bit_size = 1,
1189         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1190         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1191         },
1192         {
1193         .field_bit_size = 4,
1194         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1195         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1196         },
1197         {
1198         .field_bit_size = 1,
1199         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1200         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1201         },
1202         {
1203         .field_bit_size = 1,
1204         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1205         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1206         },
1207         {
1208         .field_bit_size = 1,
1209         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1210         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1211         },
1212         {
1213         .field_bit_size = 1,
1214         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1215         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1216         },
1217         {
1218         .field_bit_size = 2,
1219         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1220         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1221         },
1222         {
1223         .field_bit_size = 2,
1224         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1225         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1226         },
1227         {
1228         .field_bit_size = 1,
1229         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1230         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1231         },
1232         {
1233         .field_bit_size = 1,
1234         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1235         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1236         },
1237         {
1238         .field_bit_size = 9,
1239         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1240         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1241         },
1242         {
1243         .field_bit_size = 7,
1244         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1245         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1246                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1247         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
1248         .spec_operand = {
1249                 (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
1250                 BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
1251                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1252                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1253         },
1254         {
1255         .field_bit_size = 1,
1256         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1257         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1258         },
1259         {
1260         .field_bit_size = 2,
1261         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1262         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1263                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1264         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1265         },
1266         {
1267         .field_bit_size = 4,
1268         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1269         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1270                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1271         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1272         },
1273         {
1274         .field_bit_size = 1,
1275         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1276         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1277                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1278         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1279         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1280                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1281         },
1282         {
1283         .field_bit_size = 251,
1284         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1285         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1286         },
1287         {
1288         .field_bit_size = 3,
1289         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1290         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1291         },
1292         {
1293         .field_bit_size = 16,
1294         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1295         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1296         .spec_operand = {
1297                 (BNXT_ULP_HF1_IDX_O_UDP_DST_PORT >> 8) & 0xff,
1298                 BNXT_ULP_HF1_IDX_O_UDP_DST_PORT & 0xff,
1299                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1300                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1301         },
1302         {
1303         .field_bit_size = 16,
1304         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1305         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1306         .spec_operand = {
1307                 (BNXT_ULP_HF1_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
1308                 BNXT_ULP_HF1_IDX_O_UDP_SRC_PORT & 0xff,
1309                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1310                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1311         },
1312         {
1313         .field_bit_size = 8,
1314         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1315         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1316         .spec_operand = {
1317                 BNXT_ULP_SYM_IP_PROTO_UDP,
1318                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1319                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1320         },
1321         {
1322         .field_bit_size = 32,
1323         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1324         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1325         .spec_operand = {
1326                 (BNXT_ULP_HF1_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
1327                 BNXT_ULP_HF1_IDX_O_IPV4_DST_ADDR & 0xff,
1328                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1329                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1330         },
1331         {
1332         .field_bit_size = 32,
1333         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1334         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1335         .spec_operand = {
1336                 (BNXT_ULP_HF1_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
1337                 BNXT_ULP_HF1_IDX_O_IPV4_SRC_ADDR & 0xff,
1338                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1339                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1340         },
1341         {
1342         .field_bit_size = 48,
1343         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1344         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1345         },
1346         {
1347         .field_bit_size = 24,
1348         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1349         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1350         },
1351         {
1352         .field_bit_size = 10,
1353         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1354         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1355         .spec_operand = {
1356                 (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
1357                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
1358                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1359                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1360         },
1361         {
1362         .field_bit_size = 8,
1363         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1364         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1365         .spec_operand = {
1366                 (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
1367                 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
1368                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1369                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1370         },
1371         {
1372         .field_bit_size = 8,
1373         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1374         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1375         .spec_operand = {
1376                 (BNXT_ULP_HF2_IDX_SVIF_INDEX >> 8) & 0xff,
1377                 BNXT_ULP_HF2_IDX_SVIF_INDEX & 0xff,
1378                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1379                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1380         },
1381         {
1382         .field_bit_size = 4,
1383         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1384         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1385         .spec_operand = {
1386                 BNXT_ULP_SYM_TUN_HDR_TYPE_NONE,
1387                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1388                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1389         },
1390         {
1391         .field_bit_size = 12,
1392         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1393         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1394         },
1395         {
1396         .field_bit_size = 12,
1397         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1398         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1399         },
1400         {
1401         .field_bit_size = 48,
1402         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1403         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1404         },
1405         {
1406         .field_bit_size = 8,
1407         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1408         .mask_operand = {
1409                 (BNXT_ULP_HF2_IDX_SVIF_INDEX >> 8) & 0xff,
1410                 BNXT_ULP_HF2_IDX_SVIF_INDEX & 0xff,
1411                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1412                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1413         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1414         .spec_operand = {
1415                 (BNXT_ULP_HF2_IDX_SVIF_INDEX >> 8) & 0xff,
1416                 BNXT_ULP_HF2_IDX_SVIF_INDEX & 0xff,
1417                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1418                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1419         },
1420         {
1421         .field_bit_size = 4,
1422         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1423         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1424         },
1425         {
1426         .field_bit_size = 12,
1427         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1428         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1429         },
1430         {
1431         .field_bit_size = 12,
1432         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1433         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1434         },
1435         {
1436         .field_bit_size = 48,
1437         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1438         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1439         },
1440         {
1441         .field_bit_size = 2,
1442         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1443         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1444         },
1445         {
1446         .field_bit_size = 2,
1447         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1448         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1449         },
1450         {
1451         .field_bit_size = 4,
1452         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1453         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1454                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1455         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1456         },
1457         {
1458         .field_bit_size = 2,
1459         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1460         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1461         },
1462         {
1463         .field_bit_size = 1,
1464         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1465         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1466                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1467         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1468         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1469                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1470         },
1471         {
1472         .field_bit_size = 1,
1473         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1474         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1475         },
1476         {
1477         .field_bit_size = 7,
1478         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1479         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
1480         .spec_operand = {
1481                 (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
1482                 BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
1483                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1484                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1485         },
1486         {
1487         .field_bit_size = 8,
1488         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1489         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1490         .spec_operand = {
1491                 (BNXT_ULP_REGFILE_INDEX_CLASS_TID >> 8) & 0xff,
1492                 BNXT_ULP_REGFILE_INDEX_CLASS_TID & 0xff,
1493                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1494                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1495         },
1496         {
1497         .field_bit_size = 1,
1498         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1499         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1500         },
1501         {
1502         .field_bit_size = 4,
1503         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1504         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1505                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1506         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1507         .spec_operand = {
1508                 BNXT_ULP_SYM_L4_HDR_TYPE_UDP,
1509                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1510                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1511         },
1512         {
1513         .field_bit_size = 1,
1514         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1515         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1516                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1517         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1518         },
1519         {
1520         .field_bit_size = 1,
1521         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1522         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1523                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1524         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1525         .spec_operand = {
1526                 BNXT_ULP_SYM_L4_HDR_VALID_YES,
1527                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1528                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1529         },
1530         {
1531         .field_bit_size = 1,
1532         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1533         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1534         },
1535         {
1536         .field_bit_size = 1,
1537         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1538         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1539         },
1540         {
1541         .field_bit_size = 1,
1542         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1543         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1544         },
1545         {
1546         .field_bit_size = 4,
1547         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1548         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1549                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1550         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1551         },
1552         {
1553         .field_bit_size = 1,
1554         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1555         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1556                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1557         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1558         },
1559         {
1560         .field_bit_size = 1,
1561         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1562         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1563                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1564         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1565         .spec_operand = {
1566                 BNXT_ULP_SYM_L3_HDR_VALID_YES,
1567                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1568                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1569         },
1570         {
1571         .field_bit_size = 1,
1572         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1573         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1574         },
1575         {
1576         .field_bit_size = 1,
1577         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1578         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1579         },
1580         {
1581         .field_bit_size = 2,
1582         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1583         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1584         },
1585         {
1586         .field_bit_size = 2,
1587         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1588         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1589                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1590         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1591         },
1592         {
1593         .field_bit_size = 1,
1594         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1595         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1596                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1597         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1598         },
1599         {
1600         .field_bit_size = 1,
1601         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1602         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1603                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1604         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1605         .spec_operand = {
1606                 BNXT_ULP_SYM_L2_HDR_VALID_YES,
1607                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1608                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1609         },
1610         {
1611         .field_bit_size = 3,
1612         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1613         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1614         },
1615         {
1616         .field_bit_size = 4,
1617         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1618         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1619                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1620         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1621         },
1622         {
1623         .field_bit_size = 1,
1624         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1625         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1626                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1627         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1628         },
1629         {
1630         .field_bit_size = 1,
1631         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1632         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1633                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1634         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1635         .spec_operand = {
1636                 BNXT_ULP_SYM_TUN_HDR_VALID_YES,
1637                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1638                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1639         },
1640         {
1641         .field_bit_size = 1,
1642         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1643         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1644         },
1645         {
1646         .field_bit_size = 4,
1647         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1648         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1649                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1650         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1651         .spec_operand = {
1652                 BNXT_ULP_SYM_TL4_HDR_TYPE_UDP,
1653                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1654                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1655         },
1656         {
1657         .field_bit_size = 1,
1658         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1659         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1660                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1661         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1662         },
1663         {
1664         .field_bit_size = 1,
1665         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1666         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1667                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1668         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1669         .spec_operand = {
1670                 BNXT_ULP_SYM_TL4_HDR_VALID_YES,
1671                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1672                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1673         },
1674         {
1675         .field_bit_size = 1,
1676         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1677         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1678         },
1679         {
1680         .field_bit_size = 1,
1681         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1682         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1683         },
1684         {
1685         .field_bit_size = 1,
1686         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1687         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1688         },
1689         {
1690         .field_bit_size = 4,
1691         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1692         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1693                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1694         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1695         },
1696         {
1697         .field_bit_size = 1,
1698         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1699         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1700                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1701         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1702         },
1703         {
1704         .field_bit_size = 1,
1705         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1706         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1707                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1708         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1709         .spec_operand = {
1710                 BNXT_ULP_SYM_TL3_HDR_VALID_YES,
1711                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1712                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1713         },
1714         {
1715         .field_bit_size = 1,
1716         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1717         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1718         },
1719         {
1720         .field_bit_size = 1,
1721         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1722         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1723         },
1724         {
1725         .field_bit_size = 2,
1726         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1727         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1728                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1729         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1730         },
1731         {
1732         .field_bit_size = 2,
1733         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1734         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1735                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1736         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1737         },
1738         {
1739         .field_bit_size = 1,
1740         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1741         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1742                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1743         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1744         .spec_operand = {
1745                 BNXT_ULP_SYM_TL2_HDR_VALID_YES,
1746                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1747                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1748         },
1749         {
1750         .field_bit_size = 1,
1751         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1752         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1753         },
1754         {
1755         .field_bit_size = 9,
1756         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1757         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1758         },
1759         {
1760         .field_bit_size = 7,
1761         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1762         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1763                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1764         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
1765         .spec_operand = {
1766                 (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
1767                 BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
1768                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1769                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1770         },
1771         {
1772         .field_bit_size = 1,
1773         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1774         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1775         },
1776         {
1777         .field_bit_size = 2,
1778         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1779         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1780                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1781         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1782         },
1783         {
1784         .field_bit_size = 4,
1785         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1786         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1787                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1788         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1789         },
1790         {
1791         .field_bit_size = 1,
1792         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1793         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1794                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
1795         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1796         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1797                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1798         },
1799         {
1800         .field_bit_size = 251,
1801         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1802         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1803         },
1804         {
1805         .field_bit_size = 3,
1806         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1807         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1808         },
1809         {
1810         .field_bit_size = 16,
1811         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1812         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1813         .spec_operand = {
1814                 (BNXT_ULP_HF2_IDX_I_UDP_DST_PORT >> 8) & 0xff,
1815                 BNXT_ULP_HF2_IDX_I_UDP_DST_PORT & 0xff,
1816                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1817                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1818         },
1819         {
1820         .field_bit_size = 16,
1821         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1822         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1823         .spec_operand = {
1824                 (BNXT_ULP_HF2_IDX_I_UDP_SRC_PORT >> 8) & 0xff,
1825                 BNXT_ULP_HF2_IDX_I_UDP_SRC_PORT & 0xff,
1826                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1827                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1828         },
1829         {
1830         .field_bit_size = 8,
1831         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1832         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1833         .spec_operand = {
1834                 BNXT_ULP_SYM_IP_PROTO_UDP,
1835                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1836                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1837         },
1838         {
1839         .field_bit_size = 32,
1840         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1841         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1842         .spec_operand = {
1843                 (BNXT_ULP_HF2_IDX_I_IPV4_DST_ADDR >> 8) & 0xff,
1844                 BNXT_ULP_HF2_IDX_I_IPV4_DST_ADDR & 0xff,
1845                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1846                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1847         },
1848         {
1849         .field_bit_size = 32,
1850         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1851         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
1852         .spec_operand = {
1853                 (BNXT_ULP_HF2_IDX_I_IPV4_SRC_ADDR >> 8) & 0xff,
1854                 BNXT_ULP_HF2_IDX_I_IPV4_SRC_ADDR & 0xff,
1855                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1856                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1857         },
1858         {
1859         .field_bit_size = 48,
1860         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1861         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1862         },
1863         {
1864         .field_bit_size = 24,
1865         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1866         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1867         },
1868         {
1869         .field_bit_size = 10,
1870         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1871         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1872         .spec_operand = {
1873                 (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
1874                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
1875                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1876                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1877         },
1878         {
1879         .field_bit_size = 8,
1880         .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
1881         .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1882         .spec_operand = {
1883                 (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
1884                 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
1885                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1886                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1887         }
1888 };
1889
1890 struct bnxt_ulp_mapper_result_field_info ulp_class_result_field_list[] = {
1891         {
1892         .field_bit_size = 10,
1893         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1894         .result_operand = {
1895                 (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
1896                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
1897                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1898                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1899         },
1900         {
1901         .field_bit_size = 10,
1902         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1903         .result_operand = {
1904                 (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
1905                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
1906                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1907                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1908         },
1909         {
1910         .field_bit_size = 7,
1911         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
1912         .result_operand = {
1913                 (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
1914                 BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
1915                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1916                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1917         },
1918         {
1919         .field_bit_size = 1,
1920         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1921         },
1922         {
1923         .field_bit_size = 4,
1924         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1925         },
1926         {
1927         .field_bit_size = 8,
1928         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1929         },
1930         {
1931         .field_bit_size = 3,
1932         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1933         },
1934         {
1935         .field_bit_size = 6,
1936         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1937         },
1938         {
1939         .field_bit_size = 3,
1940         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1941         },
1942         {
1943         .field_bit_size = 1,
1944         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1945         },
1946         {
1947         .field_bit_size = 16,
1948         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1949         },
1950         {
1951         .field_bit_size = 1,
1952         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1953         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1954                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1955         },
1956         {
1957         .field_bit_size = 2,
1958         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1959         },
1960         {
1961         .field_bit_size = 2,
1962         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1963         },
1964         {
1965         .field_bit_size = 10,
1966         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
1967         .result_operand = {
1968                 (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
1969                 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
1970                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1971                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1972         },
1973         {
1974         .field_bit_size = 4,
1975         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1976         },
1977         {
1978         .field_bit_size = 8,
1979         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1980         },
1981         {
1982         .field_bit_size = 1,
1983         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
1984         },
1985         {
1986         .field_bit_size = 10,
1987         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1988         .result_operand = {
1989                 (0x00f9 >> 8) & 0xff,
1990                 0x00f9 & 0xff,
1991                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1992                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1993         },
1994         {
1995         .field_bit_size = 5,
1996         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
1997         .result_operand = {0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
1998                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1999         },
2000         {
2001         .field_bit_size = 8,
2002         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2003         .result_operand = {
2004                 (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
2005                 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
2006                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2007                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2008         },
2009         {
2010         .field_bit_size = 1,
2011         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2012         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2013                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2014         },
2015         {
2016         .field_bit_size = 1,
2017         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2018         },
2019         {
2020         .field_bit_size = 33,
2021         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2022         .result_operand = {
2023                 (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
2024                 BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
2025                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2026                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2027         },
2028         {
2029         .field_bit_size = 1,
2030         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2031         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2032                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2033         },
2034         {
2035         .field_bit_size = 1,
2036         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2037         },
2038         {
2039         .field_bit_size = 5,
2040         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2041         .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
2042                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2043         },
2044         {
2045         .field_bit_size = 9,
2046         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2047         .result_operand = {
2048                 (0x00c5 >> 8) & 0xff,
2049                 0x00c5 & 0xff,
2050                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2051                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2052         },
2053         {
2054         .field_bit_size = 11,
2055         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2056         },
2057         {
2058         .field_bit_size = 2,
2059         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2060         .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
2061                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2062         },
2063         {
2064         .field_bit_size = 1,
2065         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2066         },
2067         {
2068         .field_bit_size = 1,
2069         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2070         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2071                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2072         },
2073         {
2074         .field_bit_size = 10,
2075         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2076         .result_operand = {
2077                 (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
2078                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
2079                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2080                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2081         },
2082         {
2083         .field_bit_size = 10,
2084         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2085         .result_operand = {
2086                 (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
2087                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
2088                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2089                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2090         },
2091         {
2092         .field_bit_size = 7,
2093         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
2094         .result_operand = {
2095                 (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
2096                 BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
2097                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2098                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2099         },
2100         {
2101         .field_bit_size = 1,
2102         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2103         },
2104         {
2105         .field_bit_size = 4,
2106         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2107         },
2108         {
2109         .field_bit_size = 8,
2110         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2111         },
2112         {
2113         .field_bit_size = 3,
2114         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2115         },
2116         {
2117         .field_bit_size = 6,
2118         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2119         },
2120         {
2121         .field_bit_size = 3,
2122         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2123         },
2124         {
2125         .field_bit_size = 1,
2126         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2127         },
2128         {
2129         .field_bit_size = 16,
2130         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2131         },
2132         {
2133         .field_bit_size = 1,
2134         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2135         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2136                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2137         },
2138         {
2139         .field_bit_size = 2,
2140         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2141         },
2142         {
2143         .field_bit_size = 2,
2144         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2145         },
2146         {
2147         .field_bit_size = 10,
2148         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2149         .result_operand = {
2150                 (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
2151                 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
2152                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2153                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2154         },
2155         {
2156         .field_bit_size = 4,
2157         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2158         },
2159         {
2160         .field_bit_size = 8,
2161         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2162         },
2163         {
2164         .field_bit_size = 1,
2165         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2166         },
2167         {
2168         .field_bit_size = 10,
2169         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2170         .result_operand = {
2171                 (0x00f9 >> 8) & 0xff,
2172                 0x00f9 & 0xff,
2173                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2174                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2175         },
2176         {
2177         .field_bit_size = 5,
2178         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2179         .result_operand = {0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
2180                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2181         },
2182         {
2183         .field_bit_size = 8,
2184         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2185         .result_operand = {
2186                 (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
2187                 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
2188                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2189                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2190         },
2191         {
2192         .field_bit_size = 1,
2193         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2194         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2195                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2196         },
2197         {
2198         .field_bit_size = 1,
2199         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2200         },
2201         {
2202         .field_bit_size = 33,
2203         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2204         .result_operand = {
2205                 (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
2206                 BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
2207                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2208                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2209         },
2210         {
2211         .field_bit_size = 1,
2212         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2213         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2214                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2215         },
2216         {
2217         .field_bit_size = 1,
2218         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2219         },
2220         {
2221         .field_bit_size = 5,
2222         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2223         .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
2224                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2225         },
2226         {
2227         .field_bit_size = 9,
2228         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2229         .result_operand = {
2230                 (0x00c5 >> 8) & 0xff,
2231                 0x00c5 & 0xff,
2232                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2233                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2234         },
2235         {
2236         .field_bit_size = 11,
2237         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2238         },
2239         {
2240         .field_bit_size = 2,
2241         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2242         .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
2243                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2244         },
2245         {
2246         .field_bit_size = 1,
2247         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2248         },
2249         {
2250         .field_bit_size = 1,
2251         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2252         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2253                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2254         },
2255         {
2256         .field_bit_size = 10,
2257         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2258         .result_operand = {
2259                 (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
2260                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
2261                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2262                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2263         },
2264         {
2265         .field_bit_size = 10,
2266         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2267         .result_operand = {
2268                 (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
2269                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
2270                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2271                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2272         },
2273         {
2274         .field_bit_size = 7,
2275         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
2276         .result_operand = {
2277                 (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
2278                 BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
2279                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2280                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2281         },
2282         {
2283         .field_bit_size = 1,
2284         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2285         },
2286         {
2287         .field_bit_size = 4,
2288         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2289         },
2290         {
2291         .field_bit_size = 8,
2292         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2293         },
2294         {
2295         .field_bit_size = 3,
2296         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2297         },
2298         {
2299         .field_bit_size = 6,
2300         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2301         },
2302         {
2303         .field_bit_size = 3,
2304         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2305         },
2306         {
2307         .field_bit_size = 1,
2308         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2309         },
2310         {
2311         .field_bit_size = 16,
2312         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2313         },
2314         {
2315         .field_bit_size = 1,
2316         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2317         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2318                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2319         },
2320         {
2321         .field_bit_size = 2,
2322         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2323         },
2324         {
2325         .field_bit_size = 2,
2326         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2327         },
2328         {
2329         .field_bit_size = 10,
2330         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2331         .result_operand = {
2332                 (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
2333                 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
2334                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2335                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2336         },
2337         {
2338         .field_bit_size = 4,
2339         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2340         },
2341         {
2342         .field_bit_size = 8,
2343         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2344         },
2345         {
2346         .field_bit_size = 1,
2347         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2348         },
2349         {
2350         .field_bit_size = 10,
2351         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2352         .result_operand = {
2353                 (0x00f9 >> 8) & 0xff,
2354                 0x00f9 & 0xff,
2355                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2356                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2357         },
2358         {
2359         .field_bit_size = 5,
2360         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2361         .result_operand = {0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
2362                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2363         },
2364         {
2365         .field_bit_size = 8,
2366         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2367         .result_operand = {
2368                 (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
2369                 BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
2370                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2371                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2372         },
2373         {
2374         .field_bit_size = 1,
2375         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2376         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2377                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2378         },
2379         {
2380         .field_bit_size = 1,
2381         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2382         },
2383         {
2384         .field_bit_size = 33,
2385         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
2386         .result_operand = {
2387                 (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
2388                 BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
2389                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2390                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2391         },
2392         {
2393         .field_bit_size = 1,
2394         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2395         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2396                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2397         },
2398         {
2399         .field_bit_size = 1,
2400         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2401         },
2402         {
2403         .field_bit_size = 5,
2404         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2405         .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
2406                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2407         },
2408         {
2409         .field_bit_size = 9,
2410         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2411         .result_operand = {
2412                 (0x00c5 >> 8) & 0xff,
2413                 0x00c5 & 0xff,
2414                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2415                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2416         },
2417         {
2418         .field_bit_size = 11,
2419         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2420         },
2421         {
2422         .field_bit_size = 2,
2423         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2424         .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
2425                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2426         },
2427         {
2428         .field_bit_size = 1,
2429         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
2430         },
2431         {
2432         .field_bit_size = 1,
2433         .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
2434         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
2435                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2436         }
2437 };
2438
2439 struct bnxt_ulp_mapper_ident_info ulp_ident_list[] = {
2440         {
2441         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2442         .ident_type = TF_IDENT_TYPE_L2_CTXT,
2443         .regfile_idx = BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0,
2444         .ident_bit_size = 10,
2445         .ident_bit_pos = 0
2446         },
2447         {
2448         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2449         .ident_type = TF_IDENT_TYPE_EM_PROF,
2450         .regfile_idx = BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0,
2451         .ident_bit_size = 10,
2452         .ident_bit_pos = 0
2453         },
2454         {
2455         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2456         .ident_type = TF_IDENT_TYPE_L2_CTXT,
2457         .regfile_idx = BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0,
2458         .ident_bit_size = 10,
2459         .ident_bit_pos = 0
2460         },
2461         {
2462         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2463         .ident_type = TF_IDENT_TYPE_EM_PROF,
2464         .regfile_idx = BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0,
2465         .ident_bit_size = 10,
2466         .ident_bit_pos = 0
2467         },
2468         {
2469         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2470         .ident_type = TF_IDENT_TYPE_L2_CTXT,
2471         .regfile_idx = BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0,
2472         .ident_bit_size = 10,
2473         .ident_bit_pos = 0
2474         },
2475         {
2476         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
2477         .ident_type = TF_IDENT_TYPE_EM_PROF,
2478         .regfile_idx = BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0,
2479         .ident_bit_size = 10,
2480         .ident_bit_pos = 0
2481         }
2482 };