net/bnxt: support flow API item parsing
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_template_db.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2019 Broadcom
3  * All rights reserved.
4  */
5
6 /*
7  * date: Mon Mar  9 02:37:53 2020
8  * version: 0.0
9  */
10
11 #include "ulp_template_db.h"
12 #include "ulp_template_field_db.h"
13 #include "ulp_template_struct.h"
14 #include "ulp_rte_parser.h"
15
16 uint32_t ulp_act_prop_map_table[] = {
17         [BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ] =
18                 BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN_SZ,
19         [BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ] =
20                 BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SZ,
21         [BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ] =
22                 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_SZ,
23         [BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE] =
24                 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_TYPE,
25         [BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_NUM] =
26                 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_NUM,
27         [BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE] =
28                 BNXT_ULP_ACT_PROP_SZ_ENCAP_L3_TYPE,
29         [BNXT_ULP_ACT_PROP_IDX_MPLS_POP_NUM] =
30                 BNXT_ULP_ACT_PROP_SZ_MPLS_POP_NUM,
31         [BNXT_ULP_ACT_PROP_IDX_MPLS_PUSH_NUM] =
32                 BNXT_ULP_ACT_PROP_SZ_MPLS_PUSH_NUM,
33         [BNXT_ULP_ACT_PROP_IDX_VNIC] =
34                 BNXT_ULP_ACT_PROP_SZ_VNIC,
35         [BNXT_ULP_ACT_PROP_IDX_VPORT] =
36                 BNXT_ULP_ACT_PROP_SZ_VPORT,
37         [BNXT_ULP_ACT_PROP_IDX_MARK] =
38                 BNXT_ULP_ACT_PROP_SZ_MARK,
39         [BNXT_ULP_ACT_PROP_IDX_COUNT] =
40                 BNXT_ULP_ACT_PROP_SZ_COUNT,
41         [BNXT_ULP_ACT_PROP_IDX_METER] =
42                 BNXT_ULP_ACT_PROP_SZ_METER,
43         [BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC] =
44                 BNXT_ULP_ACT_PROP_SZ_SET_MAC_SRC,
45         [BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST] =
46                 BNXT_ULP_ACT_PROP_SZ_SET_MAC_DST,
47         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_VLAN] =
48                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_VLAN,
49         [BNXT_ULP_ACT_PROP_IDX_OF_SET_VLAN_PCP] =
50                 BNXT_ULP_ACT_PROP_SZ_OF_SET_VLAN_PCP,
51         [BNXT_ULP_ACT_PROP_IDX_OF_SET_VLAN_VID] =
52                 BNXT_ULP_ACT_PROP_SZ_OF_SET_VLAN_VID,
53         [BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC] =
54                 BNXT_ULP_ACT_PROP_SZ_SET_IPV4_SRC,
55         [BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST] =
56                 BNXT_ULP_ACT_PROP_SZ_SET_IPV4_DST,
57         [BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC] =
58                 BNXT_ULP_ACT_PROP_SZ_SET_IPV6_SRC,
59         [BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST] =
60                 BNXT_ULP_ACT_PROP_SZ_SET_IPV6_DST,
61         [BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC] =
62                 BNXT_ULP_ACT_PROP_SZ_SET_TP_SRC,
63         [BNXT_ULP_ACT_PROP_IDX_SET_TP_DST] =
64                 BNXT_ULP_ACT_PROP_SZ_SET_TP_DST,
65         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_0] =
66                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_0,
67         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_1] =
68                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_1,
69         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_2] =
70                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_2,
71         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_3] =
72                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_3,
73         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_4] =
74                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_4,
75         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_5] =
76                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_5,
77         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_6] =
78                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_6,
79         [BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_7] =
80                 BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_7,
81         [BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC] =
82                 BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_DMAC,
83         [BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC] =
84                 BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_SMAC,
85         [BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG] =
86                 BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG,
87         [BNXT_ULP_ACT_PROP_IDX_ENCAP_IP] =
88                 BNXT_ULP_ACT_PROP_SZ_ENCAP_IP,
89         [BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC] =
90                 BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SRC,
91         [BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP] =
92                 BNXT_ULP_ACT_PROP_SZ_ENCAP_UDP,
93         [BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN] =
94                 BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN,
95         [BNXT_ULP_ACT_PROP_IDX_LAST] =
96                 BNXT_ULP_ACT_PROP_SZ_LAST
97 };
98
99 struct bnxt_ulp_device_params ulp_device_params[] = {
100         [BNXT_ULP_DEVICE_ID_WH_PLUS] = {
101                 .global_fid_enable       = BNXT_ULP_SYM_YES,
102                 .byte_order              = (enum bnxt_ulp_byte_order)
103                                                 BNXT_ULP_SYM_LITTLE_ENDIAN,
104                 .encap_byte_swap         = 1,
105                 .lfid_entries            = 16384,
106                 .lfid_entry_size         = 4,
107                 .gfid_entries            = 65536,
108                 .gfid_entry_size         = 4,
109                 .num_flows               = 32768,
110                 .num_resources_per_flow  = 8
111         }
112 };
113
114 struct bnxt_ulp_rte_hdr_info ulp_hdr_info[] = {
115         [RTE_FLOW_ITEM_TYPE_END] = {
116                 .hdr_type                = BNXT_ULP_HDR_TYPE_END,
117                 .proto_hdr_func          = NULL
118         },
119         [RTE_FLOW_ITEM_TYPE_VOID] = {
120                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
121                 .proto_hdr_func          = ulp_rte_void_hdr_handler
122         },
123         [RTE_FLOW_ITEM_TYPE_INVERT] = {
124                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
125                 .proto_hdr_func          = NULL
126         },
127         [RTE_FLOW_ITEM_TYPE_ANY] = {
128                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
129                 .proto_hdr_func          = NULL
130         },
131         [RTE_FLOW_ITEM_TYPE_PF] = {
132                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
133                 .proto_hdr_func          = ulp_rte_pf_hdr_handler
134         },
135         [RTE_FLOW_ITEM_TYPE_VF] = {
136                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
137                 .proto_hdr_func          = ulp_rte_vf_hdr_handler
138         },
139         [RTE_FLOW_ITEM_TYPE_PHY_PORT] = {
140                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
141                 .proto_hdr_func          = ulp_rte_phy_port_hdr_handler
142         },
143         [RTE_FLOW_ITEM_TYPE_PORT_ID] = {
144                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
145                 .proto_hdr_func          = ulp_rte_port_id_hdr_handler
146         },
147         [RTE_FLOW_ITEM_TYPE_RAW] = {
148                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
149                 .proto_hdr_func          = NULL
150         },
151         [RTE_FLOW_ITEM_TYPE_ETH] = {
152                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
153                 .proto_hdr_func          = ulp_rte_eth_hdr_handler
154         },
155         [RTE_FLOW_ITEM_TYPE_VLAN] = {
156                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
157                 .proto_hdr_func          = ulp_rte_vlan_hdr_handler
158         },
159         [RTE_FLOW_ITEM_TYPE_IPV4] = {
160                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
161                 .proto_hdr_func          = ulp_rte_ipv4_hdr_handler
162         },
163         [RTE_FLOW_ITEM_TYPE_IPV6] = {
164                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
165                 .proto_hdr_func          = ulp_rte_ipv6_hdr_handler
166         },
167         [RTE_FLOW_ITEM_TYPE_ICMP] = {
168                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
169                 .proto_hdr_func          = NULL
170         },
171         [RTE_FLOW_ITEM_TYPE_UDP] = {
172                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
173                 .proto_hdr_func          = ulp_rte_udp_hdr_handler
174         },
175         [RTE_FLOW_ITEM_TYPE_TCP] = {
176                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
177                 .proto_hdr_func          = ulp_rte_tcp_hdr_handler
178         },
179         [RTE_FLOW_ITEM_TYPE_SCTP] = {
180                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
181                 .proto_hdr_func          = NULL
182         },
183         [RTE_FLOW_ITEM_TYPE_VXLAN] = {
184                 .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
185                 .proto_hdr_func          = ulp_rte_vxlan_hdr_handler
186         },
187         [RTE_FLOW_ITEM_TYPE_E_TAG] = {
188                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
189                 .proto_hdr_func          = NULL
190         },
191         [RTE_FLOW_ITEM_TYPE_NVGRE] = {
192                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
193                 .proto_hdr_func          = NULL
194         },
195         [RTE_FLOW_ITEM_TYPE_MPLS] = {
196                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
197                 .proto_hdr_func          = NULL
198         },
199         [RTE_FLOW_ITEM_TYPE_GRE] = {
200                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
201                 .proto_hdr_func          = NULL
202         },
203         [RTE_FLOW_ITEM_TYPE_FUZZY] = {
204                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
205                 .proto_hdr_func          = NULL
206         },
207         [RTE_FLOW_ITEM_TYPE_GTP] = {
208                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
209                 .proto_hdr_func          = NULL
210         },
211         [RTE_FLOW_ITEM_TYPE_GTPC] = {
212                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
213                 .proto_hdr_func          = NULL
214         },
215         [RTE_FLOW_ITEM_TYPE_GTPU] = {
216                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
217                 .proto_hdr_func          = NULL
218         },
219         [RTE_FLOW_ITEM_TYPE_ESP] = {
220                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
221                 .proto_hdr_func          = NULL
222         },
223         [RTE_FLOW_ITEM_TYPE_GENEVE] = {
224                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
225                 .proto_hdr_func          = NULL
226         },
227         [RTE_FLOW_ITEM_TYPE_VXLAN_GPE] = {
228                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
229                 .proto_hdr_func          = NULL
230         },
231         [RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4] = {
232                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
233                 .proto_hdr_func          = NULL
234         },
235         [RTE_FLOW_ITEM_TYPE_IPV6_EXT] = {
236                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
237                 .proto_hdr_func          = NULL
238         },
239         [RTE_FLOW_ITEM_TYPE_ICMP6] = {
240                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
241                 .proto_hdr_func          = NULL
242         },
243         [RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS] = {
244                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
245                 .proto_hdr_func          = NULL
246         },
247         [RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA] = {
248                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
249                 .proto_hdr_func          = NULL
250         },
251         [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT] = {
252                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
253                 .proto_hdr_func          = NULL
254         },
255         [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH] = {
256                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
257                 .proto_hdr_func          = NULL
258         },
259         [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH] = {
260                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
261                 .proto_hdr_func          = NULL
262         },
263         [RTE_FLOW_ITEM_TYPE_MARK] = {
264                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
265                 .proto_hdr_func          = NULL
266         },
267         [RTE_FLOW_ITEM_TYPE_META] = {
268                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
269                 .proto_hdr_func          = NULL
270         },
271         [RTE_FLOW_ITEM_TYPE_GRE_KEY] = {
272                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
273                 .proto_hdr_func          = NULL
274         },
275         [RTE_FLOW_ITEM_TYPE_GTP_PSC] = {
276                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
277                 .proto_hdr_func          = NULL
278         },
279         [RTE_FLOW_ITEM_TYPE_PPPOES] = {
280                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
281                 .proto_hdr_func          = NULL
282         },
283         [RTE_FLOW_ITEM_TYPE_PPPOED] = {
284                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
285                 .proto_hdr_func          = NULL
286         },
287         [RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID] = {
288                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
289                 .proto_hdr_func          = NULL
290         },
291         [RTE_FLOW_ITEM_TYPE_NSH] = {
292                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
293                 .proto_hdr_func          = NULL
294         },
295         [RTE_FLOW_ITEM_TYPE_IGMP] = {
296                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
297                 .proto_hdr_func          = NULL
298         },
299         [RTE_FLOW_ITEM_TYPE_AH] = {
300                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
301                 .proto_hdr_func          = NULL
302         },
303         [RTE_FLOW_ITEM_TYPE_HIGIG2] = {
304                 .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
305                 .proto_hdr_func          = NULL
306         }
307 };
308
309 struct bnxt_ulp_mapper_tbl_list_info ulp_class_tmpl_list[] = {
310         [((0 << BNXT_ULP_LOG2_MAX_NUM_DEV) | BNXT_ULP_DEVICE_ID_WH_PLUS)] = {
311         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
312         .num_tbls = 3,
313         .start_tbl_idx = 0
314         }
315 };
316
317 struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] = {
318         {
319         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
320         .table_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM,
321         .direction = TF_DIR_RX,
322         .priority = BNXT_ULP_PRIORITY_LEVEL_0,
323         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
324         .key_start_idx = 0,
325         .blob_key_bit_size = 167,
326         .key_bit_size = 167,
327         .key_num_fields = 13,
328         .result_start_idx = 0,
329         .result_bit_size = 64,
330         .result_num_fields = 13,
331         .ident_start_idx = 0,
332         .ident_nums = 1,
333         .mark_enable = BNXT_ULP_MARK_ENABLE_NO,
334         .critical_resource = 0,
335         .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
336         },
337         {
338         .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
339         .table_type = TF_TCAM_TBL_TYPE_PROF_TCAM,
340         .direction = TF_DIR_RX,
341         .priority = BNXT_ULP_PRIORITY_LEVEL_0,
342         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
343         .key_start_idx = 13,
344         .blob_key_bit_size = 81,
345         .key_bit_size = 81,
346         .key_num_fields = 42,
347         .result_start_idx = 13,
348         .result_bit_size = 38,
349         .result_num_fields = 8,
350         .ident_start_idx = 1,
351         .ident_nums = 1,
352         .mark_enable = BNXT_ULP_MARK_ENABLE_NO,
353         .critical_resource = 0,
354         .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
355         },
356         {
357         .resource_func = BNXT_ULP_RESOURCE_FUNC_EM_TABLE,
358         .table_type = TF_MEM_EXTERNAL,
359         .direction = TF_DIR_RX,
360         .priority = BNXT_ULP_PRIORITY_NOT_USED,
361         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
362         .key_start_idx = 55,
363         .blob_key_bit_size = 448,
364         .key_bit_size = 197,
365         .key_num_fields = 11,
366         .result_start_idx = 21,
367         .result_bit_size = 64,
368         .result_num_fields = 9,
369         .ident_start_idx = 2,
370         .ident_nums = 0,
371         .mark_enable = BNXT_ULP_MARK_ENABLE_YES,
372         .critical_resource = 1,
373         .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
374         }
375 };
376
377 struct bnxt_ulp_mapper_class_key_field_info ulp_class_key_field_list[] = {
378         {
379         .field_bit_size = 12,
380         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
381         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
382                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
383         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
384         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
385                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
386         },
387         {
388         .field_bit_size = 12,
389         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
390         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
391                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
392         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
393         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
394                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
395         },
396         {
397         .field_bit_size = 48,
398         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
399         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
400                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
401         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_HDR_FIELD,
402         .spec_operand = {(BNXT_ULP_HF0_O_ETH_DMAC >> 8) & 0xff,
403                 BNXT_ULP_HF0_O_ETH_DMAC & 0xff,
404                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
405                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
406         },
407         {
408         .field_bit_size = 8,
409         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_HDR_FIELD,
410         .mask_operand = {(BNXT_ULP_HF0_SVIF_INDEX >> 8) & 0xff,
411                 BNXT_ULP_HF0_SVIF_INDEX & 0xff,
412                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
413                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
414         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_HDR_FIELD,
415         .spec_operand = {(BNXT_ULP_HF0_SVIF_INDEX >> 8) & 0xff,
416                 BNXT_ULP_HF0_SVIF_INDEX & 0xff,
417                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
418                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
419         },
420         {
421         .field_bit_size = 4,
422         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
423         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
424                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
425         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
426         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
427                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
428         },
429         {
430         .field_bit_size = 12,
431         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
432         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
433                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
434         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
435         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
436                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
437         },
438         {
439         .field_bit_size = 12,
440         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
441         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
442                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
443         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
444         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
445                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
446         },
447         {
448         .field_bit_size = 48,
449         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
450         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
451                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
452         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
453         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
454                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
455         },
456         {
457         .field_bit_size = 2,
458         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
459         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
460                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
461         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
462         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
463                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
464         },
465         {
466         .field_bit_size = 2,
467         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
468         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
469                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
470         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
471         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
472                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
473         },
474         {
475         .field_bit_size = 4,
476         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
477         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
478                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
479         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
480         .spec_operand = {BNXT_ULP_SYM_TUN_HDR_TYPE_NONE,
481                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
482                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
483         },
484         {
485         .field_bit_size = 2,
486         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
487         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
488                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
489         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
490         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
491                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
492         },
493         {
494         .field_bit_size = 1,
495         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
496         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
497                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
498         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
499         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
500                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
501         },
502         {
503         .field_bit_size = 1,
504         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
505         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
506                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
507         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
508         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
509                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
510         },
511         {
512         .field_bit_size = 4,
513         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
514         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
515                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
516         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
517         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
518                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
519         },
520         {
521         .field_bit_size = 1,
522         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
523         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
524                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
525         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
526         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
527                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
528         },
529         {
530         .field_bit_size = 1,
531         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
532         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
533                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
534         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
535         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
536                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
537         },
538         {
539         .field_bit_size = 1,
540         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
541         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
542                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
543         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
544         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
545                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
546         },
547         {
548         .field_bit_size = 1,
549         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
550         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
551                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
552         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
553         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
554                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
555         },
556         {
557         .field_bit_size = 1,
558         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
559         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
560                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
561         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
562         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
563                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
564         },
565         {
566         .field_bit_size = 4,
567         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
568         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
569                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
570         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
571         .spec_operand = {BNXT_ULP_SYM_L3_HDR_TYPE_IPV4,
572                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
573                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
574         },
575         {
576         .field_bit_size = 1,
577         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
578         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
579                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
580         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
581         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
582                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
583         },
584         {
585         .field_bit_size = 1,
586         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
587         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
588                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
589         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
590         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
591                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
592         },
593         {
594         .field_bit_size = 1,
595         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
596         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
597                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
598         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
599         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
600                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
601         },
602         {
603         .field_bit_size = 1,
604         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
605         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
606                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
607         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
608         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
609                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
610         },
611         {
612         .field_bit_size = 2,
613         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
614         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
615                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
616         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
617         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
618                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
619         },
620         {
621         .field_bit_size = 2,
622         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
623         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
624                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
625         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
626         .spec_operand = {BNXT_ULP_SYM_L2_HDR_TYPE_DIX,
627                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
628                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
629         },
630         {
631         .field_bit_size = 1,
632         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
633         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
634                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
635         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
636         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
637                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
638         },
639         {
640         .field_bit_size = 1,
641         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
642         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
643                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
644         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
645         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
646                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
647         },
648         {
649         .field_bit_size = 3,
650         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
651         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
652                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
653         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
654         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
655                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
656         },
657         {
658         .field_bit_size = 4,
659         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
660         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
661                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
662         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
663         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
664                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
665         },
666         {
667         .field_bit_size = 1,
668         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
669         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
670                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
671         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
672         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
673                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
674         },
675         {
676         .field_bit_size = 1,
677         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
678         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
679                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
680         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
681         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
682                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
683         },
684         {
685         .field_bit_size = 1,
686         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
687         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
688                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
689         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
690         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
691                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
692         },
693         {
694         .field_bit_size = 4,
695         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
696         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
697                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
698         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
699         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
700                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
701         },
702         {
703         .field_bit_size = 1,
704         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
705         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
706                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
707         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
708         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
709                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
710         },
711         {
712         .field_bit_size = 1,
713         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
714         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
715                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
716         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
717         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
718                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
719         },
720         {
721         .field_bit_size = 1,
722         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
723         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
724                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
725         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
726         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
727                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
728         },
729         {
730         .field_bit_size = 1,
731         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
732         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
733                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
734         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
735         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
736                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
737         },
738         {
739         .field_bit_size = 1,
740         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
741         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
742                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
743         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
744         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
745                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
746         },
747         {
748         .field_bit_size = 4,
749         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
750         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
751                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
752         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
753         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
754                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
755         },
756         {
757         .field_bit_size = 1,
758         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
759         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
760                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
761         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
762         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
763                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
764         },
765         {
766         .field_bit_size = 1,
767         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
768         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
769                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
770         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
771         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
772                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
773         },
774         {
775         .field_bit_size = 1,
776         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
777         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
778                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
779         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
780         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
781                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
782         },
783         {
784         .field_bit_size = 1,
785         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
786         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
787                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
788         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
789         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
790                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
791         },
792         {
793         .field_bit_size = 2,
794         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
795         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
796                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
797         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
798         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
799                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
800         },
801         {
802         .field_bit_size = 2,
803         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
804         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
805                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
806         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
807         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
808                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
809         },
810         {
811         .field_bit_size = 1,
812         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
813         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
814                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
815         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
816         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
817                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
818         },
819         {
820         .field_bit_size = 1,
821         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
822         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
823                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
824         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
825         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
826                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
827         },
828         {
829         .field_bit_size = 9,
830         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
831         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
832                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
833         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
834         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
835                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
836         },
837         {
838         .field_bit_size = 7,
839         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
840         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
841                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
842         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
843         .spec_operand = {0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
844                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
845         },
846         {
847         .field_bit_size = 1,
848         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
849         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
850                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
851         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
852         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
853                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
854         },
855         {
856         .field_bit_size = 2,
857         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
858         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
859                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
860         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
861         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
862                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
863         },
864         {
865         .field_bit_size = 4,
866         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
867         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
868                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
869         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
870         .spec_operand = {BNXT_ULP_SYM_PKT_TYPE_L2,
871                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
872                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
873         },
874         {
875         .field_bit_size = 1,
876         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
877         .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
878                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
879         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
880         .spec_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
881                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
882         },
883         {
884         .field_bit_size = 251,
885         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
886         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
887                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
888         .spec_opcode = BNXT_ULP_SPEC_OPC_ADD_PAD,
889         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
890                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
891         },
892         {
893         .field_bit_size = 3,
894         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
895         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
896                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
897         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
898         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
899                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
900         },
901         {
902         .field_bit_size = 16,
903         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
904         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
905                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
906         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_HDR_FIELD,
907         .spec_operand = {(BNXT_ULP_HF0_O_UDP_DST_PORT >> 8) & 0xff,
908                 BNXT_ULP_HF0_O_UDP_DST_PORT & 0xff,
909                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
910                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
911         },
912         {
913         .field_bit_size = 16,
914         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
915         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
916                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
917         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_HDR_FIELD,
918         .spec_operand = {(BNXT_ULP_HF0_O_UDP_SRC_PORT >> 8) & 0xff,
919                 BNXT_ULP_HF0_O_UDP_SRC_PORT & 0xff,
920                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
921                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
922         },
923         {
924         .field_bit_size = 8,
925         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
926         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
927                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
928         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
929         .spec_operand = {BNXT_ULP_SYM_IP_PROTO_UDP,
930                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
931                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
932         },
933         {
934         .field_bit_size = 32,
935         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
936         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
937                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
938         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_HDR_FIELD,
939         .spec_operand = {(BNXT_ULP_HF0_O_IPV4_DST_ADDR >> 8) & 0xff,
940                 BNXT_ULP_HF0_O_IPV4_DST_ADDR & 0xff,
941                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
942                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
943         },
944         {
945         .field_bit_size = 32,
946         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
947         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
948                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
949         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_HDR_FIELD,
950         .spec_operand = {(BNXT_ULP_HF0_O_IPV4_SRC_ADDR >> 8) & 0xff,
951                 BNXT_ULP_HF0_O_IPV4_SRC_ADDR & 0xff,
952                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
953                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
954         },
955         {
956         .field_bit_size = 48,
957         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
958         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
959                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
960         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_HDR_FIELD,
961         .spec_operand = {(BNXT_ULP_HF0_O_ETH_SMAC >> 8) & 0xff,
962                 BNXT_ULP_HF0_O_ETH_SMAC & 0xff,
963                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
964                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
965         },
966         {
967         .field_bit_size = 24,
968         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
969         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
970                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
971         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
972         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
973                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
974         },
975         {
976         .field_bit_size = 10,
977         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
978         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
979                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
980         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_REGFILE,
981         .spec_operand = {(BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
982                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
983                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
984                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
985         },
986         {
987         .field_bit_size = 8,
988         .mask_opcode = BNXT_ULP_MASK_OPC_SET_TO_CONSTANT,
989         .mask_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
990                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
991         .spec_opcode = BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT,
992         .spec_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
993                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
994         }
995 };
996
997 struct bnxt_ulp_header_match_info ulp_ingress_hdr_match_list[] = {
998         {
999         .hdr_bitmap = { .bits =
1000                 BNXT_ULP_HDR_BIT_O_ETH |
1001                 BNXT_ULP_HDR_BIT_O_IPV4 |
1002                 BNXT_ULP_HDR_BIT_O_UDP },
1003         .start_idx = 0,
1004         .num_entries = 24,
1005         .class_tmpl_id = 0,
1006         .act_vnic = 0
1007         }
1008 };
1009
1010 struct bnxt_ulp_header_match_info ulp_egress_hdr_match_list[] = {
1011 };
1012
1013 struct bnxt_ulp_matcher_field_info ulp_field_match[] = {
1014         {
1015         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1016         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1017         },
1018         {
1019         .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1020         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1021         },
1022         {
1023         .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1024         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1025         },
1026         {
1027         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1028         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1029         },
1030         {
1031         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1032         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1033         },
1034         {
1035         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1036         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1037         },
1038         {
1039         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1040         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1041         },
1042         {
1043         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1044         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1045         },
1046         {
1047         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1048         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1049         },
1050         {
1051         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1052         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1053         },
1054         {
1055         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1056         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1057         },
1058         {
1059         .mask_opcode = BNXT_ULP_FMF_MASK_ANY,
1060         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1061         },
1062         {
1063         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1064         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1065         },
1066         {
1067         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1068         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1069         },
1070         {
1071         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1072         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1073         },
1074         {
1075         .mask_opcode = BNXT_ULP_FMF_MASK_ANY,
1076         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1077         },
1078         {
1079         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1080         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1081         },
1082         {
1083         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1084         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1085         },
1086         {
1087         .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1088         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1089         },
1090         {
1091         .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1092         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1093         },
1094         {
1095         .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1096         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1097         },
1098         {
1099         .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1100         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1101         },
1102         {
1103         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1104         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1105         },
1106         {
1107         .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1108         .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1109         }
1110 };
1111
1112 struct bnxt_ulp_mapper_result_field_info ulp_class_result_field_list[] = {
1113         {
1114         .field_bit_size = 10,
1115         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_REGFILE,
1116         .result_operand = {(BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
1117                 BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
1118                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1119                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1120         },
1121         {
1122         .field_bit_size = 7,
1123         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1124         .result_operand = {0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
1125                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1126         },
1127         {
1128         .field_bit_size = 1,
1129         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1130         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1131                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1132         },
1133         {
1134         .field_bit_size = 4,
1135         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1136         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1137                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1138         },
1139         {
1140         .field_bit_size = 8,
1141         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1142         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1143                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1144         },
1145         {
1146         .field_bit_size = 3,
1147         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1148         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1149                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1150         },
1151         {
1152         .field_bit_size = 6,
1153         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1154         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1155                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1156         },
1157         {
1158         .field_bit_size = 3,
1159         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1160         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1161                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1162         },
1163         {
1164         .field_bit_size = 1,
1165         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1166         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1167                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1168         },
1169         {
1170         .field_bit_size = 16,
1171         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1172         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1173                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1174         },
1175         {
1176         .field_bit_size = 1,
1177         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1178         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1179                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1180         },
1181         {
1182         .field_bit_size = 2,
1183         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1184         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1185                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1186         },
1187         {
1188         .field_bit_size = 2,
1189         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1190         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1191                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1192         },
1193         {
1194         .field_bit_size = 4,
1195         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1196         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1197                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1198         },
1199         {
1200         .field_bit_size = 8,
1201         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1202         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1203                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1204         },
1205         {
1206         .field_bit_size = 1,
1207         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1208         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1209                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1210         },
1211         {
1212         .field_bit_size = 10,
1213         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1214         .result_operand = {(0x00fd >> 8) & 0xff,
1215                 0x00fd & 0xff,
1216                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1217                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1218         },
1219         {
1220         .field_bit_size = 5,
1221         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1222         .result_operand = {0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
1223                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1224         },
1225         {
1226         .field_bit_size = 8,
1227         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1228         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1229                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1230         },
1231         {
1232         .field_bit_size = 1,
1233         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1234         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1235                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1236         },
1237         {
1238         .field_bit_size = 1,
1239         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1240         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1241                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1242         },
1243         {
1244         .field_bit_size = 33,
1245         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_REGFILE,
1246         .result_operand = {(BNXT_ULP_REGFILE_INDEX_ACTION_PTR_MAIN >> 8) & 0xff,
1247                 BNXT_ULP_REGFILE_INDEX_ACTION_PTR_MAIN & 0xff,
1248                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1249                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1250         },
1251         {
1252         .field_bit_size = 1,
1253         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1254         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1255                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1256         },
1257         {
1258         .field_bit_size = 1,
1259         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1260         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1261                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1262         },
1263         {
1264         .field_bit_size = 5,
1265         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1266         .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
1267                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1268         },
1269         {
1270         .field_bit_size = 9,
1271         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1272         .result_operand = {(0x00c5 >> 8) & 0xff,
1273                 0x00c5 & 0xff,
1274                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1275                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1276         },
1277         {
1278         .field_bit_size = 11,
1279         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1280         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1281                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1282         },
1283         {
1284         .field_bit_size = 2,
1285         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1286         .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
1287                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1288         },
1289         {
1290         .field_bit_size = 1,
1291         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1292         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1293                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1294         },
1295         {
1296         .field_bit_size = 1,
1297         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1298         .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1299                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1300         }
1301 };
1302
1303 struct bnxt_ulp_mapper_ident_info ulp_ident_list[] = {
1304         {
1305         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1306         .ident_type = TF_IDENT_TYPE_L2_CTXT,
1307         .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0,
1308         .ident_bit_size = 10,
1309         .ident_bit_pos = 54
1310         },
1311         {
1312         .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,
1313         .ident_type = TF_IDENT_TYPE_EM_PROF,
1314         .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0,
1315         .ident_bit_size = 8,
1316         .ident_bit_pos = 2
1317         }
1318 };
1319
1320 struct bnxt_ulp_action_match_info ulp_ingress_act_match_list[] = {
1321         {
1322         .act_bitmap = { .bits =
1323                 BNXT_ULP_ACTION_BIT_MARK |
1324                 BNXT_ULP_ACTION_BIT_RSS },
1325         .act_tmpl_id = 0
1326         }
1327 };
1328
1329 struct bnxt_ulp_action_match_info ulp_egress_act_match_list[] = {
1330 };
1331
1332 struct bnxt_ulp_mapper_tbl_list_info ulp_act_tmpl_list[] = {
1333         [((0 << BNXT_ULP_LOG2_MAX_NUM_DEV) | BNXT_ULP_DEVICE_ID_WH_PLUS)] = {
1334         .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
1335         .num_tbls = 1,
1336         .start_tbl_idx = 0
1337         }
1338 };
1339
1340 struct bnxt_ulp_mapper_act_tbl_info ulp_act_tbl_list[] = {
1341         {
1342         .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
1343         .table_type = TF_TBL_TYPE_EXT,
1344         .direction = TF_DIR_RX,
1345         .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
1346         .result_start_idx = 0,
1347         .result_bit_size = 128,
1348         .result_num_fields = 26,
1349         .encap_num_fields = 0,
1350         .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_ACTION_PTR_MAIN
1351         }
1352 };
1353
1354 struct bnxt_ulp_mapper_result_field_info ulp_act_result_field_list[] = {
1355         {
1356         .field_bit_size = 14,
1357         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1358         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1359                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1360         },
1361         {
1362         .field_bit_size = 1,
1363         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1364         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1365                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1366         },
1367         {
1368         .field_bit_size = 1,
1369         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1370         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1371                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1372         },
1373         {
1374         .field_bit_size = 1,
1375         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1376         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1377                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1378         },
1379         {
1380         .field_bit_size = 1,
1381         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1382         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1383                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1384         },
1385         {
1386         .field_bit_size = 1,
1387         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1388         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1389                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1390         },
1391         {
1392         .field_bit_size = 8,
1393         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1394         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1395                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1396         },
1397         {
1398         .field_bit_size = 1,
1399         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1400         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1401                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1402         },
1403         {
1404         .field_bit_size = 1,
1405         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1406         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1407                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1408         },
1409         {
1410         .field_bit_size = 11,
1411         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1412         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1413                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1414         },
1415         {
1416         .field_bit_size = 1,
1417         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1418         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1419                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1420         },
1421         {
1422         .field_bit_size = 10,
1423         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1424         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1425                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1426         },
1427         {
1428         .field_bit_size = 16,
1429         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1430         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1431                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1432         },
1433         {
1434         .field_bit_size = 10,
1435         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1436         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1437                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1438         },
1439         {
1440         .field_bit_size = 16,
1441         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1442         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1443                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1444         },
1445         {
1446         .field_bit_size = 10,
1447         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1448         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1449                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1450         },
1451         {
1452         .field_bit_size = 1,
1453         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1454         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1455                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1456         },
1457         {
1458         .field_bit_size = 1,
1459         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1460         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1461                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1462         },
1463         {
1464         .field_bit_size = 1,
1465         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1466         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1467                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1468         },
1469         {
1470         .field_bit_size = 1,
1471         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1472         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1473                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1474         },
1475         {
1476         .field_bit_size = 4,
1477         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1478         .result_operand = {BNXT_ULP_SYM_DECAP_FUNC_NONE,
1479                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1480                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1481         },
1482         {
1483         .field_bit_size = 12,
1484         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_ACT_PROP,
1485         .result_operand = {(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1486                 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
1487                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1488                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1489         },
1490         {
1491         .field_bit_size = 1,
1492         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1493         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1494                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1495         },
1496         {
1497         .field_bit_size = 1,
1498         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1499         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1500                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1501         },
1502         {
1503         .field_bit_size = 2,
1504         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1505         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1506                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1507         },
1508         {
1509         .field_bit_size = 1,
1510         .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1511         .result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1512                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
1513         }
1514 };