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