1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2014-2021 Broadcom
6 /* date: Wed Nov 18 12:19:40 2020 */
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_wh_plus_act_tmpl_list[] = {
15 /* act_tid: 1, wh_plus, ingress */
17 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
21 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
27 struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_act_tbl_list[] = {
28 { /* act_tid: 1, wh_plus, 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,
35 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
38 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
39 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
40 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
41 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
42 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
43 .result_start_idx = 0,
44 .result_bit_size = 64,
45 .result_num_fields = 1,
48 { /* act_tid: 1, wh_plus, table: int_vtag_encap_record.0 */
49 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
50 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
52 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
53 .direction = TF_DIR_RX,
54 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
56 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
59 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
60 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
61 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
62 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
63 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
64 .result_start_idx = 1,
66 .result_num_fields = 0,
67 .encap_num_fields = 12
69 { /* act_tid: 1, wh_plus, table: int_full_act_record.0 */
70 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
71 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
73 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
74 .direction = TF_DIR_RX,
75 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
77 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
80 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
81 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
82 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
83 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
84 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
85 .result_start_idx = 13,
86 .result_bit_size = 128,
87 .result_num_fields = 26,
90 { /* act_tid: 1, wh_plus, table: ext_full_act_record.0 */
91 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
92 .resource_type = TF_TBL_TYPE_EXT,
94 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
95 .direction = TF_DIR_RX,
96 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
98 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
101 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
102 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
103 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
104 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH,
105 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
106 .result_start_idx = 39,
107 .result_bit_size = 128,
108 .result_num_fields = 26,
109 .encap_num_fields = 0
113 struct bnxt_ulp_mapper_cond_info ulp_wh_plus_act_cond_list[] = {
115 .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
116 .cond_operand = BNXT_ULP_ACTION_BIT_COUNT
119 .cond_opcode = BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET,
120 .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN
124 struct bnxt_ulp_mapper_field_info ulp_wh_plus_act_result_field_list[] = {
125 /* act_tid: 1, wh_plus, table: int_flow_counter_tbl.0 */
127 .description = "count",
128 .field_bit_size = 64,
129 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
131 /* act_tid: 1, wh_plus, table: int_vtag_encap_record.0 */
133 .description = "ecv_tun_type",
135 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
138 .description = "ecv_l4_type",
140 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
143 .description = "ecv_l3_type",
145 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
148 .description = "ecv_l2_en",
150 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
153 .description = "ecv_vtag_type",
155 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_CONSTANT,
157 BNXT_ULP_WH_PLUS_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI,
158 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
159 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
162 .description = "ecv_custom_en",
164 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
167 .description = "ecv_valid",
169 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
172 .description = "vtag_tpid",
173 .field_bit_size = 16,
174 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_PROP,
176 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
177 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff,
178 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
179 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
182 .description = "vtag_vid",
183 .field_bit_size = 12,
184 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_PROP,
186 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
187 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff,
188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
189 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
192 .description = "vtag_de",
194 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
197 .description = "vtag_pcp",
199 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_PROP,
201 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
202 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff,
203 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
204 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
207 .description = "spare",
208 .field_bit_size = 80,
209 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
211 /* act_tid: 1, wh_plus, table: int_full_act_record.0 */
213 .description = "flow_cntr_ptr",
214 .field_bit_size = 14,
215 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_REGFILE,
217 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
218 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff,
219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
223 .description = "age_enable",
225 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
228 .description = "agg_cntr_en",
230 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
233 .description = "rate_cntr_en",
235 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
238 .description = "flow_cntr_en",
240 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_BIT,
242 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
243 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
244 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
245 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
246 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
247 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
248 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
249 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
250 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
253 .description = "tcpflags_key",
255 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
258 .description = "tcpflags_mir",
260 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
263 .description = "tcpflags_match",
265 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
268 .description = "encap_ptr",
269 .field_bit_size = 11,
270 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_REGFILE,
272 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
273 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff,
274 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
275 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
278 .description = "dst_ip_ptr",
279 .field_bit_size = 10,
280 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_REGFILE,
282 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
283 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff,
284 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
285 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
288 .description = "tcp_dst_port",
289 .field_bit_size = 16,
290 .field_opcode = BNXT_ULP_FIELD_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
292 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
293 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
294 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
295 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
296 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
297 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
298 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
299 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
300 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
301 .field_operand_true = {
302 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
303 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
305 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
308 .description = "src_ip_ptr",
309 .field_bit_size = 10,
310 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_REGFILE,
312 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
313 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
314 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
315 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
318 .description = "tcp_src_port",
319 .field_bit_size = 16,
320 .field_opcode = BNXT_ULP_FIELD_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
322 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
323 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
324 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
325 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
326 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
327 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
328 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
329 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
331 .field_operand_true = {
332 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
333 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
334 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
335 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
338 .description = "meter_id",
339 .field_bit_size = 10,
340 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
343 .description = "l3_rdir",
345 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
348 .description = "tl3_rdir",
350 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
353 .description = "l3_ttl_dec",
355 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_COMP_FIELD,
357 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
358 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
359 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
360 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
363 .description = "tl3_ttl_dec",
365 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_COMP_FIELD,
367 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
368 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
369 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
370 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
373 .description = "decap_func",
375 .field_opcode = BNXT_ULP_FIELD_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
377 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
378 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
379 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
380 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
381 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
382 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
383 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
384 (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
385 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
386 .field_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
387 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
390 .description = "vnic_or_vport",
391 .field_bit_size = 12,
392 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_PROP,
394 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
395 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
396 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
397 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
400 .description = "pop_vlan",
402 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_BIT,
404 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
405 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
406 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
407 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
408 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
409 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
410 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
411 (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
412 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
415 .description = "meter",
417 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
420 .description = "mirror",
422 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
425 .description = "drop",
427 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_BIT,
429 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
430 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
431 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
432 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
433 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
434 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
435 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
436 (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
437 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
440 .description = "hit",
442 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
445 .description = "type",
447 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
449 /* act_tid: 1, wh_plus, table: ext_full_act_record.0 */
451 .description = "flow_cntr_ptr",
452 .field_bit_size = 14,
453 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_REGFILE,
455 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
456 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff,
457 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
458 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
461 .description = "age_enable",
463 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
466 .description = "agg_cntr_en",
468 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
471 .description = "rate_cntr_en",
473 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
476 .description = "flow_cntr_en",
478 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_BIT,
480 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
481 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
482 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
483 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
484 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
485 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
486 ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
487 (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
488 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
491 .description = "flow_cntr_ext",
493 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
496 .description = "tcpflags_key",
498 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
501 .description = "tcpflags_mir",
503 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
506 .description = "tcpflags_match",
508 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
511 .description = "encap_ptr",
512 .field_bit_size = 11,
513 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
516 .description = "encap_rec_int",
518 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
521 .description = "dst_ip_ptr",
522 .field_bit_size = 10,
523 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_REGFILE,
525 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
526 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff,
527 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
528 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
531 .description = "tcp_dst_port",
532 .field_bit_size = 16,
533 .field_opcode = BNXT_ULP_FIELD_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
535 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
536 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
537 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
538 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
539 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
540 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
541 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
542 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
543 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
544 .field_operand_true = {
545 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
546 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
547 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
548 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
551 .description = "src_ip_ptr",
552 .field_bit_size = 10,
553 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_REGFILE,
555 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
556 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
557 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
558 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
561 .description = "tcp_src_port",
562 .field_bit_size = 16,
563 .field_opcode = BNXT_ULP_FIELD_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
565 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
566 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
567 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
568 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
569 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
570 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
571 ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
572 (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
573 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
574 .field_operand_true = {
575 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
576 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
577 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
578 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
581 .description = "meter_id",
582 .field_bit_size = 10,
583 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
586 .description = "l3_rdir",
588 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
591 .description = "tl3_rdir",
593 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
596 .description = "l3_ttl_dec",
598 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_COMP_FIELD,
600 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
601 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
602 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
603 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
606 .description = "tl3_ttl_dec",
608 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_COMP_FIELD,
610 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
611 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
612 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
613 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
616 .description = "decap_func",
618 .field_opcode = BNXT_ULP_FIELD_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
620 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
621 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
622 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
623 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
624 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
625 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
626 ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
627 (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
628 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
629 .field_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
630 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
633 .description = "vnic_or_vport",
634 .field_bit_size = 12,
635 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_PROP,
637 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
638 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
639 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
640 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
643 .description = "pop_vlan",
645 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_BIT,
647 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
648 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
649 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
650 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
651 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
652 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
653 ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
654 (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
655 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
658 .description = "meter",
660 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
663 .description = "mirror",
665 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ZERO
668 .description = "drop",
670 .field_opcode = BNXT_ULP_FIELD_OPC_SET_TO_ACT_BIT,
672 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
673 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
674 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
675 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
676 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
677 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
678 ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
679 (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
680 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}