1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2014-2019 Broadcom
7 * date: Mon Mar 9 02:37:53 2020
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"
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
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,
110 .num_resources_per_flow = 8
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
119 [RTE_FLOW_ITEM_TYPE_VOID] = {
120 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
121 .proto_hdr_func = ulp_rte_void_hdr_handler
123 [RTE_FLOW_ITEM_TYPE_INVERT] = {
124 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
125 .proto_hdr_func = NULL
127 [RTE_FLOW_ITEM_TYPE_ANY] = {
128 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
129 .proto_hdr_func = NULL
131 [RTE_FLOW_ITEM_TYPE_PF] = {
132 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
133 .proto_hdr_func = ulp_rte_pf_hdr_handler
135 [RTE_FLOW_ITEM_TYPE_VF] = {
136 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
137 .proto_hdr_func = ulp_rte_vf_hdr_handler
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
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
147 [RTE_FLOW_ITEM_TYPE_RAW] = {
148 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
149 .proto_hdr_func = NULL
151 [RTE_FLOW_ITEM_TYPE_ETH] = {
152 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
153 .proto_hdr_func = ulp_rte_eth_hdr_handler
155 [RTE_FLOW_ITEM_TYPE_VLAN] = {
156 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
157 .proto_hdr_func = ulp_rte_vlan_hdr_handler
159 [RTE_FLOW_ITEM_TYPE_IPV4] = {
160 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
161 .proto_hdr_func = ulp_rte_ipv4_hdr_handler
163 [RTE_FLOW_ITEM_TYPE_IPV6] = {
164 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
165 .proto_hdr_func = ulp_rte_ipv6_hdr_handler
167 [RTE_FLOW_ITEM_TYPE_ICMP] = {
168 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
169 .proto_hdr_func = NULL
171 [RTE_FLOW_ITEM_TYPE_UDP] = {
172 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
173 .proto_hdr_func = ulp_rte_udp_hdr_handler
175 [RTE_FLOW_ITEM_TYPE_TCP] = {
176 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
177 .proto_hdr_func = ulp_rte_tcp_hdr_handler
179 [RTE_FLOW_ITEM_TYPE_SCTP] = {
180 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
181 .proto_hdr_func = NULL
183 [RTE_FLOW_ITEM_TYPE_VXLAN] = {
184 .hdr_type = BNXT_ULP_HDR_TYPE_SUPPORTED,
185 .proto_hdr_func = ulp_rte_vxlan_hdr_handler
187 [RTE_FLOW_ITEM_TYPE_E_TAG] = {
188 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
189 .proto_hdr_func = NULL
191 [RTE_FLOW_ITEM_TYPE_NVGRE] = {
192 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
193 .proto_hdr_func = NULL
195 [RTE_FLOW_ITEM_TYPE_MPLS] = {
196 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
197 .proto_hdr_func = NULL
199 [RTE_FLOW_ITEM_TYPE_GRE] = {
200 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
201 .proto_hdr_func = NULL
203 [RTE_FLOW_ITEM_TYPE_FUZZY] = {
204 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
205 .proto_hdr_func = NULL
207 [RTE_FLOW_ITEM_TYPE_GTP] = {
208 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
209 .proto_hdr_func = NULL
211 [RTE_FLOW_ITEM_TYPE_GTPC] = {
212 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
213 .proto_hdr_func = NULL
215 [RTE_FLOW_ITEM_TYPE_GTPU] = {
216 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
217 .proto_hdr_func = NULL
219 [RTE_FLOW_ITEM_TYPE_ESP] = {
220 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
221 .proto_hdr_func = NULL
223 [RTE_FLOW_ITEM_TYPE_GENEVE] = {
224 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
225 .proto_hdr_func = NULL
227 [RTE_FLOW_ITEM_TYPE_VXLAN_GPE] = {
228 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
229 .proto_hdr_func = NULL
231 [RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4] = {
232 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
233 .proto_hdr_func = NULL
235 [RTE_FLOW_ITEM_TYPE_IPV6_EXT] = {
236 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
237 .proto_hdr_func = NULL
239 [RTE_FLOW_ITEM_TYPE_ICMP6] = {
240 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
241 .proto_hdr_func = NULL
243 [RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS] = {
244 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
245 .proto_hdr_func = NULL
247 [RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA] = {
248 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
249 .proto_hdr_func = NULL
251 [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT] = {
252 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
253 .proto_hdr_func = NULL
255 [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH] = {
256 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
257 .proto_hdr_func = NULL
259 [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH] = {
260 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
261 .proto_hdr_func = NULL
263 [RTE_FLOW_ITEM_TYPE_MARK] = {
264 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
265 .proto_hdr_func = NULL
267 [RTE_FLOW_ITEM_TYPE_META] = {
268 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
269 .proto_hdr_func = NULL
271 [RTE_FLOW_ITEM_TYPE_GRE_KEY] = {
272 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
273 .proto_hdr_func = NULL
275 [RTE_FLOW_ITEM_TYPE_GTP_PSC] = {
276 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
277 .proto_hdr_func = NULL
279 [RTE_FLOW_ITEM_TYPE_PPPOES] = {
280 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
281 .proto_hdr_func = NULL
283 [RTE_FLOW_ITEM_TYPE_PPPOED] = {
284 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
285 .proto_hdr_func = NULL
287 [RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID] = {
288 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
289 .proto_hdr_func = NULL
291 [RTE_FLOW_ITEM_TYPE_NSH] = {
292 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
293 .proto_hdr_func = NULL
295 [RTE_FLOW_ITEM_TYPE_IGMP] = {
296 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
297 .proto_hdr_func = NULL
299 [RTE_FLOW_ITEM_TYPE_AH] = {
300 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
301 .proto_hdr_func = NULL
303 [RTE_FLOW_ITEM_TYPE_HIGIG2] = {
304 .hdr_type = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
305 .proto_hdr_func = NULL
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,
317 struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] = {
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,
325 .blob_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,
333 .mark_enable = BNXT_ULP_MARK_ENABLE_NO,
334 .critical_resource = 0,
335 .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
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,
344 .blob_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,
352 .mark_enable = BNXT_ULP_MARK_ENABLE_NO,
353 .critical_resource = 0,
354 .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
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,
363 .blob_key_bit_size = 448,
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,
371 .mark_enable = BNXT_ULP_MARK_ENABLE_YES,
372 .critical_resource = 1,
373 .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
377 struct bnxt_ulp_mapper_class_key_field_info ulp_class_key_field_list[] = {
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
997 struct bnxt_ulp_header_match_info ulp_ingress_hdr_match_list[] = {
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 },
1010 struct bnxt_ulp_header_match_info ulp_egress_hdr_match_list[] = {
1013 struct bnxt_ulp_matcher_field_info ulp_field_match[] = {
1015 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1016 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1019 .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1020 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1023 .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1024 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1027 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1028 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1031 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1032 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1035 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1036 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1039 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1040 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1043 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1044 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1047 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1048 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1051 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1052 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1055 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1056 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1059 .mask_opcode = BNXT_ULP_FMF_MASK_ANY,
1060 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1063 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1064 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1067 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1068 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1071 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1072 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1075 .mask_opcode = BNXT_ULP_FMF_MASK_ANY,
1076 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1079 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1080 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1083 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1084 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1087 .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1088 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1091 .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1092 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1095 .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1096 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1099 .mask_opcode = BNXT_ULP_FMF_MASK_EXACT,
1100 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1103 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1104 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1107 .mask_opcode = BNXT_ULP_FMF_MASK_IGNORE,
1108 .spec_opcode = BNXT_ULP_FMF_SPEC_IGNORE
1112 struct bnxt_ulp_mapper_result_field_info ulp_class_result_field_list[] = {
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
1212 .field_bit_size = 10,
1213 .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1214 .result_operand = {(0x00fd >> 8) & 0xff,
1216 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1217 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
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}
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}
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}
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}
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}
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}
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}
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}
1270 .field_bit_size = 9,
1271 .result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,
1272 .result_operand = {(0x00c5 >> 8) & 0xff,
1274 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1275 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
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}
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}
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}
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}
1303 struct bnxt_ulp_mapper_ident_info ulp_ident_list[] = {
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,
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,
1320 struct bnxt_ulp_action_match_info ulp_ingress_act_match_list[] = {
1322 .act_bitmap = { .bits =
1323 BNXT_ULP_ACTION_BIT_MARK |
1324 BNXT_ULP_ACTION_BIT_RSS },
1329 struct bnxt_ulp_action_match_info ulp_egress_act_match_list[] = {
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,
1340 struct bnxt_ulp_mapper_act_tbl_info ulp_act_tbl_list[] = {
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
1354 struct bnxt_ulp_mapper_result_field_info ulp_act_result_field_list[] = {
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}