1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2014-2021 Broadcom
6 /* date: Tue Jan 26 15:51:49 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_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_OR,
25 /* act_tid: 2, wh_plus, ingress */
27 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
31 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
35 /* act_tid: 3, wh_plus, ingress */
37 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
41 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
45 /* act_tid: 4, wh_plus, egress */
47 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
51 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
55 /* act_tid: 5, wh_plus, egress */
57 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
61 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
65 /* act_tid: 6, wh_plus, egress */
67 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
71 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
77 struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_act_tbl_list[] = {
78 { /* act_tid: 1, wh_plus, table: shared_mirror_record.rd */
79 .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
80 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
82 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
83 .direction = TF_DIR_RX,
87 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
90 .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
91 .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
92 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
93 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
95 .blob_key_bit_size = 1,
101 { /* act_tid: 1, wh_plus, table: int_flow_counter_tbl.0 */
102 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
103 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
105 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
106 .direction = TF_DIR_RX,
109 .cond_false_goto = 1,
110 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
111 .cond_start_idx = 10,
113 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
114 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
115 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
116 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
117 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
118 .result_start_idx = 0,
119 .result_bit_size = 64,
120 .result_num_fields = 1
122 { /* act_tid: 1, wh_plus, table: int_vtag_encap_record.0 */
123 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
124 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
126 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
127 .direction = TF_DIR_RX,
130 .cond_false_goto = 1,
131 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
132 .cond_start_idx = 11,
134 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
135 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
136 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
137 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
138 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
139 .result_start_idx = 1,
140 .result_bit_size = 0,
141 .result_num_fields = 0,
142 .encap_num_fields = 12
144 { /* act_tid: 1, wh_plus, table: int_full_act_record.0 */
145 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
146 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
148 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
149 .direction = TF_DIR_RX,
152 .cond_false_goto = 1,
153 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
154 .cond_start_idx = 12,
156 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
157 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
158 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
159 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
160 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
161 .result_start_idx = 13,
162 .result_bit_size = 128,
163 .result_num_fields = 26,
164 .encap_num_fields = 0
166 { /* act_tid: 1, wh_plus, table: ext_full_act_record.0 */
167 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
168 .resource_type = TF_TBL_TYPE_EXT,
170 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
171 .direction = TF_DIR_RX,
174 .cond_false_goto = 0,
175 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
176 .cond_start_idx = 13,
178 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
179 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
180 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
181 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
182 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
183 .result_start_idx = 39,
184 .result_bit_size = 128,
185 .result_num_fields = 26,
186 .encap_num_fields = 12
188 { /* act_tid: 2, wh_plus, table: control.0 */
189 .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
190 .direction = TF_DIR_RX,
193 .cond_false_goto = 1,
194 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
195 .cond_start_idx = 14,
197 .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
198 .fdb_operand = BNXT_ULP_RF_IDX_RID,
199 .byte_order = BNXT_ULP_BYTE_ORDER_LE
201 { /* act_tid: 2, wh_plus, table: mirror_tbl.alloc */
202 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
203 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
205 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
206 .direction = TF_DIR_RX,
209 .cond_false_goto = 1,
210 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
211 .cond_start_idx = 14,
213 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
214 .tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
215 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
216 .fdb_operand = BNXT_ULP_RF_IDX_RID,
217 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
218 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
219 .result_start_idx = 77,
220 .result_bit_size = 32,
221 .result_num_fields = 6
223 { /* act_tid: 2, wh_plus, table: int_flow_counter_tbl.0 */
224 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
225 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
227 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
228 .direction = TF_DIR_RX,
231 .cond_false_goto = 1,
232 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
233 .cond_start_idx = 14,
235 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
236 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
237 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
238 .fdb_operand = BNXT_ULP_RF_IDX_RID,
239 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
240 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
241 .result_start_idx = 83,
242 .result_bit_size = 64,
243 .result_num_fields = 1
245 { /* act_tid: 2, wh_plus, table: int_full_act_record.0 */
246 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
247 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
249 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
250 .direction = TF_DIR_RX,
253 .cond_false_goto = 1,
254 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
255 .cond_start_idx = 15,
257 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
258 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
259 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
260 .fdb_operand = BNXT_ULP_RF_IDX_RID,
261 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
262 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
263 .result_start_idx = 84,
264 .result_bit_size = 128,
265 .result_num_fields = 26,
266 .encap_num_fields = 0
268 { /* act_tid: 2, wh_plus, table: ext_full_act_record.0 */
269 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
270 .resource_type = TF_TBL_TYPE_EXT,
272 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
273 .direction = TF_DIR_RX,
276 .cond_false_goto = 1,
277 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
278 .cond_start_idx = 15,
280 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
281 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
282 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
283 .fdb_operand = BNXT_ULP_RF_IDX_RID,
284 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
285 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
286 .result_start_idx = 110,
287 .result_bit_size = 128,
288 .result_num_fields = 26,
289 .encap_num_fields = 12
291 { /* act_tid: 2, wh_plus, table: mirror_tbl.wr */
292 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
293 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
295 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
296 .direction = TF_DIR_RX,
299 .cond_false_goto = 1,
300 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
301 .cond_start_idx = 15,
303 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
304 .tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
305 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
306 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
307 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
308 .result_start_idx = 148,
309 .result_bit_size = 32,
310 .result_num_fields = 6
312 { /* act_tid: 2, wh_plus, table: shared_mirror_record.wr */
313 .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
314 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
316 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
317 .direction = TF_DIR_RX,
320 .cond_false_goto = 0,
321 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
322 .cond_start_idx = 15,
324 .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
325 .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
326 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
327 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
329 .blob_key_bit_size = 1,
332 .result_start_idx = 154,
333 .result_bit_size = 34,
334 .result_num_fields = 2
336 { /* act_tid: 3, wh_plus, table: int_flow_counter_tbl.0 */
337 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
338 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
340 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
341 .direction = TF_DIR_RX,
344 .cond_false_goto = 1,
345 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
346 .cond_start_idx = 15,
348 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
349 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
350 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
351 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
352 .result_start_idx = 156,
353 .result_bit_size = 64,
354 .result_num_fields = 1
356 { /* act_tid: 3, wh_plus, table: act_modify_ipv4_src.0 */
357 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
358 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
360 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
361 .direction = TF_DIR_RX,
364 .cond_false_goto = 1,
365 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
366 .cond_start_idx = 16,
368 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
369 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0,
370 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
371 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
372 .result_start_idx = 157,
373 .result_bit_size = 32,
374 .result_num_fields = 1
376 { /* act_tid: 3, wh_plus, table: act_modify_ipv4_dst.0 */
377 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
378 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
380 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
381 .direction = TF_DIR_RX,
384 .cond_false_goto = 1,
385 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
386 .cond_start_idx = 17,
388 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
389 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0,
390 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
391 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
392 .result_start_idx = 158,
393 .result_bit_size = 32,
394 .result_num_fields = 1
396 { /* act_tid: 3, wh_plus, table: int_encap_mac_record.0 */
397 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
398 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
400 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
401 .direction = TF_DIR_RX,
404 .cond_false_goto = 1,
405 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
406 .cond_start_idx = 18,
408 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
409 .tbl_operand = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR,
410 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
411 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
412 .result_start_idx = 159,
413 .result_bit_size = 0,
414 .result_num_fields = 0,
415 .encap_num_fields = 12
417 { /* act_tid: 3, wh_plus, table: int_full_act_record.0 */
418 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
419 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
421 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
422 .direction = TF_DIR_RX,
425 .cond_false_goto = 1,
426 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
427 .cond_start_idx = 18,
429 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
430 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
431 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
432 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
433 .result_start_idx = 171,
434 .result_bit_size = 128,
435 .result_num_fields = 26
437 { /* act_tid: 3, wh_plus, table: ext_full_act_record.0 */
438 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
439 .resource_type = TF_TBL_TYPE_EXT,
441 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
442 .direction = TF_DIR_RX,
445 .cond_false_goto = 0,
446 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
447 .cond_start_idx = 19,
449 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
450 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
451 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
452 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
453 .result_start_idx = 197,
454 .result_bit_size = 128,
455 .result_num_fields = 26,
456 .encap_num_fields = 12
458 { /* act_tid: 4, wh_plus, table: int_flow_counter_tbl.0 */
459 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
460 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
462 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
463 .direction = TF_DIR_TX,
466 .cond_false_goto = 1,
467 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
468 .cond_start_idx = 20,
470 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
471 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
472 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
473 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
474 .result_start_idx = 235,
475 .result_bit_size = 64,
476 .result_num_fields = 1
478 { /* act_tid: 4, wh_plus, table: int_vtag_encap_record.0 */
479 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
480 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
482 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
483 .direction = TF_DIR_TX,
486 .cond_false_goto = 1,
487 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
488 .cond_start_idx = 21,
490 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
491 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
492 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
493 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
494 .result_start_idx = 236,
495 .result_bit_size = 0,
496 .result_num_fields = 0,
497 .encap_num_fields = 12
499 { /* act_tid: 4, wh_plus, table: int_full_act_record.0 */
500 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
501 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
503 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
504 .direction = TF_DIR_TX,
507 .cond_false_goto = 1,
508 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
509 .cond_start_idx = 23,
511 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
512 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
513 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
514 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
515 .result_start_idx = 248,
516 .result_bit_size = 128,
517 .result_num_fields = 26
519 { /* act_tid: 4, wh_plus, table: ext_full_act_record.no_tag */
520 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
521 .resource_type = TF_TBL_TYPE_EXT,
523 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
524 .direction = TF_DIR_TX,
527 .cond_false_goto = 1,
528 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
529 .cond_start_idx = 24,
531 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
532 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
533 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
534 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
535 .result_start_idx = 274,
536 .result_bit_size = 128,
537 .result_num_fields = 26,
538 .encap_num_fields = 12
540 { /* act_tid: 4, wh_plus, table: ext_full_act_record.one_tag */
541 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
542 .resource_type = TF_TBL_TYPE_EXT,
544 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
545 .direction = TF_DIR_TX,
548 .cond_false_goto = 0,
549 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
550 .cond_start_idx = 26,
552 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
553 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
554 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
555 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
556 .result_start_idx = 312,
557 .result_bit_size = 128,
558 .result_num_fields = 26,
559 .encap_num_fields = 12
561 { /* act_tid: 5, wh_plus, table: int_flow_counter_tbl.0 */
562 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
563 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
565 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
566 .direction = TF_DIR_TX,
569 .cond_false_goto = 1,
570 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
571 .cond_start_idx = 28,
573 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
574 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
575 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
576 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
577 .result_start_idx = 350,
578 .result_bit_size = 64,
579 .result_num_fields = 1
581 { /* act_tid: 5, wh_plus, table: act_modify_ipv4_src.0 */
582 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
583 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
585 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
586 .direction = TF_DIR_TX,
589 .cond_false_goto = 1,
590 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
591 .cond_start_idx = 29,
593 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
594 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0,
595 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
596 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
597 .result_start_idx = 351,
598 .result_bit_size = 32,
599 .result_num_fields = 1
601 { /* act_tid: 5, wh_plus, table: act_modify_ipv4_dst.0 */
602 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
603 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
605 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
606 .direction = TF_DIR_TX,
609 .cond_false_goto = 1,
610 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
611 .cond_start_idx = 30,
613 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
614 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0,
615 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
616 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
617 .result_start_idx = 352,
618 .result_bit_size = 32,
619 .result_num_fields = 1
621 { /* act_tid: 5, wh_plus, table: int_encap_mac_record.dummy */
622 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
623 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
625 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
626 .direction = TF_DIR_TX,
629 .cond_false_goto = 1,
630 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
631 .cond_start_idx = 31,
633 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
634 .tbl_operand = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR,
635 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
636 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
637 .result_start_idx = 353,
638 .result_bit_size = 0,
639 .result_num_fields = 0,
640 .encap_num_fields = 12
642 { /* act_tid: 5, wh_plus, table: int_full_act_record.0 */
643 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
644 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
646 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
647 .direction = TF_DIR_TX,
650 .cond_false_goto = 1,
651 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
652 .cond_start_idx = 31,
654 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
655 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
656 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
657 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
658 .result_start_idx = 365,
659 .result_bit_size = 128,
660 .result_num_fields = 26
662 { /* act_tid: 5, wh_plus, table: ext_full_act_record.0 */
663 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
664 .resource_type = TF_TBL_TYPE_EXT,
666 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
667 .direction = TF_DIR_TX,
670 .cond_false_goto = 0,
671 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
672 .cond_start_idx = 32,
674 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
675 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
676 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
677 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
678 .result_start_idx = 391,
679 .result_bit_size = 128,
680 .result_num_fields = 26,
681 .encap_num_fields = 12
683 { /* act_tid: 6, wh_plus, table: int_flow_counter_tbl.0 */
684 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
685 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
687 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
688 .direction = TF_DIR_TX,
691 .cond_false_goto = 1,
692 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
693 .cond_start_idx = 33,
695 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
696 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
697 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
698 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
699 .result_start_idx = 429,
700 .result_bit_size = 64,
701 .result_num_fields = 1
703 { /* act_tid: 6, wh_plus, table: sp_smac_ipv4.0 */
704 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
705 .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
707 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
708 .direction = TF_DIR_TX,
711 .cond_false_goto = 1,
712 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
713 .cond_start_idx = 34,
715 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
716 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_SP_PTR,
717 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
718 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
719 .result_start_idx = 430,
720 .result_bit_size = 0,
721 .result_num_fields = 0,
722 .encap_num_fields = 3
724 { /* act_tid: 6, wh_plus, table: sp_smac_ipv6.0 */
725 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
726 .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV6,
728 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
729 .direction = TF_DIR_TX,
732 .cond_false_goto = 1,
733 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
734 .cond_start_idx = 35,
736 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
737 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_SP_PTR,
738 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
739 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
740 .result_start_idx = 433,
741 .result_bit_size = 0,
742 .result_num_fields = 0,
743 .encap_num_fields = 3
745 { /* act_tid: 6, wh_plus, table: int_tun_encap_record.0 */
746 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
747 .resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
749 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
750 .direction = TF_DIR_TX,
753 .cond_false_goto = 1,
754 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
755 .cond_start_idx = 36,
757 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
758 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
759 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
760 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
761 .result_start_idx = 436,
762 .result_bit_size = 0,
763 .result_num_fields = 0,
764 .encap_num_fields = 12
766 { /* act_tid: 6, wh_plus, table: int_full_act_record.0 */
767 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
768 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
770 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
771 .direction = TF_DIR_TX,
774 .cond_false_goto = 1,
775 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
776 .cond_start_idx = 37,
778 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
779 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
780 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
781 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
782 .result_start_idx = 448,
783 .result_bit_size = 128,
784 .result_num_fields = 26
786 { /* act_tid: 6, wh_plus, table: ext_full_act_record_vxlan.0 */
787 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
788 .resource_type = TF_TBL_TYPE_EXT,
790 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
791 .direction = TF_DIR_TX,
794 .cond_false_goto = 0,
795 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
796 .cond_start_idx = 38,
798 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
799 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
800 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
801 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
802 .result_start_idx = 474,
803 .result_bit_size = 128,
804 .result_num_fields = 26,
805 .encap_num_fields = 12
809 struct bnxt_ulp_mapper_cond_info ulp_wh_plus_act_cond_list[] = {
810 /* cond_reject: wh_plus, act_tid: 1 */
812 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
813 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_SRC
816 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
817 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV6_SRC
820 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
821 .cond_operand = BNXT_ULP_ACT_BIT_SET_TP_SRC
824 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
825 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_DST
828 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
829 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV6_DST
832 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
833 .cond_operand = BNXT_ULP_ACT_BIT_SET_TP_DST
836 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
837 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
840 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
841 .cond_operand = BNXT_ULP_ACT_BIT_SET_VLAN_VID
844 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
845 .cond_operand = BNXT_ULP_ACT_BIT_SET_VLAN_PCP
847 /* cond_execute: act_tid: 1, shared_mirror_record.rd */
849 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
850 .cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
852 /* cond_execute: act_tid: 1, int_flow_counter_tbl.0 */
854 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
855 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
857 /* cond_execute: act_tid: 1, int_vtag_encap_record.0 */
859 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
860 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
862 /* cond_execute: act_tid: 1, int_full_act_record.0 */
864 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET,
866 /* cond_execute: act_tid: 1, ext_full_act_record.0 */
868 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET,
870 /* cond_execute: act_tid: 2, int_flow_counter_tbl.0 */
872 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
873 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
875 /* cond_execute: act_tid: 3, int_flow_counter_tbl.0 */
877 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
878 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
880 /* cond_execute: act_tid: 3, act_modify_ipv4_src.0 */
882 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
883 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_SRC
885 /* cond_execute: act_tid: 3, act_modify_ipv4_dst.0 */
887 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
888 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_DST
890 /* cond_execute: act_tid: 3, int_full_act_record.0 */
892 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET,
894 /* cond_execute: act_tid: 3, ext_full_act_record.0 */
896 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET,
898 /* cond_execute: act_tid: 4, int_flow_counter_tbl.0 */
900 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
901 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
903 /* cond_execute: act_tid: 4, int_vtag_encap_record.0 */
905 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET,
908 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
909 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
911 /* cond_execute: act_tid: 4, int_full_act_record.0 */
913 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET,
915 /* cond_execute: act_tid: 4, ext_full_act_record.no_tag */
917 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET,
920 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
921 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
923 /* cond_execute: act_tid: 4, ext_full_act_record.one_tag */
925 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET,
928 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
929 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
931 /* cond_execute: act_tid: 5, int_flow_counter_tbl.0 */
933 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
934 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
936 /* cond_execute: act_tid: 5, act_modify_ipv4_src.0 */
938 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
939 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_SRC
941 /* cond_execute: act_tid: 5, act_modify_ipv4_dst.0 */
943 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
944 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_DST
946 /* cond_execute: act_tid: 5, int_full_act_record.0 */
948 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET,
950 /* cond_execute: act_tid: 5, ext_full_act_record.0 */
952 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET,
954 /* cond_execute: act_tid: 6, int_flow_counter_tbl.0 */
956 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
957 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
959 /* cond_execute: act_tid: 6, sp_smac_ipv4.0 */
961 .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
962 .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
964 /* cond_execute: act_tid: 6, sp_smac_ipv6.0 */
966 .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
967 .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG
969 /* cond_execute: act_tid: 6, int_tun_encap_record.0 */
971 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET,
973 /* cond_execute: act_tid: 6, int_full_act_record.0 */
975 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET,
977 /* cond_execute: act_tid: 6, ext_full_act_record_vxlan.0 */
979 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET,
983 struct bnxt_ulp_mapper_key_info ulp_wh_plus_act_key_info_list[] = {
984 /* act_tid: 1, wh_plus, table: shared_mirror_record.rd */
987 .description = "shared_index",
989 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
990 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
991 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
996 .description = "shared_index",
998 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
999 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1000 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1002 (BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
1003 BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
1006 /* act_tid: 2, wh_plus, table: shared_mirror_record.wr */
1008 .field_info_mask = {
1009 .description = "shared_index",
1010 .field_bit_size = 1,
1011 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1012 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1013 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1017 .field_info_spec = {
1018 .description = "shared_index",
1019 .field_bit_size = 1,
1020 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1021 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1022 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1024 (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
1025 BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
1030 struct bnxt_ulp_mapper_field_info ulp_wh_plus_act_result_field_list[] = {
1031 /* act_tid: 1, wh_plus, table: int_flow_counter_tbl.0 */
1033 .description = "count",
1034 .field_bit_size = 64,
1035 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1036 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1037 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1039 /* act_tid: 1, wh_plus, table: int_vtag_encap_record.0 */
1041 .description = "ecv_tun_type",
1042 .field_bit_size = 3,
1043 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1044 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1045 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1048 .description = "ecv_l4_type",
1049 .field_bit_size = 3,
1050 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1051 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1052 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1055 .description = "ecv_l3_type",
1056 .field_bit_size = 3,
1057 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1058 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1059 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1062 .description = "ecv_l2_en",
1063 .field_bit_size = 1,
1064 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1065 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1066 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1069 .description = "ecv_vtag_type",
1070 .field_bit_size = 4,
1071 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1072 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1073 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1075 ULP_WP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
1078 .description = "ecv_custom_en",
1079 .field_bit_size = 1,
1080 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1081 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1082 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1085 .description = "ecv_valid",
1086 .field_bit_size = 1,
1087 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1088 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1089 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1094 .description = "vtag_tpid",
1095 .field_bit_size = 16,
1096 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1097 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1098 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1100 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
1101 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff}
1104 .description = "vtag_vid",
1105 .field_bit_size = 12,
1106 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1107 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1108 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1110 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
1111 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff}
1114 .description = "vtag_de",
1115 .field_bit_size = 1,
1116 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1117 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1118 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1121 .description = "vtag_pcp",
1122 .field_bit_size = 3,
1123 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1124 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1125 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1127 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
1128 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
1131 .description = "spare",
1132 .field_bit_size = 80,
1133 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1134 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1135 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1137 /* act_tid: 1, wh_plus, table: int_full_act_record.0 */
1139 .description = "flow_cntr_ptr",
1140 .field_bit_size = 14,
1141 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1142 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1143 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1145 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1146 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
1149 .description = "age_enable",
1150 .field_bit_size = 1,
1151 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1152 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1153 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1156 .description = "agg_cntr_en",
1157 .field_bit_size = 1,
1158 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1159 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1160 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1163 .description = "rate_cntr_en",
1164 .field_bit_size = 1,
1165 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1166 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1167 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1170 .description = "flow_cntr_en",
1171 .field_bit_size = 1,
1172 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1173 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1174 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1176 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
1177 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
1178 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
1179 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
1180 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
1181 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
1182 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
1183 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
1186 .description = "tcpflags_key",
1187 .field_bit_size = 8,
1188 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1189 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1190 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1193 .description = "tcpflags_mir",
1194 .field_bit_size = 1,
1195 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1196 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1197 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1200 .description = "tcpflags_match",
1201 .field_bit_size = 1,
1202 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1203 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1204 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1207 .description = "encap_ptr",
1208 .field_bit_size = 11,
1209 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1210 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1211 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1213 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
1214 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
1217 .description = "dst_ip_ptr",
1218 .field_bit_size = 10,
1219 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1220 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1221 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1223 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
1224 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
1227 .description = "tcp_dst_port",
1228 .field_bit_size = 16,
1229 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1230 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1232 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
1233 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
1234 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
1235 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
1236 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
1237 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
1238 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
1239 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
1240 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1242 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
1243 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
1244 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
1247 .description = "src_ip_ptr",
1248 .field_bit_size = 10,
1249 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1250 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1251 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1253 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
1254 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
1257 .description = "tcp_src_port",
1258 .field_bit_size = 16,
1259 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1260 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1262 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
1263 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
1264 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
1265 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
1266 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
1267 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
1268 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
1269 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
1270 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1272 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
1273 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
1274 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
1277 .description = "meter_id",
1278 .field_bit_size = 10,
1279 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1280 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1281 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1284 .description = "l3_rdir",
1285 .field_bit_size = 1,
1286 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1287 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1288 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1291 .description = "tl3_rdir",
1292 .field_bit_size = 1,
1293 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1294 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1295 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1298 .description = "l3_ttl_dec",
1299 .field_bit_size = 1,
1300 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1301 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1302 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1304 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
1305 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
1308 .description = "tl3_ttl_dec",
1309 .field_bit_size = 1,
1310 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1311 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1312 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1314 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
1315 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
1318 .description = "decap_func",
1319 .field_bit_size = 4,
1320 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1321 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1323 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 56) & 0xff,
1324 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 48) & 0xff,
1325 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 40) & 0xff,
1326 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 32) & 0xff,
1327 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 24) & 0xff,
1328 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 16) & 0xff,
1329 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 8) & 0xff,
1330 (uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP & 0xff},
1331 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1333 ULP_WP_SYM_DECAP_FUNC_THRU_TUN},
1334 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
1336 ULP_WP_SYM_DECAP_FUNC_NONE}
1339 .description = "vnic_or_vport",
1340 .field_bit_size = 12,
1341 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1342 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1343 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1345 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1346 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
1349 .description = "pop_vlan",
1350 .field_bit_size = 1,
1351 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1352 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1353 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1355 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
1356 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
1357 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
1358 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
1359 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
1360 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
1361 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
1362 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff}
1365 .description = "meter",
1366 .field_bit_size = 1,
1367 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1368 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1369 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1372 .description = "mirror",
1373 .field_bit_size = 2,
1374 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1375 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1377 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
1378 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
1379 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
1380 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
1381 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
1382 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
1383 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
1384 (uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
1385 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1387 (BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
1388 BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
1389 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
1392 .description = "drop",
1393 .field_bit_size = 1,
1394 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1395 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1396 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1398 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
1399 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
1400 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
1401 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
1402 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
1403 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
1404 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
1405 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
1408 .description = "hit",
1409 .field_bit_size = 1,
1410 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1411 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1412 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1415 .description = "type",
1416 .field_bit_size = 1,
1417 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1418 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1419 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1421 /* act_tid: 1, wh_plus, table: ext_full_act_record.0 */
1423 .description = "flow_cntr_ptr",
1424 .field_bit_size = 14,
1425 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1426 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1427 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1429 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1430 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
1433 .description = "age_enable",
1434 .field_bit_size = 1,
1435 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1436 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1437 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1440 .description = "agg_cntr_en",
1441 .field_bit_size = 1,
1442 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1443 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1444 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1447 .description = "rate_cntr_en",
1448 .field_bit_size = 1,
1449 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1450 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1451 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1454 .description = "flow_cntr_en",
1455 .field_bit_size = 1,
1456 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1457 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1458 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1460 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
1461 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
1462 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
1463 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
1464 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
1465 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
1466 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
1467 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
1470 .description = "flow_cntr_ext",
1471 .field_bit_size = 1,
1472 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1473 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1474 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1477 .description = "tcpflags_key",
1478 .field_bit_size = 8,
1479 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1480 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1481 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1484 .description = "tcpflags_mir",
1485 .field_bit_size = 1,
1486 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1487 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1488 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1491 .description = "tcpflags_match",
1492 .field_bit_size = 1,
1493 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1494 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1495 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1498 .description = "encap_ptr",
1499 .field_bit_size = 11,
1500 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1501 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1502 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1505 .description = "encap_rec_int",
1506 .field_bit_size = 1,
1507 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1508 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1509 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1512 .description = "dst_ip_ptr",
1513 .field_bit_size = 10,
1514 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1515 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1516 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1518 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
1519 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
1522 .description = "tcp_dst_port",
1523 .field_bit_size = 16,
1524 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1525 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1527 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
1528 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
1529 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
1530 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
1531 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
1532 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
1533 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
1534 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
1535 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1537 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
1538 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
1539 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
1542 .description = "src_ip_ptr",
1543 .field_bit_size = 10,
1544 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1545 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1546 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1548 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
1549 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
1552 .description = "tcp_src_port",
1553 .field_bit_size = 16,
1554 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1555 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1557 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
1558 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
1559 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
1560 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
1561 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
1562 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
1563 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
1564 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
1565 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1567 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
1568 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
1569 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
1572 .description = "meter_id",
1573 .field_bit_size = 10,
1574 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1575 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1576 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1579 .description = "l3_rdir",
1580 .field_bit_size = 1,
1581 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1582 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1583 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1586 .description = "tl3_rdir",
1587 .field_bit_size = 1,
1588 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1589 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1590 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1593 .description = "l3_ttl_dec",
1594 .field_bit_size = 1,
1595 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1596 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1597 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1599 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
1600 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
1603 .description = "tl3_ttl_dec",
1604 .field_bit_size = 1,
1605 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1606 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1607 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1609 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
1610 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
1613 .description = "decap_func",
1614 .field_bit_size = 4,
1615 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1616 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1618 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 56) & 0xff,
1619 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 48) & 0xff,
1620 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 40) & 0xff,
1621 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 32) & 0xff,
1622 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 24) & 0xff,
1623 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 16) & 0xff,
1624 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 8) & 0xff,
1625 (uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP & 0xff},
1626 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1628 ULP_WP_SYM_DECAP_FUNC_THRU_TUN},
1629 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
1631 ULP_WP_SYM_DECAP_FUNC_NONE}
1634 .description = "vnic_or_vport",
1635 .field_bit_size = 12,
1636 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1637 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1638 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1640 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1641 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
1644 .description = "pop_vlan",
1645 .field_bit_size = 1,
1646 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1647 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1648 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1650 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
1651 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
1652 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
1653 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
1654 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
1655 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
1656 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
1657 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff}
1660 .description = "meter",
1661 .field_bit_size = 1,
1662 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1663 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1664 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1667 .description = "mirror",
1668 .field_bit_size = 2,
1669 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1670 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1671 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1673 (BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
1674 BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff}
1677 .description = "drop",
1678 .field_bit_size = 1,
1679 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1680 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1681 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1683 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
1684 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
1685 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
1686 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
1687 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
1688 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
1689 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
1690 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
1693 .description = "ecv_tun_type",
1694 .field_bit_size = 3,
1695 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1696 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1697 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1700 .description = "ecv_l4_type",
1701 .field_bit_size = 3,
1702 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1703 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1704 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1707 .description = "ecv_l3_type",
1708 .field_bit_size = 3,
1709 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1710 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1711 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1714 .description = "ecv_l2_en",
1715 .field_bit_size = 1,
1716 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1717 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1718 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1720 ULP_WP_SYM_ECV_L2_EN_YES}
1723 .description = "ecv_vtag_type",
1724 .field_bit_size = 4,
1725 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1726 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1727 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1730 .description = "ecv_custom_en",
1731 .field_bit_size = 1,
1732 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1733 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1734 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1737 .description = "ecv_valid",
1738 .field_bit_size = 1,
1739 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1740 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1741 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1744 .description = "vtag_tpid",
1745 .field_bit_size = 16,
1746 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1747 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1748 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1751 .description = "vtag_vid",
1752 .field_bit_size = 12,
1753 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1754 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1755 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1758 .description = "vtag_de",
1759 .field_bit_size = 1,
1760 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1761 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1762 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1765 .description = "vtag_pcp",
1766 .field_bit_size = 3,
1767 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1768 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1769 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1772 .description = "spare",
1773 .field_bit_size = 0,
1774 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1775 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1776 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1778 /* act_tid: 2, wh_plus, table: mirror_tbl.alloc */
1780 .description = "act_rec_ptr",
1781 .field_bit_size = 16,
1782 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1783 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1784 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1787 .description = "enable",
1788 .field_bit_size = 1,
1789 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1790 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1791 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1796 .description = "copy",
1797 .field_bit_size = 1,
1798 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1799 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1800 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1803 .description = "ign_drop",
1804 .field_bit_size = 1,
1805 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1806 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1807 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1810 .description = "reserved",
1811 .field_bit_size = 2,
1812 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1813 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1814 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1817 .description = "sp_ptr",
1818 .field_bit_size = 11,
1819 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1820 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1821 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1823 /* act_tid: 2, wh_plus, table: int_flow_counter_tbl.0 */
1825 .description = "count",
1826 .field_bit_size = 64,
1827 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1828 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1829 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1831 /* act_tid: 2, wh_plus, table: int_full_act_record.0 */
1833 .description = "flow_cntr_ptr",
1834 .field_bit_size = 14,
1835 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1836 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1837 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1839 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1840 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
1843 .description = "age_enable",
1844 .field_bit_size = 1,
1845 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1846 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1847 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1850 .description = "agg_cntr_en",
1851 .field_bit_size = 1,
1852 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1853 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1854 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1857 .description = "rate_cntr_en",
1858 .field_bit_size = 1,
1859 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1860 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1861 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1864 .description = "flow_cntr_en",
1865 .field_bit_size = 1,
1866 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1867 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1868 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1870 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
1871 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
1872 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
1873 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
1874 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
1875 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
1876 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
1877 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
1880 .description = "tcpflags_key",
1881 .field_bit_size = 8,
1882 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1883 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1884 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1887 .description = "tcpflags_mir",
1888 .field_bit_size = 1,
1889 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1890 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1891 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1894 .description = "tcpflags_match",
1895 .field_bit_size = 1,
1896 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1897 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1898 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1901 .description = "encap_ptr",
1902 .field_bit_size = 11,
1903 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1904 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1905 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1908 .description = "dst_ip_ptr",
1909 .field_bit_size = 10,
1910 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1911 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1912 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1915 .description = "tcp_dst_port",
1916 .field_bit_size = 16,
1917 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1918 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1919 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1922 .description = "src_ip_ptr",
1923 .field_bit_size = 10,
1924 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1925 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1926 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1929 .description = "tcp_src_port",
1930 .field_bit_size = 16,
1931 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1932 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1933 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1936 .description = "meter_id",
1937 .field_bit_size = 10,
1938 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1939 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1940 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1943 .description = "l3_rdir",
1944 .field_bit_size = 1,
1945 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1946 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1947 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1950 .description = "tl3_rdir",
1951 .field_bit_size = 1,
1952 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1953 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1954 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1957 .description = "l3_ttl_dec",
1958 .field_bit_size = 1,
1959 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1960 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1961 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1964 .description = "tl3_ttl_dec",
1965 .field_bit_size = 1,
1966 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1967 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1968 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1971 .description = "decap_func",
1972 .field_bit_size = 4,
1973 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1974 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1975 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1978 .description = "vnic_or_vport",
1979 .field_bit_size = 12,
1980 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1981 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1982 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1984 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1985 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
1988 .description = "pop_vlan",
1989 .field_bit_size = 1,
1990 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1991 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1992 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1995 .description = "meter",
1996 .field_bit_size = 1,
1997 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1998 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1999 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2002 .description = "mirror",
2003 .field_bit_size = 2,
2004 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_PLUS_CONST,
2005 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2007 (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
2008 BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff},
2009 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2014 .description = "drop",
2015 .field_bit_size = 1,
2016 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2017 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2018 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2021 .description = "hit",
2022 .field_bit_size = 1,
2023 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2024 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2025 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2028 .description = "type",
2029 .field_bit_size = 1,
2030 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2031 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2032 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2034 /* act_tid: 2, wh_plus, table: ext_full_act_record.0 */
2036 .description = "flow_cntr_ptr",
2037 .field_bit_size = 14,
2038 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2039 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2040 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2042 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2043 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
2046 .description = "age_enable",
2047 .field_bit_size = 1,
2048 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2049 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2050 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2053 .description = "agg_cntr_en",
2054 .field_bit_size = 1,
2055 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2056 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2057 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2060 .description = "rate_cntr_en",
2061 .field_bit_size = 1,
2062 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2063 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2064 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2067 .description = "flow_cntr_en",
2068 .field_bit_size = 1,
2069 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2070 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2071 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2073 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
2074 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
2075 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
2076 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
2077 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
2078 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
2079 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
2080 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
2083 .description = "flow_cntr_ext",
2084 .field_bit_size = 1,
2085 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2086 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2087 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2090 .description = "tcpflags_key",
2091 .field_bit_size = 8,
2092 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2093 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2094 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2097 .description = "tcpflags_mir",
2098 .field_bit_size = 1,
2099 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2100 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2101 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2104 .description = "tcpflags_match",
2105 .field_bit_size = 1,
2106 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2107 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2108 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2111 .description = "encap_ptr",
2112 .field_bit_size = 11,
2113 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2114 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2115 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2118 .description = "encap_rec_int",
2119 .field_bit_size = 1,
2120 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2121 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2122 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2125 .description = "dst_ip_ptr",
2126 .field_bit_size = 10,
2127 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2128 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2129 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2132 .description = "tcp_dst_port",
2133 .field_bit_size = 16,
2134 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2135 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2136 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2139 .description = "src_ip_ptr",
2140 .field_bit_size = 10,
2141 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2142 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2143 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2146 .description = "tcp_src_port",
2147 .field_bit_size = 16,
2148 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2149 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2150 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2153 .description = "meter_id",
2154 .field_bit_size = 10,
2155 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2156 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2157 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2160 .description = "l3_rdir",
2161 .field_bit_size = 1,
2162 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2163 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2164 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2167 .description = "tl3_rdir",
2168 .field_bit_size = 1,
2169 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2170 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2171 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2174 .description = "l3_ttl_dec",
2175 .field_bit_size = 1,
2176 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2177 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2178 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2181 .description = "tl3_ttl_dec",
2182 .field_bit_size = 1,
2183 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2184 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2185 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2188 .description = "decap_func",
2189 .field_bit_size = 4,
2190 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2191 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2192 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2195 .description = "vnic_or_vport",
2196 .field_bit_size = 12,
2197 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2198 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2199 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2201 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
2202 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
2205 .description = "pop_vlan",
2206 .field_bit_size = 1,
2207 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2208 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2209 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2211 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
2212 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
2213 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
2214 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
2215 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
2216 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
2217 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
2218 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff}
2221 .description = "meter",
2222 .field_bit_size = 1,
2223 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2224 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2225 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2228 .description = "mirror",
2229 .field_bit_size = 2,
2230 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_PLUS_CONST,
2231 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2233 (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
2234 BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff},
2235 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2240 .description = "drop",
2241 .field_bit_size = 1,
2242 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2243 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2244 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2247 .description = "ecv_tun_type",
2248 .field_bit_size = 3,
2249 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2250 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2251 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2254 .description = "ecv_l4_type",
2255 .field_bit_size = 3,
2256 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2257 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2258 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2261 .description = "ecv_l3_type",
2262 .field_bit_size = 3,
2263 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2264 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2265 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2268 .description = "ecv_l2_en",
2269 .field_bit_size = 1,
2270 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2271 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2272 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2274 ULP_WP_SYM_ECV_L2_EN_YES}
2277 .description = "ecv_vtag_type",
2278 .field_bit_size = 4,
2279 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2280 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2281 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2284 .description = "ecv_custom_en",
2285 .field_bit_size = 1,
2286 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2287 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2288 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2291 .description = "ecv_valid",
2292 .field_bit_size = 1,
2293 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2294 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2295 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2298 .description = "vtag_tpid",
2299 .field_bit_size = 16,
2300 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2301 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2302 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2305 .description = "vtag_vid",
2306 .field_bit_size = 12,
2307 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2308 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2309 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2312 .description = "vtag_de",
2313 .field_bit_size = 1,
2314 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2315 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2316 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2319 .description = "vtag_pcp",
2320 .field_bit_size = 3,
2321 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2322 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2323 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2326 .description = "spare",
2327 .field_bit_size = 0,
2328 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2329 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2330 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2332 /* act_tid: 2, wh_plus, table: mirror_tbl.wr */
2334 .description = "act_rec_ptr",
2335 .field_bit_size = 16,
2336 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2337 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2338 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2340 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
2341 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
2344 .description = "enable",
2345 .field_bit_size = 1,
2346 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2347 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2348 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2353 .description = "copy",
2354 .field_bit_size = 1,
2355 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2356 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2357 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2360 .description = "ign_drop",
2361 .field_bit_size = 1,
2362 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2363 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2364 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2367 .description = "reserved",
2368 .field_bit_size = 2,
2369 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2370 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2371 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2374 .description = "sp_ptr",
2375 .field_bit_size = 11,
2376 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2377 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2378 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2380 /* act_tid: 2, wh_plus, table: shared_mirror_record.wr */
2382 .description = "rid",
2383 .field_bit_size = 32,
2384 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2385 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2386 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2388 (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
2389 BNXT_ULP_RF_IDX_RID & 0xff}
2392 .description = "mirror_id",
2393 .field_bit_size = 2,
2394 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_PLUS_CONST_POST,
2395 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2397 (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
2398 BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff},
2399 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2404 /* act_tid: 3, wh_plus, table: int_flow_counter_tbl.0 */
2406 .description = "count",
2407 .field_bit_size = 64,
2408 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2409 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2410 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2412 /* act_tid: 3, wh_plus, table: act_modify_ipv4_src.0 */
2414 .description = "ipv4_addr",
2415 .field_bit_size = 32,
2416 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2417 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2418 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2420 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
2421 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff}
2423 /* act_tid: 3, wh_plus, table: act_modify_ipv4_dst.0 */
2425 .description = "ipv4_addr",
2426 .field_bit_size = 32,
2427 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2428 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2429 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2431 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
2432 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff}
2434 /* act_tid: 3, wh_plus, table: int_encap_mac_record.0 */
2436 .description = "ecv_tun_type",
2437 .field_bit_size = 3,
2438 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2439 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2440 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2443 .description = "ecv_l4_type",
2444 .field_bit_size = 3,
2445 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2446 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2447 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2450 .description = "ecv_l3_type",
2451 .field_bit_size = 3,
2452 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2453 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2454 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2457 .description = "ecv_l2_en",
2458 .field_bit_size = 1,
2459 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2460 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2461 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2463 ULP_WP_SYM_ECV_L2_EN_YES}
2466 .description = "ecv_vtag_type",
2467 .field_bit_size = 4,
2468 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2469 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2470 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2473 .description = "ecv_custom_en",
2474 .field_bit_size = 1,
2475 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2476 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2477 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2480 .description = "ecv_valid",
2481 .field_bit_size = 1,
2482 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2483 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2484 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2489 .description = "vtag_tpid",
2490 .field_bit_size = 16,
2491 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2492 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2493 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2496 .description = "vtag_vid",
2497 .field_bit_size = 12,
2498 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2499 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2500 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2503 .description = "vtag_de",
2504 .field_bit_size = 1,
2505 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2506 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2507 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2510 .description = "vtag_pcp",
2511 .field_bit_size = 3,
2512 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2513 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2514 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2517 .description = "spare",
2518 .field_bit_size = 80,
2519 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2520 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2521 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2523 /* act_tid: 3, wh_plus, table: int_full_act_record.0 */
2525 .description = "flow_cntr_ptr",
2526 .field_bit_size = 14,
2527 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2528 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2529 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2531 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2532 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
2535 .description = "age_enable",
2536 .field_bit_size = 1,
2537 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2538 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2539 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2542 .description = "agg_cntr_en",
2543 .field_bit_size = 1,
2544 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2545 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2546 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2549 .description = "rate_cntr_en",
2550 .field_bit_size = 1,
2551 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2552 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2553 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2556 .description = "flow_cntr_en",
2557 .field_bit_size = 1,
2558 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2559 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2560 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2562 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
2563 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
2564 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
2565 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
2566 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
2567 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
2568 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
2569 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
2572 .description = "tcpflags_key",
2573 .field_bit_size = 8,
2574 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2575 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2576 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2579 .description = "tcpflags_mir",
2580 .field_bit_size = 1,
2581 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2582 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2583 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2586 .description = "tcpflags_match",
2587 .field_bit_size = 1,
2588 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2589 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2590 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2593 .description = "encap_ptr",
2594 .field_bit_size = 11,
2595 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2596 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2597 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
2599 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff,
2600 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff}
2603 .description = "dst_ip_ptr",
2604 .field_bit_size = 10,
2605 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2606 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2607 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2609 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
2610 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
2613 .description = "tcp_dst_port",
2614 .field_bit_size = 16,
2615 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2616 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
2618 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
2619 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
2620 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
2621 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
2622 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
2623 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
2624 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
2625 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
2626 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2628 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
2629 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
2630 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
2633 .description = "src_ip_ptr",
2634 .field_bit_size = 10,
2635 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2636 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2637 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2639 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
2640 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
2643 .description = "tcp_src_port",
2644 .field_bit_size = 16,
2645 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2646 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
2648 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
2649 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
2650 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
2651 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
2652 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
2653 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
2654 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
2655 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
2656 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2658 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
2659 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
2660 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
2663 .description = "meter_id",
2664 .field_bit_size = 10,
2665 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2666 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2667 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2670 .description = "l3_rdir",
2671 .field_bit_size = 1,
2672 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2673 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2674 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2677 .description = "tl3_rdir",
2678 .field_bit_size = 1,
2679 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2680 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2681 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2684 .description = "l3_ttl_dec",
2685 .field_bit_size = 1,
2686 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2687 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2688 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2690 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
2691 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
2694 .description = "tl3_ttl_dec",
2695 .field_bit_size = 1,
2696 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2697 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2698 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2700 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
2701 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
2704 .description = "decap_func",
2705 .field_bit_size = 4,
2706 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2707 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
2709 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
2710 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
2711 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
2712 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
2713 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
2714 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
2715 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
2716 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff},
2717 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2719 ULP_WP_SYM_DECAP_FUNC_THRU_TL2},
2720 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2722 ULP_WP_SYM_DECAP_FUNC_THRU_L2}
2725 .description = "vnic_or_vport",
2726 .field_bit_size = 12,
2727 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2728 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2729 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2731 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
2732 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
2735 .description = "pop_vlan",
2736 .field_bit_size = 1,
2737 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2738 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2739 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2742 .description = "meter",
2743 .field_bit_size = 1,
2744 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2745 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2746 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2749 .description = "mirror",
2750 .field_bit_size = 2,
2751 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2752 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2753 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2756 .description = "drop",
2757 .field_bit_size = 1,
2758 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2759 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2760 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2763 .description = "hit",
2764 .field_bit_size = 1,
2765 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2766 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2767 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2770 .description = "type",
2771 .field_bit_size = 1,
2772 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2773 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2774 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2776 /* act_tid: 3, wh_plus, table: ext_full_act_record.0 */
2778 .description = "flow_cntr_ptr",
2779 .field_bit_size = 14,
2780 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2781 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2782 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2784 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2785 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
2788 .description = "age_enable",
2789 .field_bit_size = 1,
2790 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2791 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2792 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2795 .description = "agg_cntr_en",
2796 .field_bit_size = 1,
2797 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2798 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2799 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2802 .description = "rate_cntr_en",
2803 .field_bit_size = 1,
2804 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2805 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2806 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2809 .description = "flow_cntr_en",
2810 .field_bit_size = 1,
2811 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2812 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2813 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2815 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
2816 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
2817 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
2818 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
2819 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
2820 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
2821 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
2822 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
2825 .description = "flow_cntr_ext",
2826 .field_bit_size = 1,
2827 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2828 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2829 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2832 .description = "tcpflags_key",
2833 .field_bit_size = 8,
2834 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2835 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2836 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2839 .description = "tcpflags_mir",
2840 .field_bit_size = 1,
2841 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2842 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2843 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2846 .description = "tcpflags_match",
2847 .field_bit_size = 1,
2848 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2849 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2850 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2853 .description = "encap_ptr",
2854 .field_bit_size = 11,
2855 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2856 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2857 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
2859 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff,
2860 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff}
2863 .description = "encap_rec_int",
2864 .field_bit_size = 1,
2865 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2866 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2867 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2872 .description = "dst_ip_ptr",
2873 .field_bit_size = 10,
2874 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2875 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2876 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2878 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
2879 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
2882 .description = "tcp_dst_port",
2883 .field_bit_size = 16,
2884 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2885 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
2887 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
2888 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
2889 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
2890 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
2891 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
2892 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
2893 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
2894 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
2895 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2897 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
2898 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
2899 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
2902 .description = "src_ip_ptr",
2903 .field_bit_size = 10,
2904 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2905 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2906 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2908 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
2909 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
2912 .description = "tcp_src_port",
2913 .field_bit_size = 16,
2914 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2915 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
2917 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
2918 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
2919 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
2920 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
2921 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
2922 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
2923 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
2924 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
2925 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2927 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
2928 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
2929 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
2932 .description = "meter_id",
2933 .field_bit_size = 10,
2934 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2935 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2936 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2939 .description = "l3_rdir",
2940 .field_bit_size = 1,
2941 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2942 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2943 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2946 .description = "tl3_rdir",
2947 .field_bit_size = 1,
2948 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2949 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2950 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2953 .description = "l3_ttl_dec",
2954 .field_bit_size = 1,
2955 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2956 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2957 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2959 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
2960 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
2963 .description = "tl3_ttl_dec",
2964 .field_bit_size = 1,
2965 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2966 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2967 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2969 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
2970 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
2973 .description = "decap_func",
2974 .field_bit_size = 4,
2975 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2976 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
2978 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
2979 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
2980 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
2981 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
2982 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
2983 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
2984 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
2985 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff},
2986 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2988 ULP_WP_SYM_DECAP_FUNC_THRU_TL2},
2989 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2991 ULP_WP_SYM_DECAP_FUNC_THRU_L2}
2994 .description = "vnic_or_vport",
2995 .field_bit_size = 12,
2996 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2997 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2998 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3000 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
3001 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
3004 .description = "pop_vlan",
3005 .field_bit_size = 1,
3006 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3007 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3008 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3011 .description = "meter",
3012 .field_bit_size = 1,
3013 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3014 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3015 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3018 .description = "mirror",
3019 .field_bit_size = 2,
3020 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3021 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3022 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3025 .description = "drop",
3026 .field_bit_size = 1,
3027 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3028 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3029 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3032 .description = "ecv_tun_type",
3033 .field_bit_size = 3,
3034 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3035 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3036 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3039 .description = "ecv_l4_type",
3040 .field_bit_size = 3,
3041 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3042 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3043 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3046 .description = "ecv_l3_type",
3047 .field_bit_size = 3,
3048 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3049 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3050 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3053 .description = "ecv_l2_en",
3054 .field_bit_size = 1,
3055 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3056 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3057 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3059 ULP_WP_SYM_ECV_L2_EN_YES}
3062 .description = "ecv_vtag_type",
3063 .field_bit_size = 4,
3064 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3065 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3066 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3069 .description = "ecv_custom_en",
3070 .field_bit_size = 1,
3071 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3072 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3073 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3076 .description = "ecv_valid",
3077 .field_bit_size = 1,
3078 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3079 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3080 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3083 .description = "vtag_tpid",
3084 .field_bit_size = 16,
3085 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3086 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3087 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3090 .description = "vtag_vid",
3091 .field_bit_size = 12,
3092 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3093 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3094 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3097 .description = "vtag_de",
3098 .field_bit_size = 1,
3099 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3100 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3101 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3104 .description = "vtag_pcp",
3105 .field_bit_size = 3,
3106 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3107 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3108 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3111 .description = "spare",
3112 .field_bit_size = 0,
3113 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3114 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3115 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3117 /* act_tid: 4, wh_plus, table: int_flow_counter_tbl.0 */
3119 .description = "count",
3120 .field_bit_size = 64,
3121 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3122 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3123 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3125 /* act_tid: 4, wh_plus, table: int_vtag_encap_record.0 */
3127 .description = "ecv_tun_type",
3128 .field_bit_size = 3,
3129 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3130 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3131 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3134 .description = "ecv_l4_type",
3135 .field_bit_size = 3,
3136 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3137 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3138 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3141 .description = "ecv_l3_type",
3142 .field_bit_size = 3,
3143 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3144 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3145 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3148 .description = "ecv_l2_en",
3149 .field_bit_size = 1,
3150 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3151 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3152 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3155 .description = "ecv_vtag_type",
3156 .field_bit_size = 4,
3157 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3158 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3159 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3161 ULP_WP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
3164 .description = "ecv_custom_en",
3165 .field_bit_size = 1,
3166 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3167 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3168 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3171 .description = "ecv_valid",
3172 .field_bit_size = 1,
3173 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3174 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3175 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3180 .description = "vtag_tpid",
3181 .field_bit_size = 16,
3182 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3183 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3184 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3186 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
3187 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff}
3190 .description = "vtag_vid",
3191 .field_bit_size = 12,
3192 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3193 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3194 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3196 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
3197 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff}
3200 .description = "vtag_de",
3201 .field_bit_size = 1,
3202 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3203 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3204 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3207 .description = "vtag_pcp",
3208 .field_bit_size = 3,
3209 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3210 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3211 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3213 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
3214 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
3217 .description = "spare",
3218 .field_bit_size = 80,
3219 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3220 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3221 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3223 /* act_tid: 4, wh_plus, table: int_full_act_record.0 */
3225 .description = "flow_cntr_ptr",
3226 .field_bit_size = 14,
3227 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3228 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3229 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3231 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3232 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
3235 .description = "age_enable",
3236 .field_bit_size = 1,
3237 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3238 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3239 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3242 .description = "agg_cntr_en",
3243 .field_bit_size = 1,
3244 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3245 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3246 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3249 .description = "rate_cntr_en",
3250 .field_bit_size = 1,
3251 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3252 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3253 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3256 .description = "flow_cntr_en",
3257 .field_bit_size = 1,
3258 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3259 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3260 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3262 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
3263 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
3264 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
3265 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
3266 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
3267 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
3268 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
3269 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
3272 .description = "tcpflags_key",
3273 .field_bit_size = 8,
3274 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3275 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3276 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3279 .description = "tcpflags_mir",
3280 .field_bit_size = 1,
3281 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3282 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3283 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3286 .description = "tcpflags_match",
3287 .field_bit_size = 1,
3288 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3289 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3290 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3293 .description = "encap_ptr",
3294 .field_bit_size = 11,
3295 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3296 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3297 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3299 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
3300 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
3303 .description = "dst_ip_ptr",
3304 .field_bit_size = 10,
3305 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3306 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3307 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3310 .description = "tcp_dst_port",
3311 .field_bit_size = 16,
3312 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3313 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3314 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3317 .description = "src_ip_ptr",
3318 .field_bit_size = 10,
3319 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3320 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3321 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3324 .description = "tcp_src_port",
3325 .field_bit_size = 16,
3326 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3327 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3328 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3331 .description = "meter_id",
3332 .field_bit_size = 10,
3333 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3334 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3335 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3338 .description = "l3_rdir",
3339 .field_bit_size = 1,
3340 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3341 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3342 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3345 .description = "tl3_rdir",
3346 .field_bit_size = 1,
3347 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3348 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3349 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3352 .description = "l3_ttl_dec",
3353 .field_bit_size = 1,
3354 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3355 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3356 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3358 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3359 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
3362 .description = "tl3_ttl_dec",
3363 .field_bit_size = 1,
3364 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3365 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3366 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3368 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3369 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
3372 .description = "decap_func",
3373 .field_bit_size = 4,
3374 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3375 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3376 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3379 .description = "vnic_or_vport",
3380 .field_bit_size = 12,
3381 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3382 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3383 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3385 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3386 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
3389 .description = "pop_vlan",
3390 .field_bit_size = 1,
3391 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3392 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3393 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3396 .description = "meter",
3397 .field_bit_size = 1,
3398 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3399 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3400 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3403 .description = "mirror",
3404 .field_bit_size = 2,
3405 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3406 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3407 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3410 .description = "drop",
3411 .field_bit_size = 1,
3412 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3413 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3414 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3416 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
3417 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
3418 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
3419 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
3420 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
3421 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
3422 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
3423 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
3426 .description = "hit",
3427 .field_bit_size = 1,
3428 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3429 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3430 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3433 .description = "type",
3434 .field_bit_size = 1,
3435 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3436 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3437 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3439 /* act_tid: 4, wh_plus, table: ext_full_act_record.no_tag */
3441 .description = "flow_cntr_ptr",
3442 .field_bit_size = 14,
3443 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3444 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3445 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3447 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3448 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
3451 .description = "age_enable",
3452 .field_bit_size = 1,
3453 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3454 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3455 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3458 .description = "agg_cntr_en",
3459 .field_bit_size = 1,
3460 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3461 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3462 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3465 .description = "rate_cntr_en",
3466 .field_bit_size = 1,
3467 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3468 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3469 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3472 .description = "flow_cntr_en",
3473 .field_bit_size = 1,
3474 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3475 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3476 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3478 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
3479 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
3480 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
3481 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
3482 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
3483 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
3484 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
3485 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
3488 .description = "flow_cntr_ext",
3489 .field_bit_size = 1,
3490 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3491 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3492 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3495 .description = "tcpflags_key",
3496 .field_bit_size = 8,
3497 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3498 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3499 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3502 .description = "tcpflags_mir",
3503 .field_bit_size = 1,
3504 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3505 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3506 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3509 .description = "tcpflags_match",
3510 .field_bit_size = 1,
3511 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3512 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3513 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3516 .description = "encap_ptr",
3517 .field_bit_size = 11,
3518 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3519 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3520 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3523 .description = "encap_rec_int",
3524 .field_bit_size = 1,
3525 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3526 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3527 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3530 .description = "dst_ip_ptr",
3531 .field_bit_size = 10,
3532 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3533 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3534 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3537 .description = "tcp_dst_port",
3538 .field_bit_size = 16,
3539 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3540 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3541 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3544 .description = "src_ip_ptr",
3545 .field_bit_size = 10,
3546 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3547 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3548 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3551 .description = "tcp_src_port",
3552 .field_bit_size = 16,
3553 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3554 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3555 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3558 .description = "meter_id",
3559 .field_bit_size = 10,
3560 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3561 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3562 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3565 .description = "l3_rdir",
3566 .field_bit_size = 1,
3567 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3568 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3569 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3572 .description = "tl3_rdir",
3573 .field_bit_size = 1,
3574 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3575 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3576 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3579 .description = "l3_ttl_dec",
3580 .field_bit_size = 1,
3581 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3582 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3583 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3585 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3586 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
3589 .description = "tl3_ttl_dec",
3590 .field_bit_size = 1,
3591 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3592 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3593 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3595 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3596 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
3599 .description = "decap_func",
3600 .field_bit_size = 4,
3601 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3602 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3603 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3606 .description = "vnic_or_vport",
3607 .field_bit_size = 12,
3608 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3609 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3610 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3612 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3613 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
3616 .description = "pop_vlan",
3617 .field_bit_size = 1,
3618 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3619 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3620 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3623 .description = "meter",
3624 .field_bit_size = 1,
3625 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3626 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3627 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3630 .description = "mirror",
3631 .field_bit_size = 2,
3632 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3633 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3634 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3637 .description = "drop",
3638 .field_bit_size = 1,
3639 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3640 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3641 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3643 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
3644 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
3645 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
3646 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
3647 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
3648 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
3649 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
3650 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
3653 .description = "ecv_tun_type",
3654 .field_bit_size = 3,
3655 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3656 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3657 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3660 .description = "ecv_l4_type",
3661 .field_bit_size = 3,
3662 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3663 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3664 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3667 .description = "ecv_l3_type",
3668 .field_bit_size = 3,
3669 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3670 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3671 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3674 .description = "ecv_l2_en",
3675 .field_bit_size = 1,
3676 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3677 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3678 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3680 ULP_WP_SYM_ECV_L2_EN_YES}
3683 .description = "ecv_vtag_type",
3684 .field_bit_size = 4,
3685 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3686 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3687 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3690 .description = "ecv_custom_en",
3691 .field_bit_size = 1,
3692 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3693 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3694 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3697 .description = "ecv_valid",
3698 .field_bit_size = 1,
3699 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3700 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3701 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3704 .description = "vtag_tpid",
3705 .field_bit_size = 16,
3706 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3707 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3708 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3711 .description = "vtag_vid",
3712 .field_bit_size = 12,
3713 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3714 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3715 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3718 .description = "vtag_de",
3719 .field_bit_size = 1,
3720 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3721 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3722 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3725 .description = "vtag_pcp",
3726 .field_bit_size = 3,
3727 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3728 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3729 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3732 .description = "spare",
3733 .field_bit_size = 0,
3734 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3735 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3736 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3738 /* act_tid: 4, wh_plus, table: ext_full_act_record.one_tag */
3740 .description = "flow_cntr_ptr",
3741 .field_bit_size = 14,
3742 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3743 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3744 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3746 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3747 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
3750 .description = "age_enable",
3751 .field_bit_size = 1,
3752 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3753 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3754 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3757 .description = "agg_cntr_en",
3758 .field_bit_size = 1,
3759 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3760 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3761 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3764 .description = "rate_cntr_en",
3765 .field_bit_size = 1,
3766 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3767 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3768 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3771 .description = "flow_cntr_en",
3772 .field_bit_size = 1,
3773 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3774 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3775 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3777 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
3778 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
3779 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
3780 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
3781 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
3782 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
3783 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
3784 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
3787 .description = "flow_cntr_ext",
3788 .field_bit_size = 1,
3789 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3790 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3791 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3794 .description = "tcpflags_key",
3795 .field_bit_size = 8,
3796 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3797 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3798 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3801 .description = "tcpflags_mir",
3802 .field_bit_size = 1,
3803 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3804 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3805 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3808 .description = "tcpflags_match",
3809 .field_bit_size = 1,
3810 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3811 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3812 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3815 .description = "encap_ptr",
3816 .field_bit_size = 11,
3817 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3818 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3819 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3822 .description = "encap_rec_int",
3823 .field_bit_size = 1,
3824 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3825 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3826 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3829 .description = "dst_ip_ptr",
3830 .field_bit_size = 10,
3831 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3832 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3833 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3836 .description = "tcp_dst_port",
3837 .field_bit_size = 16,
3838 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3839 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3840 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3843 .description = "src_ip_ptr",
3844 .field_bit_size = 10,
3845 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3846 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3847 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3850 .description = "tcp_src_port",
3851 .field_bit_size = 16,
3852 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3853 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3854 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3857 .description = "meter_id",
3858 .field_bit_size = 10,
3859 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3860 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3861 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3864 .description = "l3_rdir",
3865 .field_bit_size = 1,
3866 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3867 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3868 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3871 .description = "tl3_rdir",
3872 .field_bit_size = 1,
3873 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3874 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3875 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3878 .description = "l3_ttl_dec",
3879 .field_bit_size = 1,
3880 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3881 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3882 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3884 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3885 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
3888 .description = "tl3_ttl_dec",
3889 .field_bit_size = 1,
3890 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3891 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3892 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3894 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3895 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
3898 .description = "decap_func",
3899 .field_bit_size = 4,
3900 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3901 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3902 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3905 .description = "vnic_or_vport",
3906 .field_bit_size = 12,
3907 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3908 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3909 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3911 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3912 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
3915 .description = "pop_vlan",
3916 .field_bit_size = 1,
3917 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3918 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3919 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3921 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
3922 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
3923 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
3924 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
3925 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
3926 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
3927 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
3928 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff}
3931 .description = "meter",
3932 .field_bit_size = 1,
3933 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3934 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3935 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3938 .description = "mirror",
3939 .field_bit_size = 2,
3940 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3941 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3942 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3945 .description = "drop",
3946 .field_bit_size = 1,
3947 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3948 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3949 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3951 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
3952 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
3953 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
3954 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
3955 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
3956 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
3957 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
3958 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
3961 .description = "ecv_tun_type",
3962 .field_bit_size = 3,
3963 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3964 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3965 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3968 .description = "ecv_l4_type",
3969 .field_bit_size = 3,
3970 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3971 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3972 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3975 .description = "ecv_l3_type",
3976 .field_bit_size = 3,
3977 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3978 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3979 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3982 .description = "ecv_l2_en",
3983 .field_bit_size = 1,
3984 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3985 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3986 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3989 .description = "ecv_vtag_type",
3990 .field_bit_size = 4,
3991 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3992 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3993 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3995 ULP_WP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
3998 .description = "ecv_custom_en",
3999 .field_bit_size = 1,
4000 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4001 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4002 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4005 .description = "ecv_valid",
4006 .field_bit_size = 1,
4007 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4008 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4009 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4014 .description = "vtag_tpid",
4015 .field_bit_size = 16,
4016 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4017 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4018 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4020 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
4021 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff}
4024 .description = "vtag_vid",
4025 .field_bit_size = 12,
4026 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4027 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4028 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4030 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
4031 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff}
4034 .description = "vtag_de",
4035 .field_bit_size = 1,
4036 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4037 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4038 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4041 .description = "vtag_pcp",
4042 .field_bit_size = 3,
4043 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4044 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4045 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4047 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
4048 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
4051 .description = "spare",
4052 .field_bit_size = 0,
4053 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4054 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4055 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4057 /* act_tid: 5, wh_plus, table: int_flow_counter_tbl.0 */
4059 .description = "count",
4060 .field_bit_size = 64,
4061 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4062 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4063 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4065 /* act_tid: 5, wh_plus, table: act_modify_ipv4_src.0 */
4067 .description = "ipv4_addr",
4068 .field_bit_size = 32,
4069 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4070 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4071 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4073 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
4074 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff}
4076 /* act_tid: 5, wh_plus, table: act_modify_ipv4_dst.0 */
4078 .description = "ipv4_addr",
4079 .field_bit_size = 32,
4080 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4081 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4082 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4084 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
4085 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff}
4087 /* act_tid: 5, wh_plus, table: int_encap_mac_record.dummy */
4089 .description = "ecv_tun_type",
4090 .field_bit_size = 3,
4091 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4092 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4093 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4096 .description = "ecv_l4_type",
4097 .field_bit_size = 3,
4098 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4099 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4100 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4103 .description = "ecv_l3_type",
4104 .field_bit_size = 3,
4105 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4106 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4107 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4110 .description = "ecv_l2_en",
4111 .field_bit_size = 1,
4112 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4113 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4114 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4116 ULP_WP_SYM_ECV_L2_EN_YES}
4119 .description = "ecv_vtag_type",
4120 .field_bit_size = 4,
4121 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4122 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4123 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4126 .description = "ecv_custom_en",
4127 .field_bit_size = 1,
4128 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4129 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4130 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4133 .description = "ecv_valid",
4134 .field_bit_size = 1,
4135 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4136 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4137 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4142 .description = "vtag_tpid",
4143 .field_bit_size = 16,
4144 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4145 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4146 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4149 .description = "vtag_vid",
4150 .field_bit_size = 12,
4151 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4152 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4153 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4156 .description = "vtag_de",
4157 .field_bit_size = 1,
4158 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4159 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4160 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4163 .description = "vtag_pcp",
4164 .field_bit_size = 3,
4165 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4166 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4167 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4170 .description = "spare",
4171 .field_bit_size = 80,
4172 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4173 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4174 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4176 /* act_tid: 5, wh_plus, table: int_full_act_record.0 */
4178 .description = "flow_cntr_ptr",
4179 .field_bit_size = 14,
4180 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4181 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4182 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4184 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
4185 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
4188 .description = "age_enable",
4189 .field_bit_size = 1,
4190 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4191 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4192 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4195 .description = "agg_cntr_en",
4196 .field_bit_size = 1,
4197 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4198 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4199 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4202 .description = "rate_cntr_en",
4203 .field_bit_size = 1,
4204 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4205 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4206 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4209 .description = "flow_cntr_en",
4210 .field_bit_size = 1,
4211 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4212 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4213 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4215 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
4216 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
4217 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
4218 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
4219 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
4220 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
4221 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
4222 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
4225 .description = "tcpflags_key",
4226 .field_bit_size = 8,
4227 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4228 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4229 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4232 .description = "tcpflags_mir",
4233 .field_bit_size = 1,
4234 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4235 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4236 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4239 .description = "tcpflags_match",
4240 .field_bit_size = 1,
4241 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4242 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4243 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4246 .description = "encap_ptr",
4247 .field_bit_size = 11,
4248 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4249 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4250 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
4252 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff,
4253 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff}
4256 .description = "dst_ip_ptr",
4257 .field_bit_size = 10,
4258 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4259 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4260 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4262 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
4263 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
4266 .description = "tcp_dst_port",
4267 .field_bit_size = 16,
4268 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4269 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
4271 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
4272 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
4273 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
4274 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
4275 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
4276 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
4277 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
4278 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
4279 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4281 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
4282 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
4283 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
4286 .description = "src_ip_ptr",
4287 .field_bit_size = 10,
4288 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4289 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4290 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4292 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
4293 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
4296 .description = "tcp_src_port",
4297 .field_bit_size = 16,
4298 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4299 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
4301 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
4302 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
4303 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
4304 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
4305 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
4306 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
4307 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
4308 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
4309 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4311 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
4312 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
4313 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
4316 .description = "meter_id",
4317 .field_bit_size = 10,
4318 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4319 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4320 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4323 .description = "l3_rdir",
4324 .field_bit_size = 1,
4325 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4326 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4327 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4330 .description = "tl3_rdir",
4331 .field_bit_size = 1,
4332 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4333 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4334 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4337 .description = "l3_ttl_dec",
4338 .field_bit_size = 1,
4339 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4340 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4341 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4343 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
4344 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
4347 .description = "tl3_ttl_dec",
4348 .field_bit_size = 1,
4349 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4350 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4351 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4353 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
4354 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
4357 .description = "decap_func",
4358 .field_bit_size = 4,
4359 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4360 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
4362 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
4363 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
4364 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
4365 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
4366 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
4367 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
4368 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
4369 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff},
4370 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4372 ULP_WP_SYM_DECAP_FUNC_THRU_TL2},
4373 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
4375 ULP_WP_SYM_DECAP_FUNC_THRU_L2}
4378 .description = "vnic_or_vport",
4379 .field_bit_size = 12,
4380 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4381 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4382 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4384 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
4385 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
4388 .description = "pop_vlan",
4389 .field_bit_size = 1,
4390 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4391 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4392 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4395 .description = "meter",
4396 .field_bit_size = 1,
4397 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4398 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4399 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4402 .description = "mirror",
4403 .field_bit_size = 2,
4404 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4405 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4406 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4409 .description = "drop",
4410 .field_bit_size = 1,
4411 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4412 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4413 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4416 .description = "hit",
4417 .field_bit_size = 1,
4418 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4419 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4420 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4423 .description = "type",
4424 .field_bit_size = 1,
4425 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4426 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4427 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4429 /* act_tid: 5, wh_plus, table: ext_full_act_record.0 */
4431 .description = "flow_cntr_ptr",
4432 .field_bit_size = 14,
4433 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4434 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4435 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4437 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
4438 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
4441 .description = "age_enable",
4442 .field_bit_size = 1,
4443 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4444 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4445 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4448 .description = "agg_cntr_en",
4449 .field_bit_size = 1,
4450 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4451 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4452 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4455 .description = "rate_cntr_en",
4456 .field_bit_size = 1,
4457 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4458 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4459 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4462 .description = "flow_cntr_en",
4463 .field_bit_size = 1,
4464 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4465 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4466 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4468 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
4469 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
4470 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
4471 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
4472 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
4473 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
4474 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
4475 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
4478 .description = "flow_cntr_ext",
4479 .field_bit_size = 1,
4480 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4481 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4482 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4485 .description = "tcpflags_key",
4486 .field_bit_size = 8,
4487 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4488 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4489 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4492 .description = "tcpflags_mir",
4493 .field_bit_size = 1,
4494 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4495 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4496 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4499 .description = "tcpflags_match",
4500 .field_bit_size = 1,
4501 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4502 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4503 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4506 .description = "encap_ptr",
4507 .field_bit_size = 11,
4508 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4509 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4510 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
4512 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff,
4513 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff}
4516 .description = "encap_rec_int",
4517 .field_bit_size = 1,
4518 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4519 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4520 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4525 .description = "dst_ip_ptr",
4526 .field_bit_size = 10,
4527 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4528 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4529 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4531 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
4532 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
4535 .description = "tcp_dst_port",
4536 .field_bit_size = 16,
4537 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4538 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
4540 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
4541 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
4542 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
4543 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
4544 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
4545 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
4546 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
4547 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
4548 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4550 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
4551 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
4552 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
4555 .description = "src_ip_ptr",
4556 .field_bit_size = 10,
4557 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4558 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4559 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4561 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
4562 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
4565 .description = "tcp_src_port",
4566 .field_bit_size = 16,
4567 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4568 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
4570 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
4571 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
4572 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
4573 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
4574 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
4575 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
4576 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
4577 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
4578 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4580 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
4581 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
4582 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
4585 .description = "meter_id",
4586 .field_bit_size = 10,
4587 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4588 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4589 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4592 .description = "l3_rdir",
4593 .field_bit_size = 1,
4594 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4595 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4596 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4599 .description = "tl3_rdir",
4600 .field_bit_size = 1,
4601 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4602 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4603 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4606 .description = "l3_ttl_dec",
4607 .field_bit_size = 1,
4608 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4609 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4610 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4612 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
4613 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
4616 .description = "tl3_ttl_dec",
4617 .field_bit_size = 1,
4618 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4619 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4620 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4622 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
4623 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
4626 .description = "decap_func",
4627 .field_bit_size = 4,
4628 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4629 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
4631 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
4632 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
4633 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
4634 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
4635 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
4636 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
4637 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
4638 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff},
4639 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4641 ULP_WP_SYM_DECAP_FUNC_THRU_TL2},
4642 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
4644 ULP_WP_SYM_DECAP_FUNC_THRU_L2}
4647 .description = "vnic_or_vport",
4648 .field_bit_size = 12,
4649 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4650 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4651 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4653 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
4654 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
4657 .description = "pop_vlan",
4658 .field_bit_size = 1,
4659 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4660 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4661 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4664 .description = "meter",
4665 .field_bit_size = 1,
4666 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4667 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4668 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4671 .description = "mirror",
4672 .field_bit_size = 2,
4673 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4674 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4675 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4678 .description = "drop",
4679 .field_bit_size = 1,
4680 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4681 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4682 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4685 .description = "ecv_tun_type",
4686 .field_bit_size = 3,
4687 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4688 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4689 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4692 .description = "ecv_l4_type",
4693 .field_bit_size = 3,
4694 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4695 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4696 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4699 .description = "ecv_l3_type",
4700 .field_bit_size = 3,
4701 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4702 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4703 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4706 .description = "ecv_l2_en",
4707 .field_bit_size = 1,
4708 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4709 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4710 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4712 ULP_WP_SYM_ECV_L2_EN_YES}
4715 .description = "ecv_vtag_type",
4716 .field_bit_size = 4,
4717 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4718 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4719 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4722 .description = "ecv_custom_en",
4723 .field_bit_size = 1,
4724 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4725 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4726 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4729 .description = "ecv_valid",
4730 .field_bit_size = 1,
4731 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4732 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4733 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4736 .description = "vtag_tpid",
4737 .field_bit_size = 16,
4738 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4739 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4740 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4743 .description = "vtag_vid",
4744 .field_bit_size = 12,
4745 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4746 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4747 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4750 .description = "vtag_de",
4751 .field_bit_size = 1,
4752 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4753 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4754 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4757 .description = "vtag_pcp",
4758 .field_bit_size = 3,
4759 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4760 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4761 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4764 .description = "spare",
4765 .field_bit_size = 0,
4766 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4767 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4768 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4770 /* act_tid: 6, wh_plus, table: int_flow_counter_tbl.0 */
4772 .description = "count",
4773 .field_bit_size = 64,
4774 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4775 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4776 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4778 /* act_tid: 6, wh_plus, table: sp_smac_ipv4.0 */
4780 .description = "smac",
4781 .field_bit_size = 48,
4782 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4783 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4784 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4786 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
4787 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff}
4790 .description = "ipv4_src_addr",
4791 .field_bit_size = 32,
4792 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4793 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4794 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4796 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
4797 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff}
4800 .description = "reserved",
4801 .field_bit_size = 48,
4802 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4803 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4804 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4806 /* act_tid: 6, wh_plus, table: sp_smac_ipv6.0 */
4808 .description = "smac",
4809 .field_bit_size = 48,
4810 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4811 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4812 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4814 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
4815 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff}
4818 .description = "ipv6_src_addr",
4819 .field_bit_size = 128,
4820 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4821 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4822 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4824 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
4825 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff}
4828 .description = "reserved",
4829 .field_bit_size = 16,
4830 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4831 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4832 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4834 /* act_tid: 6, wh_plus, table: int_tun_encap_record.0 */
4836 .description = "ecv_tun_type",
4837 .field_bit_size = 3,
4838 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4839 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4840 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4842 ULP_WP_SYM_ECV_TUN_TYPE_VXLAN}
4845 .description = "ecv_l4_type",
4846 .field_bit_size = 3,
4847 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4848 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4849 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4851 ULP_WP_SYM_ECV_L4_TYPE_UDP_CSUM}
4854 .description = "ecv_l3_type",
4855 .field_bit_size = 3,
4856 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4857 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4858 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4860 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
4861 BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff}
4864 .description = "ecv_l2_en",
4865 .field_bit_size = 1,
4866 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4867 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4868 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4873 .description = "ecv_vtag_type",
4874 .field_bit_size = 4,
4875 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4876 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4877 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4879 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
4880 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff}
4883 .description = "ecv_custom_en",
4884 .field_bit_size = 1,
4885 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4886 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4887 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4890 .description = "ecv_valid",
4891 .field_bit_size = 1,
4892 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4893 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4894 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4899 .description = "encap_l2_dmac",
4900 .field_bit_size = 48,
4901 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4902 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4903 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4905 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
4906 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff}
4909 .description = "encap_vtag",
4910 .field_bit_size = 0,
4911 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4912 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4913 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP_SZ,
4915 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
4916 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
4917 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
4918 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff}
4921 .description = "encap_ip",
4922 .field_bit_size = 0,
4923 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4924 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4925 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP_SZ,
4927 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
4928 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
4929 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
4930 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff}
4933 .description = "encap_udp",
4934 .field_bit_size = 32,
4935 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4936 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4937 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4939 (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
4940 BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff}
4943 .description = "encap_tun",
4944 .field_bit_size = 0,
4945 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4946 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4947 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP_SZ,
4949 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
4950 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
4951 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
4952 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff}
4954 /* act_tid: 6, wh_plus, table: int_full_act_record.0 */
4956 .description = "flow_cntr_ptr",
4957 .field_bit_size = 14,
4958 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4959 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4960 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4962 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
4963 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
4966 .description = "age_enable",
4967 .field_bit_size = 1,
4968 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4969 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4970 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4973 .description = "agg_cntr_en",
4974 .field_bit_size = 1,
4975 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4976 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4977 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4980 .description = "rate_cntr_en",
4981 .field_bit_size = 1,
4982 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4983 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4984 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4987 .description = "flow_cntr_en",
4988 .field_bit_size = 1,
4989 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4990 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4991 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4993 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
4994 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
4995 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
4996 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
4997 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
4998 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
4999 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
5000 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
5003 .description = "tcpflags_key",
5004 .field_bit_size = 8,
5005 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5006 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5007 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5010 .description = "tcpflags_mir",
5011 .field_bit_size = 1,
5012 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5013 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5014 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5017 .description = "tcpflags_match",
5018 .field_bit_size = 1,
5019 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5020 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5021 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5024 .description = "encap_ptr",
5025 .field_bit_size = 11,
5026 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5027 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5028 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5030 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
5031 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
5034 .description = "dst_ip_ptr",
5035 .field_bit_size = 10,
5036 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5037 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5038 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5041 .description = "tcp_dst_port",
5042 .field_bit_size = 16,
5043 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5044 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5045 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5048 .description = "src_ip_ptr",
5049 .field_bit_size = 10,
5050 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5051 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5052 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5055 .description = "tcp_src_port",
5056 .field_bit_size = 16,
5057 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5058 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5059 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5062 .description = "meter_id",
5063 .field_bit_size = 10,
5064 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5065 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5066 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5069 .description = "l3_rdir",
5070 .field_bit_size = 1,
5071 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5072 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5073 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5076 .description = "tl3_rdir",
5077 .field_bit_size = 1,
5078 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5079 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5080 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5083 .description = "l3_ttl_dec",
5084 .field_bit_size = 1,
5085 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5086 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5087 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5090 .description = "tl3_ttl_dec",
5091 .field_bit_size = 1,
5092 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5093 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5094 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5097 .description = "decap_func",
5098 .field_bit_size = 4,
5099 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5100 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5101 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5104 .description = "vnic_or_vport",
5105 .field_bit_size = 12,
5106 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5107 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5108 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5110 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
5111 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
5114 .description = "pop_vlan",
5115 .field_bit_size = 1,
5116 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5117 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5118 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5121 .description = "meter",
5122 .field_bit_size = 1,
5123 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5124 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5125 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5128 .description = "mirror",
5129 .field_bit_size = 2,
5130 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5131 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5132 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5135 .description = "drop",
5136 .field_bit_size = 1,
5137 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5138 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5139 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5142 .description = "hit",
5143 .field_bit_size = 1,
5144 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5145 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5146 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5149 .description = "type",
5150 .field_bit_size = 1,
5151 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5152 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5153 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5155 /* act_tid: 6, wh_plus, table: ext_full_act_record_vxlan.0 */
5157 .description = "flow_cntr_ptr",
5158 .field_bit_size = 14,
5159 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5160 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5161 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5163 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
5164 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
5167 .description = "age_enable",
5168 .field_bit_size = 1,
5169 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5170 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5171 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5174 .description = "agg_cntr_en",
5175 .field_bit_size = 1,
5176 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5177 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5178 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5181 .description = "rate_cntr_en",
5182 .field_bit_size = 1,
5183 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5184 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5185 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5188 .description = "flow_cntr_en",
5189 .field_bit_size = 1,
5190 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5191 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5192 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
5194 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
5195 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
5196 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
5197 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
5198 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
5199 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
5200 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
5201 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
5204 .description = "flow_cntr_ext",
5205 .field_bit_size = 1,
5206 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5207 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5208 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5211 .description = "tcpflags_key",
5212 .field_bit_size = 8,
5213 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5214 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5215 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5218 .description = "tcpflags_mir",
5219 .field_bit_size = 1,
5220 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5221 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5222 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5225 .description = "tcpflags_match",
5226 .field_bit_size = 1,
5227 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5228 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5229 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5232 .description = "encap_ptr",
5233 .field_bit_size = 11,
5234 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5235 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5236 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5239 .description = "encap_rec_int",
5240 .field_bit_size = 1,
5241 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5242 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5243 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5246 .description = "dst_ip_ptr",
5247 .field_bit_size = 10,
5248 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5249 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5250 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5253 .description = "tcp_dst_port",
5254 .field_bit_size = 16,
5255 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5256 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5257 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5260 .description = "src_ip_ptr",
5261 .field_bit_size = 10,
5262 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5263 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5264 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5267 .description = "tcp_src_port",
5268 .field_bit_size = 16,
5269 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5270 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5271 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5274 .description = "meter_id",
5275 .field_bit_size = 10,
5276 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5277 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5278 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5281 .description = "l3_rdir",
5282 .field_bit_size = 1,
5283 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5284 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5285 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5288 .description = "tl3_rdir",
5289 .field_bit_size = 1,
5290 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5291 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5292 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5295 .description = "l3_ttl_dec",
5296 .field_bit_size = 1,
5297 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5298 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5299 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5302 .description = "tl3_ttl_dec",
5303 .field_bit_size = 1,
5304 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5305 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5306 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5309 .description = "decap_func",
5310 .field_bit_size = 4,
5311 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5312 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5313 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5316 .description = "vnic_or_vport",
5317 .field_bit_size = 12,
5318 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5319 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5320 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5322 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
5323 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
5326 .description = "pop_vlan",
5327 .field_bit_size = 1,
5328 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5329 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5330 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5333 .description = "meter",
5334 .field_bit_size = 1,
5335 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5336 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5337 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5340 .description = "mirror",
5341 .field_bit_size = 2,
5342 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5343 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5344 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5347 .description = "drop",
5348 .field_bit_size = 1,
5349 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5350 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5351 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5354 .description = "ecv_tun_type",
5355 .field_bit_size = 3,
5356 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5357 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5358 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5360 ULP_WP_SYM_ECV_TUN_TYPE_VXLAN}
5363 .description = "ecv_l4_type",
5364 .field_bit_size = 3,
5365 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5366 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5367 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5369 ULP_WP_SYM_ECV_L4_TYPE_UDP_CSUM}
5372 .description = "ecv_l3_type",
5373 .field_bit_size = 3,
5374 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5375 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5376 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5378 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
5379 BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff}
5382 .description = "ecv_l2_en",
5383 .field_bit_size = 1,
5384 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5385 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5386 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5391 .description = "ecv_vtag_type",
5392 .field_bit_size = 4,
5393 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5394 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5395 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5397 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
5398 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff}
5401 .description = "ecv_custom_en",
5402 .field_bit_size = 1,
5403 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5404 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5405 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5408 .description = "ecv_valid",
5409 .field_bit_size = 1,
5410 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5411 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5412 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5417 .description = "encap_l2_dmac",
5418 .field_bit_size = 48,
5419 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5420 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5421 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5423 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
5424 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff}
5427 .description = "encap_vtag",
5428 .field_bit_size = 0,
5429 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5430 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5431 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP_SZ,
5433 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
5434 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
5435 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
5436 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff}
5439 .description = "encap_ip",
5440 .field_bit_size = 0,
5441 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5442 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5443 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP_SZ,
5445 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
5446 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
5447 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
5448 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff}
5451 .description = "encap_udp",
5452 .field_bit_size = 32,
5453 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5454 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5455 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5457 (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
5458 BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff}
5461 .description = "encap_tun",
5462 .field_bit_size = 80,
5463 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5464 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5465 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5467 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
5468 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff}
5472 struct bnxt_ulp_mapper_ident_info ulp_wh_plus_act_ident_list[] = {
5473 /* act_tid: 1, wh_plus, table: shared_mirror_record.rd */
5475 .description = "mirror_id",
5476 .regfile_idx = BNXT_ULP_RF_IDX_MIRROR_ID_0,
5477 .ident_bit_size = 2,