1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2014-2021 Broadcom
6 /* date: Thu May 13 18:15:56 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 act list */
14 struct bnxt_ulp_mapper_tmpl_info ulp_thor_act_tmpl_list[] = {
15 /* act_tid: 1, ingress */
17 .device_name = BNXT_ULP_DEVICE_ID_THOR,
21 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
27 struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
28 { /* act_tid: 1, , table: int_flow_counter_tbl.0 */
29 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
30 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
32 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
33 .direction = TF_DIR_RX,
37 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
40 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
41 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
42 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
43 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
44 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
45 .result_start_idx = 0,
46 .result_bit_size = 64,
47 .result_num_fields = 1
49 { /* act_tid: 1, , table: int_full_act_record.0 */
50 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
51 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
53 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
54 .direction = TF_DIR_RX,
58 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
61 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
62 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
63 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
64 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
65 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
66 .result_start_idx = 1,
67 .result_bit_size = 128,
68 .result_num_fields = 17
72 struct bnxt_ulp_mapper_cond_info ulp_thor_act_cond_list[] = {
73 /* cond_reject: thor, act_tid: 1 */
75 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
76 .cond_operand = BNXT_ULP_ACT_BIT_POP_VLAN
79 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
80 .cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
83 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
84 .cond_operand = BNXT_ULP_ACT_BIT_VXLAN_DECAP
87 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
88 .cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
90 /* cond_execute: act_tid: 1, int_flow_counter_tbl.0 */
92 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
93 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
97 struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
98 /* act_tid: 1, , table: int_flow_counter_tbl.0 */
100 .description = "count",
101 .field_bit_size = 64,
102 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
103 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
105 /* act_tid: 1, , table: int_full_act_record.0 */
107 .description = "sp_rec_ptr",
108 .field_bit_size = 16,
109 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
110 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
113 .description = "encap_ptr",
114 .field_bit_size = 16,
115 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
116 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
119 .description = "mod_rec_ptr",
120 .field_bit_size = 16,
121 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
122 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
125 .description = "rsvd1",
126 .field_bit_size = 16,
127 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
128 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
131 .description = "rsvd0",
133 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
134 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
137 .description = "decap_func",
139 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
140 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
143 .description = "meter",
144 .field_bit_size = 10,
145 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
146 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
149 .description = "stats_op",
151 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
152 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
155 .description = "stats_ptr",
156 .field_bit_size = 16,
157 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
158 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
160 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
161 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
164 .description = "vnic_or_vport",
165 .field_bit_size = 11,
166 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
167 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
169 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
170 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
173 .description = "use_default",
175 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
176 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
179 .description = "mirror",
181 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
182 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
185 .description = "cond_copy",
187 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
188 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
191 .description = "vlan_del_rpt",
193 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
194 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
197 .description = "drop",
199 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
200 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
202 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
203 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
204 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
205 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
206 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
207 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
208 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
209 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
212 .description = "hit",
214 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
215 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
218 .description = "type",
220 .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
221 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,