1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2014-2021 Broadcom
6 /* date: Sun Mar 14 12:41:59 2021 */
8 #include "ulp_template_db_enum.h"
9 #include "ulp_template_db_field.h"
10 #include "ulp_template_struct.h"
11 #include "ulp_template_db_tbl.h"
13 /* Mapper templates for header class list */
14 struct bnxt_ulp_mapper_tmpl_info ulp_thor_class_tmpl_list[] = {
15 /* class_tid: 3, thor, ingress */
17 .device_name = BNXT_ULP_DEVICE_ID_THOR,
21 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
25 /* class_tid: 4, thor, egress */
27 .device_name = BNXT_ULP_DEVICE_ID_THOR,
31 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
37 struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = {
38 { /* class_tid: 3, thor, table: int_full_act_record.ing_0 */
39 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
40 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
42 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
43 .direction = TF_DIR_RX,
47 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
50 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
51 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
52 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
53 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
54 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
55 .result_start_idx = 0,
56 .result_bit_size = 128,
57 .result_num_fields = 17
59 { /* class_tid: 3, thor, table: parif_def_arec_ptr.ing_0 */
60 .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
61 .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_DFLT_ACT_REC_PTR,
62 .direction = TF_DIR_RX,
66 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
69 .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
70 .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
71 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
72 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
73 .result_start_idx = 17,
74 .result_bit_size = 32,
75 .result_num_fields = 1
77 { /* class_tid: 3, thor, table: parif_def_err_arec_ptr.ing_0 */
78 .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
79 .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_ERR_ACT_REC_PTR,
80 .direction = TF_DIR_RX,
84 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
87 .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
88 .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
89 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
90 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
91 .result_start_idx = 18,
92 .result_bit_size = 32,
93 .result_num_fields = 1
95 { /* class_tid: 3, thor, table: control.egr_1 */
96 .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
97 .direction = TF_DIR_RX,
100 .cond_false_goto = 0,
101 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
104 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
105 .byte_order = BNXT_ULP_BYTE_ORDER_LE
107 { /* class_tid: 3, thor, table: int_full_act_record.egr_vfr */
108 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
109 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
111 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_VFR_CFA_ACTION,
112 .direction = TF_DIR_TX,
115 .cond_false_goto = 1,
116 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
119 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
120 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
121 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
122 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
123 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
124 .result_start_idx = 19,
125 .result_bit_size = 128,
126 .result_num_fields = 17,
127 .encap_num_fields = 0
129 { /* class_tid: 3, thor, table: parif_def_arec_ptr.egr_0 */
130 .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
131 .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_DFLT_ACT_REC_PTR,
132 .direction = TF_DIR_TX,
135 .cond_false_goto = 1,
136 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
139 .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
140 .tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_PARIF,
141 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
142 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
143 .result_start_idx = 36,
144 .result_bit_size = 32,
145 .result_num_fields = 1
147 { /* class_tid: 3, thor, table: parif_def_err_arec_ptr.egr_0 */
148 .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
149 .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_ERR_ACT_REC_PTR,
150 .direction = TF_DIR_TX,
153 .cond_false_goto = 0,
154 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
157 .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_COMP_FIELD,
158 .tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_PARIF,
159 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
160 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
161 .result_start_idx = 37,
162 .result_bit_size = 32,
163 .result_num_fields = 1
165 { /* class_tid: 4, thor, table: int_full_act_record.loopback */
166 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
167 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
169 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_VFR_CFA_ACTION,
170 .direction = TF_DIR_TX,
173 .cond_false_goto = 1,
174 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
177 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_GLB_REGFILE,
178 .tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR,
179 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
180 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
181 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
182 .result_start_idx = 38,
183 .result_bit_size = 128,
184 .result_num_fields = 17,
185 .encap_num_fields = 0
187 { /* class_tid: 4, thor, table: parif_def_arec_ptr.vf_egr */
188 .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
189 .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_DFLT_ACT_REC_PTR,
190 .direction = TF_DIR_TX,
193 .cond_false_goto = 1,
194 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
197 .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_CONST,
198 .tbl_operand = ULP_THOR_SYM_LOOPBACK_PARIF,
199 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
200 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
201 .result_start_idx = 55,
202 .result_bit_size = 32,
203 .result_num_fields = 1
205 { /* class_tid: 4, thor, table: parif_def_err_arec_ptr.vf_egr */
206 .resource_func = BNXT_ULP_RESOURCE_FUNC_IF_TABLE,
207 .resource_type = TF_IF_TBL_TYPE_PROF_PARIF_ERR_ACT_REC_PTR,
208 .direction = TF_DIR_TX,
211 .cond_false_goto = 1,
212 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
215 .tbl_opcode = BNXT_ULP_IF_TBL_OPC_WR_CONST,
216 .tbl_operand = ULP_THOR_SYM_LOOPBACK_PARIF,
217 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
218 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
219 .result_start_idx = 56,
220 .result_bit_size = 32,
221 .result_num_fields = 1
223 { /* class_tid: 4, thor, table: int_full_act_record.vf_ing */
224 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
225 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
227 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
228 .direction = TF_DIR_RX,
231 .cond_false_goto = 1,
232 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
235 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
236 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
237 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
238 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_PUSH_AND_SET_VFR_FLAG,
239 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
240 .result_start_idx = 57,
241 .result_bit_size = 128,
242 .result_num_fields = 17,
243 .encap_num_fields = 0
245 { /* class_tid: 4, thor, table: vtag_encap_record.vfr_egr0 */
246 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
247 .resource_type = TF_TBL_TYPE_ACT_ENCAP_8B,
249 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
250 .direction = TF_DIR_TX,
253 .cond_false_goto = 1,
254 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
257 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
258 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
259 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
260 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
261 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
262 .result_start_idx = 74,
263 .result_bit_size = 0,
264 .result_num_fields = 0,
265 .encap_num_fields = 11
267 { /* class_tid: 4, thor, table: int_full_act_record.vfr_egr0 */
268 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
269 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
271 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_VFR_CFA_ACTION,
272 .direction = TF_DIR_TX,
275 .cond_false_goto = 0,
276 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
279 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
280 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
281 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
282 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
283 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
284 .result_start_idx = 85,
285 .result_bit_size = 128,
286 .result_num_fields = 17
290 struct bnxt_ulp_mapper_cond_info ulp_thor_class_cond_list[] = {
291 /* cond_execute: class_tid: 3, control.egr_1 */
293 .cond_opcode = BNXT_ULP_COND_OPC_CF_NOT_SET,
294 .cond_operand = BNXT_ULP_CF_IDX_VFR_MODE
298 struct bnxt_ulp_mapper_field_info ulp_thor_class_result_field_list[] = {
299 /* class_tid: 3, thor, table: int_full_act_record.ing_0 */
301 .description = "sp_rec_ptr",
302 .field_bit_size = 16,
303 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
304 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
307 .description = "encap_ptr",
308 .field_bit_size = 16,
309 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
310 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
313 .description = "mod_rec_ptr",
314 .field_bit_size = 16,
315 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
316 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
319 .description = "rsvd1",
320 .field_bit_size = 16,
321 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
322 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
325 .description = "rsvd0",
327 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
328 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
331 .description = "decap_func",
333 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
334 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
337 .description = "meter",
338 .field_bit_size = 10,
339 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
340 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
343 .description = "stats_op",
345 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
346 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
349 .description = "stats_ptr",
350 .field_bit_size = 16,
351 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
352 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
355 .description = "vnic_or_vport",
356 .field_bit_size = 11,
357 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
358 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
360 (BNXT_ULP_CF_IDX_DRV_FUNC_VNIC >> 8) & 0xff,
361 BNXT_ULP_CF_IDX_DRV_FUNC_VNIC & 0xff}
364 .description = "use_default",
366 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
367 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
370 .description = "mirror",
372 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
373 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
376 .description = "cond_copy",
378 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
379 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
382 .description = "vlan_del_rpt",
384 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
385 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
388 .description = "drop",
390 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
391 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
394 .description = "hit",
396 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
397 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
400 .description = "type",
402 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
403 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
407 /* class_tid: 3, thor, table: parif_def_arec_ptr.ing_0 */
409 .description = "act_rec_ptr",
410 .field_bit_size = 32,
411 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
412 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
414 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
415 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
417 /* class_tid: 3, thor, table: parif_def_err_arec_ptr.ing_0 */
419 .description = "act_rec_ptr",
420 .field_bit_size = 32,
421 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
422 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
424 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
425 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
427 /* class_tid: 3, thor, table: int_full_act_record.egr_vfr */
429 .description = "sp_rec_ptr",
430 .field_bit_size = 16,
431 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
432 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
435 .description = "encap_ptr",
436 .field_bit_size = 16,
437 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
438 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
441 .description = "mod_rec_ptr",
442 .field_bit_size = 16,
443 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
444 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
447 .description = "rsvd1",
448 .field_bit_size = 16,
449 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
450 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
453 .description = "rsvd0",
455 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
456 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
459 .description = "decap_func",
461 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
462 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
465 .description = "meter",
466 .field_bit_size = 10,
467 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
468 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
471 .description = "stats_op",
473 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
474 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
477 .description = "stats_ptr",
478 .field_bit_size = 16,
479 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
480 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
483 .description = "vnic_or_vport",
484 .field_bit_size = 11,
485 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
486 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
488 (BNXT_ULP_CF_IDX_PHY_PORT_VPORT >> 8) & 0xff,
489 BNXT_ULP_CF_IDX_PHY_PORT_VPORT & 0xff}
492 .description = "use_default",
494 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
495 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
498 .description = "mirror",
500 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
501 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
504 .description = "cond_copy",
506 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
507 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
510 .description = "vlan_del_rpt",
512 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
513 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
516 .description = "drop",
518 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
519 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
522 .description = "hit",
524 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
525 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
528 .description = "type",
530 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
531 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
535 /* class_tid: 3, thor, table: parif_def_arec_ptr.egr_0 */
537 .description = "act_rec_ptr",
538 .field_bit_size = 32,
539 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
540 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
542 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
543 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
545 /* class_tid: 3, thor, table: parif_def_err_arec_ptr.egr_0 */
547 .description = "act_rec_ptr",
548 .field_bit_size = 32,
549 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
550 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
552 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
553 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
555 /* class_tid: 4, thor, table: int_full_act_record.loopback */
557 .description = "sp_rec_ptr",
558 .field_bit_size = 16,
559 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
560 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
563 .description = "encap_ptr",
564 .field_bit_size = 16,
565 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
566 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
569 .description = "mod_rec_ptr",
570 .field_bit_size = 16,
571 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
572 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
575 .description = "rsvd1",
576 .field_bit_size = 16,
577 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
578 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
581 .description = "rsvd0",
583 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
584 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
587 .description = "decap_func",
589 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
590 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
593 .description = "meter",
594 .field_bit_size = 10,
595 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
596 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
599 .description = "stats_op",
601 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
602 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
605 .description = "stats_ptr",
606 .field_bit_size = 16,
607 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
608 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
611 .description = "vnic_or_vport",
612 .field_bit_size = 11,
613 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
614 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
616 (ULP_THOR_SYM_LOOPBACK_PORT >> 8) & 0xff,
617 ULP_THOR_SYM_LOOPBACK_PORT & 0xff}
620 .description = "use_default",
622 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
623 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
626 .description = "mirror",
628 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
629 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
632 .description = "cond_copy",
634 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
635 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
638 .description = "vlan_del_rpt",
640 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
641 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
644 .description = "drop",
646 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
647 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
650 .description = "hit",
652 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
653 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
656 .description = "type",
658 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
659 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
663 /* class_tid: 4, thor, table: parif_def_arec_ptr.vf_egr */
665 .description = "act_rec_ptr",
666 .field_bit_size = 32,
667 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
668 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
670 (BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR >> 8) & 0xff,
671 BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR & 0xff}
673 /* class_tid: 4, thor, table: parif_def_err_arec_ptr.vf_egr */
675 .description = "act_rec_ptr",
676 .field_bit_size = 32,
677 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
678 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
680 (BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR >> 8) & 0xff,
681 BNXT_ULP_GLB_RF_IDX_GLB_LB_AREC_PTR & 0xff}
683 /* class_tid: 4, thor, table: int_full_act_record.vf_ing */
685 .description = "sp_rec_ptr",
686 .field_bit_size = 16,
687 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
688 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
691 .description = "encap_ptr",
692 .field_bit_size = 16,
693 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
694 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
697 .description = "mod_rec_ptr",
698 .field_bit_size = 16,
699 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
700 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
703 .description = "rsvd1",
704 .field_bit_size = 16,
705 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
706 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
709 .description = "rsvd0",
711 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
712 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
715 .description = "decap_func",
717 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
718 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
721 .description = "meter",
722 .field_bit_size = 10,
723 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
724 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
727 .description = "stats_op",
729 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
730 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
733 .description = "stats_ptr",
734 .field_bit_size = 16,
735 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
736 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
739 .description = "vnic_or_vport",
740 .field_bit_size = 11,
741 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
742 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
744 (BNXT_ULP_CF_IDX_DRV_FUNC_VNIC >> 8) & 0xff,
745 BNXT_ULP_CF_IDX_DRV_FUNC_VNIC & 0xff}
748 .description = "use_default",
750 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
751 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
754 .description = "mirror",
756 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
757 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
760 .description = "cond_copy",
762 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
763 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
766 .description = "vlan_del_rpt",
768 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
769 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
772 .description = "drop",
774 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
775 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
778 .description = "hit",
780 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
781 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
784 .description = "type",
786 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
787 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
791 /* class_tid: 4, thor, table: vtag_encap_record.vfr_egr0 */
793 .description = "ecv_tun_type",
795 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
796 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
799 .description = "ecv_l4_type",
801 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
802 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
805 .description = "ecv_l3_type",
807 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
808 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
811 .description = "ecv_l2_en",
813 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
814 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
817 .description = "ecv_vtag_type",
819 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
820 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
822 ULP_THOR_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
825 .description = "rsrvd",
827 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
828 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
831 .description = "ecv_valid",
833 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
834 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
839 .description = "vtag_tpid",
840 .field_bit_size = 16,
841 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
842 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
848 .description = "vtag_vid",
849 .field_bit_size = 12,
850 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
851 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
853 (BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
854 BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff}
857 .description = "vtag_de",
859 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
860 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
863 .description = "vtag_pcp",
865 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
866 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
868 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
869 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
871 /* class_tid: 4, thor, table: int_full_act_record.vfr_egr0 */
873 .description = "sp_rec_ptr",
874 .field_bit_size = 16,
875 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
876 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
879 .description = "encap_ptr",
880 .field_bit_size = 16,
881 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
882 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
884 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
885 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
888 .description = "mod_rec_ptr",
889 .field_bit_size = 16,
890 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
891 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
894 .description = "rsvd1",
895 .field_bit_size = 16,
896 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
897 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
900 .description = "rsvd0",
902 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
903 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
906 .description = "decap_func",
908 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
909 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
912 .description = "meter",
913 .field_bit_size = 10,
914 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
915 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
918 .description = "stats_op",
920 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
921 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
924 .description = "stats_ptr",
925 .field_bit_size = 16,
926 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
927 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
930 .description = "vnic_or_vport",
931 .field_bit_size = 11,
932 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
933 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
935 (ULP_THOR_SYM_LOOPBACK_PORT >> 8) & 0xff,
936 ULP_THOR_SYM_LOOPBACK_PORT & 0xff}
939 .description = "use_default",
941 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
942 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
945 .description = "mirror",
947 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
948 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
951 .description = "cond_copy",
953 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
954 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
957 .description = "vlan_del_rpt",
959 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
960 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
963 .description = "drop",
965 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
966 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
969 .description = "hit",
971 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
972 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
975 .description = "type",
977 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
978 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
985 bnxt_ulp_mapper_key_info ulp_thor_class_key_info_list[] = {
988 struct bnxt_ulp_mapper_ident_info ulp_thor_class_ident_list[] = {