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