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 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
93 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
94 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
96 .blob_key_bit_size = 1,
102 { /* act_tid: 1, wh_plus, table: int_flow_counter_tbl.0 */
103 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
104 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
106 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
107 .direction = TF_DIR_RX,
110 .cond_false_goto = 1,
111 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
112 .cond_start_idx = 10,
114 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
115 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
116 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
117 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
118 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
119 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
120 .result_start_idx = 0,
121 .result_bit_size = 64,
122 .result_num_fields = 1
124 { /* act_tid: 1, wh_plus, table: int_vtag_encap_record.0 */
125 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
126 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
128 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
129 .direction = TF_DIR_RX,
130 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
133 .cond_false_goto = 1,
134 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
135 .cond_start_idx = 11,
137 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
138 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
139 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
140 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
141 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
142 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
143 .result_start_idx = 1,
144 .result_bit_size = 0,
145 .result_num_fields = 0,
146 .encap_num_fields = 12
148 { /* act_tid: 1, wh_plus, table: int_full_act_record.0 */
149 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
150 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
152 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
153 .direction = TF_DIR_RX,
154 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
157 .cond_false_goto = 1,
158 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
159 .cond_start_idx = 12,
161 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
162 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
163 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
164 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
165 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
166 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
167 .result_start_idx = 13,
168 .result_bit_size = 128,
169 .result_num_fields = 26,
170 .encap_num_fields = 0
172 { /* act_tid: 1, wh_plus, table: ext_full_act_record.0 */
173 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
174 .resource_type = TF_TBL_TYPE_EXT,
176 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
177 .direction = TF_DIR_RX,
178 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
181 .cond_false_goto = 0,
182 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
183 .cond_start_idx = 12,
185 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
186 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
187 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
188 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
189 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
190 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
191 .result_start_idx = 39,
192 .result_bit_size = 128,
193 .result_num_fields = 26,
194 .encap_num_fields = 12
196 { /* act_tid: 2, wh_plus, table: control.0 */
197 .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
198 .direction = TF_DIR_RX,
201 .cond_false_goto = 1,
202 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
203 .cond_start_idx = 12,
205 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
206 .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
207 .fdb_operand = BNXT_ULP_RF_IDX_RID,
208 .byte_order = BNXT_ULP_BYTE_ORDER_LE
210 { /* act_tid: 2, wh_plus, table: mirror_tbl.alloc */
211 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
212 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
214 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
215 .direction = TF_DIR_RX,
218 .cond_false_goto = 1,
219 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
220 .cond_start_idx = 12,
222 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
223 .tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
224 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
225 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
226 .fdb_operand = BNXT_ULP_RF_IDX_RID,
227 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
228 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
229 .result_start_idx = 77,
230 .result_bit_size = 32,
231 .result_num_fields = 6
233 { /* act_tid: 2, wh_plus, table: int_flow_counter_tbl.0 */
234 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
235 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
237 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
238 .direction = TF_DIR_RX,
241 .cond_false_goto = 1,
242 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
243 .cond_start_idx = 12,
245 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
246 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
247 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
248 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
249 .fdb_operand = BNXT_ULP_RF_IDX_RID,
250 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
251 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
252 .result_start_idx = 83,
253 .result_bit_size = 64,
254 .result_num_fields = 1
256 { /* act_tid: 2, wh_plus, table: int_full_act_record.0 */
257 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
258 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
260 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
261 .direction = TF_DIR_RX,
262 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
265 .cond_false_goto = 1,
266 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
267 .cond_start_idx = 13,
269 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
270 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
271 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
272 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
273 .fdb_operand = BNXT_ULP_RF_IDX_RID,
274 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
275 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
276 .result_start_idx = 84,
277 .result_bit_size = 128,
278 .result_num_fields = 26,
279 .encap_num_fields = 0
281 { /* act_tid: 2, wh_plus, table: ext_full_act_record.0 */
282 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
283 .resource_type = TF_TBL_TYPE_EXT,
285 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
286 .direction = TF_DIR_RX,
287 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
290 .cond_false_goto = 1,
291 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
292 .cond_start_idx = 13,
294 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
295 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
296 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
297 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
298 .fdb_operand = BNXT_ULP_RF_IDX_RID,
299 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
300 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
301 .result_start_idx = 110,
302 .result_bit_size = 128,
303 .result_num_fields = 26,
304 .encap_num_fields = 12
306 { /* act_tid: 2, wh_plus, table: mirror_tbl.wr */
307 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
308 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
310 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
311 .direction = TF_DIR_RX,
314 .cond_false_goto = 1,
315 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
316 .cond_start_idx = 13,
318 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
319 .tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
320 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
321 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
322 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
323 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
324 .result_start_idx = 148,
325 .result_bit_size = 32,
326 .result_num_fields = 6
328 { /* act_tid: 2, wh_plus, table: shared_mirror_record.wr */
329 .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
330 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
332 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
333 .direction = TF_DIR_RX,
336 .cond_false_goto = 0,
337 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
338 .cond_start_idx = 13,
340 .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
341 .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
342 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
343 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
344 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
346 .blob_key_bit_size = 1,
349 .result_start_idx = 154,
350 .result_bit_size = 34,
351 .result_num_fields = 2
353 { /* act_tid: 3, wh_plus, table: int_flow_counter_tbl.0 */
354 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
355 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
357 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
358 .direction = TF_DIR_RX,
361 .cond_false_goto = 1,
362 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
363 .cond_start_idx = 13,
365 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
366 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
367 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
368 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
369 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
370 .result_start_idx = 156,
371 .result_bit_size = 64,
372 .result_num_fields = 1
374 { /* act_tid: 3, wh_plus, table: act_modify_ipv4_src.0 */
375 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
376 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
378 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
379 .direction = TF_DIR_RX,
382 .cond_false_goto = 1,
383 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
384 .cond_start_idx = 14,
386 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
387 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0,
388 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
389 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
390 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
391 .result_start_idx = 157,
392 .result_bit_size = 32,
393 .result_num_fields = 1
395 { /* act_tid: 3, wh_plus, table: act_modify_ipv4_dst.0 */
396 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
397 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
399 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
400 .direction = TF_DIR_RX,
403 .cond_false_goto = 1,
404 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
405 .cond_start_idx = 15,
407 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
408 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0,
409 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
410 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
411 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
412 .result_start_idx = 158,
413 .result_bit_size = 32,
414 .result_num_fields = 1
416 { /* act_tid: 3, wh_plus, table: int_encap_mac_record.0 */
417 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
418 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
420 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
421 .direction = TF_DIR_RX,
424 .cond_false_goto = 1,
425 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
426 .cond_start_idx = 16,
428 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
429 .tbl_operand = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR,
430 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
431 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
432 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
433 .result_start_idx = 159,
434 .result_bit_size = 0,
435 .result_num_fields = 0,
436 .encap_num_fields = 12
438 { /* act_tid: 3, wh_plus, table: int_full_act_record.0 */
439 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
440 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
442 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
443 .direction = TF_DIR_RX,
444 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
447 .cond_false_goto = 1,
448 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
449 .cond_start_idx = 16,
451 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
452 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
453 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
454 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
455 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
456 .result_start_idx = 171,
457 .result_bit_size = 128,
458 .result_num_fields = 26
460 { /* act_tid: 3, wh_plus, table: ext_full_act_record.0 */
461 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
462 .resource_type = TF_TBL_TYPE_EXT,
464 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
465 .direction = TF_DIR_RX,
466 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
469 .cond_false_goto = 0,
470 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
471 .cond_start_idx = 16,
473 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
474 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
475 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
476 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
477 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
478 .result_start_idx = 197,
479 .result_bit_size = 128,
480 .result_num_fields = 26,
481 .encap_num_fields = 12
483 { /* act_tid: 4, wh_plus, table: int_flow_counter_tbl.0 */
484 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
485 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
487 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
488 .direction = TF_DIR_TX,
491 .cond_false_goto = 1,
492 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
493 .cond_start_idx = 16,
495 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
496 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
497 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
498 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
499 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
500 .result_start_idx = 235,
501 .result_bit_size = 64,
502 .result_num_fields = 1
504 { /* act_tid: 4, wh_plus, table: int_vtag_encap_record.0 */
505 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
506 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
508 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
509 .direction = TF_DIR_TX,
510 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
513 .cond_false_goto = 1,
514 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
515 .cond_start_idx = 17,
517 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
518 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
519 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
520 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
521 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
522 .result_start_idx = 236,
523 .result_bit_size = 0,
524 .result_num_fields = 0,
525 .encap_num_fields = 12
527 { /* act_tid: 4, wh_plus, table: int_full_act_record.0 */
528 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
529 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
531 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
532 .direction = TF_DIR_TX,
533 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
536 .cond_false_goto = 1,
537 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
538 .cond_start_idx = 18,
540 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
541 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
542 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
543 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
544 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
545 .result_start_idx = 248,
546 .result_bit_size = 128,
547 .result_num_fields = 26
549 { /* act_tid: 4, wh_plus, table: ext_full_act_record.no_tag */
550 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
551 .resource_type = TF_TBL_TYPE_EXT,
553 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
554 .direction = TF_DIR_TX,
555 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
558 .cond_false_goto = 1,
559 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
560 .cond_start_idx = 18,
562 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
563 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
564 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
565 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
566 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
567 .result_start_idx = 274,
568 .result_bit_size = 128,
569 .result_num_fields = 26,
570 .encap_num_fields = 12
572 { /* act_tid: 4, wh_plus, table: ext_full_act_record.one_tag */
573 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
574 .resource_type = TF_TBL_TYPE_EXT,
576 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
577 .direction = TF_DIR_TX,
578 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
581 .cond_false_goto = 0,
582 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
583 .cond_start_idx = 19,
585 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
586 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
587 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
588 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
589 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
590 .result_start_idx = 312,
591 .result_bit_size = 128,
592 .result_num_fields = 26,
593 .encap_num_fields = 12
595 { /* act_tid: 5, wh_plus, table: int_flow_counter_tbl.0 */
596 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
597 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
599 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
600 .direction = TF_DIR_TX,
603 .cond_false_goto = 1,
604 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
605 .cond_start_idx = 20,
607 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
608 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
609 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
610 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
611 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
612 .result_start_idx = 350,
613 .result_bit_size = 64,
614 .result_num_fields = 1
616 { /* act_tid: 5, wh_plus, table: act_modify_ipv4_src.0 */
617 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
618 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
620 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
621 .direction = TF_DIR_TX,
624 .cond_false_goto = 1,
625 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
626 .cond_start_idx = 21,
628 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
629 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0,
630 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
631 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
632 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
633 .result_start_idx = 351,
634 .result_bit_size = 32,
635 .result_num_fields = 1
637 { /* act_tid: 5, wh_plus, table: act_modify_ipv4_dst.0 */
638 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
639 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4,
641 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
642 .direction = TF_DIR_TX,
645 .cond_false_goto = 1,
646 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
647 .cond_start_idx = 22,
649 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
650 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0,
651 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
652 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
653 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
654 .result_start_idx = 352,
655 .result_bit_size = 32,
656 .result_num_fields = 1
658 { /* act_tid: 5, wh_plus, table: int_encap_mac_record.dummy */
659 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
660 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
662 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
663 .direction = TF_DIR_TX,
666 .cond_false_goto = 1,
667 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
668 .cond_start_idx = 23,
670 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE,
671 .tbl_operand = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR,
672 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
673 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
674 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
675 .result_start_idx = 353,
676 .result_bit_size = 0,
677 .result_num_fields = 0,
678 .encap_num_fields = 12
680 { /* act_tid: 5, wh_plus, table: int_full_act_record.0 */
681 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
682 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
684 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
685 .direction = TF_DIR_TX,
686 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
689 .cond_false_goto = 1,
690 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
691 .cond_start_idx = 23,
693 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
694 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
695 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
696 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
697 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
698 .result_start_idx = 365,
699 .result_bit_size = 128,
700 .result_num_fields = 26
702 { /* act_tid: 5, wh_plus, table: ext_full_act_record.0 */
703 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
704 .resource_type = TF_TBL_TYPE_EXT,
706 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
707 .direction = TF_DIR_TX,
708 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
711 .cond_false_goto = 0,
712 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
713 .cond_start_idx = 23,
715 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
716 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
717 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
718 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
719 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
720 .result_start_idx = 391,
721 .result_bit_size = 128,
722 .result_num_fields = 26,
723 .encap_num_fields = 12
725 { /* act_tid: 6, wh_plus, table: int_flow_counter_tbl.0 */
726 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
727 .resource_type = TF_TBL_TYPE_ACT_STATS_64,
729 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
730 .direction = TF_DIR_TX,
733 .cond_false_goto = 1,
734 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
735 .cond_start_idx = 23,
737 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
738 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
739 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
740 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
741 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
742 .result_start_idx = 429,
743 .result_bit_size = 64,
744 .result_num_fields = 1
746 { /* act_tid: 6, wh_plus, table: sp_smac_ipv4.0 */
747 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
748 .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
750 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
751 .direction = TF_DIR_TX,
754 .cond_false_goto = 1,
755 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
756 .cond_start_idx = 24,
758 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
759 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_SP_PTR,
760 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
761 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
762 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
763 .result_start_idx = 430,
764 .result_bit_size = 0,
765 .result_num_fields = 0,
766 .encap_num_fields = 3
768 { /* act_tid: 6, wh_plus, table: sp_smac_ipv6.0 */
769 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
770 .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV6,
772 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
773 .direction = TF_DIR_TX,
776 .cond_false_goto = 1,
777 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
778 .cond_start_idx = 25,
780 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
781 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_SP_PTR,
782 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
783 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
784 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
785 .result_start_idx = 433,
786 .result_bit_size = 0,
787 .result_num_fields = 0,
788 .encap_num_fields = 3
790 { /* act_tid: 6, wh_plus, table: int_tun_encap_record.0 */
791 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
792 .resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
794 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
795 .direction = TF_DIR_TX,
796 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
799 .cond_false_goto = 1,
800 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
801 .cond_start_idx = 26,
803 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
804 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
805 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
806 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
807 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
808 .result_start_idx = 436,
809 .result_bit_size = 0,
810 .result_num_fields = 0,
811 .encap_num_fields = 12
813 { /* act_tid: 6, wh_plus, table: int_full_act_record.0 */
814 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
815 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
817 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
818 .direction = TF_DIR_TX,
819 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_INT,
822 .cond_false_goto = 1,
823 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
824 .cond_start_idx = 26,
826 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
827 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
828 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
829 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
830 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
831 .result_start_idx = 448,
832 .result_bit_size = 128,
833 .result_num_fields = 26
835 { /* act_tid: 6, wh_plus, table: ext_full_act_record_vxlan.0 */
836 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
837 .resource_type = TF_TBL_TYPE_EXT,
839 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
840 .direction = TF_DIR_TX,
841 .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPC_EXECUTE_IF_EXT,
844 .cond_false_goto = 0,
845 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
846 .cond_start_idx = 26,
848 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
849 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
850 .accept_opcode = BNXT_ULP_ACCEPT_OPC_ALWAYS,
851 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
852 .byte_order = BNXT_ULP_BYTE_ORDER_LE,
853 .result_start_idx = 474,
854 .result_bit_size = 128,
855 .result_num_fields = 26,
856 .encap_num_fields = 12
860 struct bnxt_ulp_mapper_cond_info ulp_wh_plus_act_cond_list[] = {
861 /* cond_reject: wh_plus, act_tid: 1 */
863 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
864 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_SRC
867 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
868 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV6_SRC
871 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
872 .cond_operand = BNXT_ULP_ACT_BIT_SET_TP_SRC
875 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
876 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_DST
879 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
880 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV6_DST
883 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
884 .cond_operand = BNXT_ULP_ACT_BIT_SET_TP_DST
887 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
888 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
891 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
892 .cond_operand = BNXT_ULP_ACT_BIT_SET_VLAN_VID
895 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
896 .cond_operand = BNXT_ULP_ACT_BIT_SET_VLAN_PCP
898 /* cond_execute: act_tid: 1, shared_mirror_record.rd */
900 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
901 .cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
903 /* cond_execute: act_tid: 1, int_flow_counter_tbl.0 */
905 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
906 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
908 /* cond_execute: act_tid: 1, int_vtag_encap_record.0 */
910 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
911 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
913 /* cond_execute: act_tid: 2, int_flow_counter_tbl.0 */
915 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
916 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
918 /* cond_execute: act_tid: 3, int_flow_counter_tbl.0 */
920 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
921 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
923 /* cond_execute: act_tid: 3, act_modify_ipv4_src.0 */
925 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
926 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_SRC
928 /* cond_execute: act_tid: 3, act_modify_ipv4_dst.0 */
930 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
931 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_DST
933 /* cond_execute: act_tid: 4, int_flow_counter_tbl.0 */
935 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
936 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
938 /* cond_execute: act_tid: 4, int_vtag_encap_record.0 */
940 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
941 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
943 /* cond_execute: act_tid: 4, ext_full_act_record.no_tag */
945 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
946 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
948 /* cond_execute: act_tid: 4, ext_full_act_record.one_tag */
950 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
951 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
953 /* cond_execute: act_tid: 5, int_flow_counter_tbl.0 */
955 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
956 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
958 /* cond_execute: act_tid: 5, act_modify_ipv4_src.0 */
960 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
961 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_SRC
963 /* cond_execute: act_tid: 5, act_modify_ipv4_dst.0 */
965 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
966 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_DST
968 /* cond_execute: act_tid: 6, int_flow_counter_tbl.0 */
970 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
971 .cond_operand = BNXT_ULP_ACT_BIT_COUNT
973 /* cond_execute: act_tid: 6, sp_smac_ipv4.0 */
975 .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
976 .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
978 /* cond_execute: act_tid: 6, sp_smac_ipv6.0 */
980 .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
981 .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG
985 struct bnxt_ulp_mapper_key_info ulp_wh_plus_act_key_info_list[] = {
986 /* act_tid: 1, wh_plus, table: shared_mirror_record.rd */
989 .description = "shared_index",
991 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
992 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
993 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
998 .description = "shared_index",
1000 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1001 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1002 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1004 (BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
1005 BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
1008 /* act_tid: 2, wh_plus, table: shared_mirror_record.wr */
1010 .field_info_mask = {
1011 .description = "shared_index",
1012 .field_bit_size = 1,
1013 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1014 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1015 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1019 .field_info_spec = {
1020 .description = "shared_index",
1021 .field_bit_size = 1,
1022 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1023 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1024 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1026 (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
1027 BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
1032 struct bnxt_ulp_mapper_field_info ulp_wh_plus_act_result_field_list[] = {
1033 /* act_tid: 1, wh_plus, table: int_flow_counter_tbl.0 */
1035 .description = "count",
1036 .field_bit_size = 64,
1037 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1038 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1039 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1041 /* act_tid: 1, wh_plus, table: int_vtag_encap_record.0 */
1043 .description = "ecv_tun_type",
1044 .field_bit_size = 3,
1045 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1046 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1047 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1050 .description = "ecv_l4_type",
1051 .field_bit_size = 3,
1052 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1053 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1054 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1057 .description = "ecv_l3_type",
1058 .field_bit_size = 3,
1059 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1060 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1061 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1064 .description = "ecv_l2_en",
1065 .field_bit_size = 1,
1066 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1067 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1068 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1071 .description = "ecv_vtag_type",
1072 .field_bit_size = 4,
1073 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1074 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1075 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1077 ULP_WP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
1080 .description = "ecv_custom_en",
1081 .field_bit_size = 1,
1082 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1083 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1084 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1087 .description = "ecv_valid",
1088 .field_bit_size = 1,
1089 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1090 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1091 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1096 .description = "vtag_tpid",
1097 .field_bit_size = 16,
1098 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1099 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1100 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1102 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
1103 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff}
1106 .description = "vtag_vid",
1107 .field_bit_size = 12,
1108 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1109 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1110 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1112 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
1113 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff}
1116 .description = "vtag_de",
1117 .field_bit_size = 1,
1118 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1119 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1120 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1123 .description = "vtag_pcp",
1124 .field_bit_size = 3,
1125 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1126 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1127 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1129 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
1130 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
1133 .description = "spare",
1134 .field_bit_size = 80,
1135 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1136 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1137 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1139 /* act_tid: 1, wh_plus, table: int_full_act_record.0 */
1141 .description = "flow_cntr_ptr",
1142 .field_bit_size = 14,
1143 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1144 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1145 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1147 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1148 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
1151 .description = "age_enable",
1152 .field_bit_size = 1,
1153 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1154 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1155 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1158 .description = "agg_cntr_en",
1159 .field_bit_size = 1,
1160 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1161 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1162 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1165 .description = "rate_cntr_en",
1166 .field_bit_size = 1,
1167 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1168 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1169 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1172 .description = "flow_cntr_en",
1173 .field_bit_size = 1,
1174 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1175 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1176 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1178 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
1179 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
1180 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
1181 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
1182 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
1183 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
1184 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
1185 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
1188 .description = "tcpflags_key",
1189 .field_bit_size = 8,
1190 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1191 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1192 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1195 .description = "tcpflags_mir",
1196 .field_bit_size = 1,
1197 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1198 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1199 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1202 .description = "tcpflags_match",
1203 .field_bit_size = 1,
1204 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1205 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1206 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1209 .description = "encap_ptr",
1210 .field_bit_size = 11,
1211 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1212 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1213 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1215 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
1216 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
1219 .description = "dst_ip_ptr",
1220 .field_bit_size = 10,
1221 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1222 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1223 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1225 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
1226 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
1229 .description = "tcp_dst_port",
1230 .field_bit_size = 16,
1231 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1232 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1234 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
1235 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
1236 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
1237 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
1238 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
1239 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
1240 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
1241 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
1242 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1244 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
1245 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
1246 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
1249 .description = "src_ip_ptr",
1250 .field_bit_size = 10,
1251 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1252 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1253 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1255 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
1256 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
1259 .description = "tcp_src_port",
1260 .field_bit_size = 16,
1261 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1262 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1264 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
1265 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
1266 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
1267 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
1268 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
1269 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
1270 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
1271 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
1272 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1274 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
1275 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
1276 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
1279 .description = "meter_id",
1280 .field_bit_size = 10,
1281 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1282 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1283 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1286 .description = "l3_rdir",
1287 .field_bit_size = 1,
1288 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1289 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1290 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1293 .description = "tl3_rdir",
1294 .field_bit_size = 1,
1295 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1296 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1297 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1300 .description = "l3_ttl_dec",
1301 .field_bit_size = 1,
1302 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1303 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1304 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1306 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
1307 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
1310 .description = "tl3_ttl_dec",
1311 .field_bit_size = 1,
1312 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1313 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1314 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1316 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
1317 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
1320 .description = "decap_func",
1321 .field_bit_size = 4,
1322 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1323 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1325 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 56) & 0xff,
1326 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 48) & 0xff,
1327 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 40) & 0xff,
1328 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 32) & 0xff,
1329 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 24) & 0xff,
1330 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 16) & 0xff,
1331 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 8) & 0xff,
1332 (uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP & 0xff},
1333 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1335 ULP_WP_SYM_DECAP_FUNC_THRU_TUN},
1336 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
1338 ULP_WP_SYM_DECAP_FUNC_NONE}
1341 .description = "vnic_or_vport",
1342 .field_bit_size = 12,
1343 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1344 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1345 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1347 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1348 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
1351 .description = "pop_vlan",
1352 .field_bit_size = 1,
1353 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1354 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1355 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1357 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
1358 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
1359 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
1360 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
1361 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
1362 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
1363 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
1364 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff}
1367 .description = "meter",
1368 .field_bit_size = 1,
1369 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1370 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1371 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1374 .description = "mirror",
1375 .field_bit_size = 2,
1376 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1377 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1379 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
1380 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
1381 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
1382 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
1383 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
1384 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
1385 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
1386 (uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
1387 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1389 (BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
1390 BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
1391 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
1394 .description = "drop",
1395 .field_bit_size = 1,
1396 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1397 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1398 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1400 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
1401 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
1402 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
1403 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
1404 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
1405 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
1406 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
1407 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
1410 .description = "hit",
1411 .field_bit_size = 1,
1412 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1413 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1414 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1417 .description = "type",
1418 .field_bit_size = 1,
1419 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1420 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1421 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1423 /* act_tid: 1, wh_plus, table: ext_full_act_record.0 */
1425 .description = "flow_cntr_ptr",
1426 .field_bit_size = 14,
1427 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1428 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1429 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1431 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1432 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
1435 .description = "age_enable",
1436 .field_bit_size = 1,
1437 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1438 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1439 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1442 .description = "agg_cntr_en",
1443 .field_bit_size = 1,
1444 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1445 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1446 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1449 .description = "rate_cntr_en",
1450 .field_bit_size = 1,
1451 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1452 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1453 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1456 .description = "flow_cntr_en",
1457 .field_bit_size = 1,
1458 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1459 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1460 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1462 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
1463 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
1464 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
1465 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
1466 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
1467 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
1468 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
1469 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
1472 .description = "flow_cntr_ext",
1473 .field_bit_size = 1,
1474 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1475 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1476 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1479 .description = "tcpflags_key",
1480 .field_bit_size = 8,
1481 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1482 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1483 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1486 .description = "tcpflags_mir",
1487 .field_bit_size = 1,
1488 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1489 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1490 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1493 .description = "tcpflags_match",
1494 .field_bit_size = 1,
1495 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1496 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1497 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1500 .description = "encap_ptr",
1501 .field_bit_size = 11,
1502 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1503 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1504 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1507 .description = "encap_rec_int",
1508 .field_bit_size = 1,
1509 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1510 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1511 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1514 .description = "dst_ip_ptr",
1515 .field_bit_size = 10,
1516 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1517 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1518 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1520 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
1521 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
1524 .description = "tcp_dst_port",
1525 .field_bit_size = 16,
1526 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1527 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1529 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
1530 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
1531 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
1532 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
1533 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
1534 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
1535 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
1536 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
1537 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1539 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
1540 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
1541 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
1544 .description = "src_ip_ptr",
1545 .field_bit_size = 10,
1546 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1547 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1548 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1550 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
1551 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
1554 .description = "tcp_src_port",
1555 .field_bit_size = 16,
1556 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1557 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1559 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
1560 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
1561 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
1562 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
1563 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
1564 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
1565 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
1566 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
1567 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1569 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
1570 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
1571 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
1574 .description = "meter_id",
1575 .field_bit_size = 10,
1576 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1577 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1578 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1581 .description = "l3_rdir",
1582 .field_bit_size = 1,
1583 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1584 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1585 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1588 .description = "tl3_rdir",
1589 .field_bit_size = 1,
1590 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1591 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1592 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1595 .description = "l3_ttl_dec",
1596 .field_bit_size = 1,
1597 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1598 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1599 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1601 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
1602 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
1605 .description = "tl3_ttl_dec",
1606 .field_bit_size = 1,
1607 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1608 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1609 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
1611 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
1612 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
1615 .description = "decap_func",
1616 .field_bit_size = 4,
1617 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1618 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
1620 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 56) & 0xff,
1621 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 48) & 0xff,
1622 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 40) & 0xff,
1623 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 32) & 0xff,
1624 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 24) & 0xff,
1625 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 16) & 0xff,
1626 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 8) & 0xff,
1627 (uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP & 0xff},
1628 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1630 ULP_WP_SYM_DECAP_FUNC_THRU_TUN},
1631 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
1633 ULP_WP_SYM_DECAP_FUNC_NONE}
1636 .description = "vnic_or_vport",
1637 .field_bit_size = 12,
1638 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1639 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1640 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1642 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1643 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
1646 .description = "pop_vlan",
1647 .field_bit_size = 1,
1648 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1649 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1650 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1652 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
1653 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
1654 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
1655 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
1656 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
1657 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
1658 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
1659 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff}
1662 .description = "meter",
1663 .field_bit_size = 1,
1664 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1665 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1666 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1669 .description = "mirror",
1670 .field_bit_size = 2,
1671 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1672 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1673 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1675 (BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
1676 BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff}
1679 .description = "drop",
1680 .field_bit_size = 1,
1681 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1682 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1683 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1685 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
1686 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
1687 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
1688 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
1689 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
1690 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
1691 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
1692 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
1695 .description = "ecv_tun_type",
1696 .field_bit_size = 3,
1697 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1698 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1699 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1702 .description = "ecv_l4_type",
1703 .field_bit_size = 3,
1704 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1705 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1706 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1709 .description = "ecv_l3_type",
1710 .field_bit_size = 3,
1711 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1712 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1713 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1716 .description = "ecv_l2_en",
1717 .field_bit_size = 1,
1718 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1719 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1720 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1722 ULP_WP_SYM_ECV_L2_EN_YES}
1725 .description = "ecv_vtag_type",
1726 .field_bit_size = 4,
1727 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1728 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1729 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1732 .description = "ecv_custom_en",
1733 .field_bit_size = 1,
1734 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1735 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1736 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1739 .description = "ecv_valid",
1740 .field_bit_size = 1,
1741 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1742 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1743 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1746 .description = "vtag_tpid",
1747 .field_bit_size = 16,
1748 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1749 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1750 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1753 .description = "vtag_vid",
1754 .field_bit_size = 12,
1755 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1756 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1757 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1760 .description = "vtag_de",
1761 .field_bit_size = 1,
1762 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1763 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1764 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1767 .description = "vtag_pcp",
1768 .field_bit_size = 3,
1769 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1770 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1771 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1774 .description = "spare",
1775 .field_bit_size = 0,
1776 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1777 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1778 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1780 /* act_tid: 2, wh_plus, table: mirror_tbl.alloc */
1782 .description = "act_rec_ptr",
1783 .field_bit_size = 16,
1784 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1785 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1786 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1789 .description = "enable",
1790 .field_bit_size = 1,
1791 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1792 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1793 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
1798 .description = "copy",
1799 .field_bit_size = 1,
1800 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1801 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1802 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1805 .description = "ign_drop",
1806 .field_bit_size = 1,
1807 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1808 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1809 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1812 .description = "reserved",
1813 .field_bit_size = 2,
1814 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1815 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1816 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1819 .description = "sp_ptr",
1820 .field_bit_size = 11,
1821 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1822 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1823 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1825 /* act_tid: 2, wh_plus, table: int_flow_counter_tbl.0 */
1827 .description = "count",
1828 .field_bit_size = 64,
1829 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1830 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1831 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1833 /* act_tid: 2, wh_plus, table: int_full_act_record.0 */
1835 .description = "flow_cntr_ptr",
1836 .field_bit_size = 14,
1837 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1838 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1839 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
1841 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
1842 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
1845 .description = "age_enable",
1846 .field_bit_size = 1,
1847 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1848 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1849 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1852 .description = "agg_cntr_en",
1853 .field_bit_size = 1,
1854 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1855 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1856 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1859 .description = "rate_cntr_en",
1860 .field_bit_size = 1,
1861 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1862 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1863 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1866 .description = "flow_cntr_en",
1867 .field_bit_size = 1,
1868 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1869 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1870 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
1872 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
1873 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
1874 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
1875 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
1876 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
1877 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
1878 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
1879 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
1882 .description = "tcpflags_key",
1883 .field_bit_size = 8,
1884 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1885 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1886 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1889 .description = "tcpflags_mir",
1890 .field_bit_size = 1,
1891 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1892 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1893 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1896 .description = "tcpflags_match",
1897 .field_bit_size = 1,
1898 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1899 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1900 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1903 .description = "encap_ptr",
1904 .field_bit_size = 11,
1905 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1906 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1907 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1910 .description = "dst_ip_ptr",
1911 .field_bit_size = 10,
1912 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1913 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1914 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1917 .description = "tcp_dst_port",
1918 .field_bit_size = 16,
1919 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1920 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1921 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1924 .description = "src_ip_ptr",
1925 .field_bit_size = 10,
1926 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1927 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1928 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1931 .description = "tcp_src_port",
1932 .field_bit_size = 16,
1933 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1934 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1935 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1938 .description = "meter_id",
1939 .field_bit_size = 10,
1940 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1941 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1942 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1945 .description = "l3_rdir",
1946 .field_bit_size = 1,
1947 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1948 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1949 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1952 .description = "tl3_rdir",
1953 .field_bit_size = 1,
1954 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1955 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1956 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1959 .description = "l3_ttl_dec",
1960 .field_bit_size = 1,
1961 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1962 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1963 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1966 .description = "tl3_ttl_dec",
1967 .field_bit_size = 1,
1968 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1969 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1970 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1973 .description = "decap_func",
1974 .field_bit_size = 4,
1975 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1976 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1977 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1980 .description = "vnic_or_vport",
1981 .field_bit_size = 12,
1982 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1983 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1984 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
1986 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
1987 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
1990 .description = "pop_vlan",
1991 .field_bit_size = 1,
1992 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
1993 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
1994 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
1997 .description = "meter",
1998 .field_bit_size = 1,
1999 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2000 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2001 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2004 .description = "mirror",
2005 .field_bit_size = 2,
2006 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_PLUS_CONST,
2007 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2009 (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
2010 BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff},
2011 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2016 .description = "drop",
2017 .field_bit_size = 1,
2018 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2019 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2020 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2023 .description = "hit",
2024 .field_bit_size = 1,
2025 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2026 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2027 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2030 .description = "type",
2031 .field_bit_size = 1,
2032 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2033 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2034 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2036 /* act_tid: 2, wh_plus, table: ext_full_act_record.0 */
2038 .description = "flow_cntr_ptr",
2039 .field_bit_size = 14,
2040 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2041 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2042 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2044 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2045 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
2048 .description = "age_enable",
2049 .field_bit_size = 1,
2050 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2051 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2052 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2055 .description = "agg_cntr_en",
2056 .field_bit_size = 1,
2057 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2058 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2059 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2062 .description = "rate_cntr_en",
2063 .field_bit_size = 1,
2064 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2065 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2066 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2069 .description = "flow_cntr_en",
2070 .field_bit_size = 1,
2071 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2072 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2073 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2075 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
2076 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
2077 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
2078 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
2079 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
2080 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
2081 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
2082 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
2085 .description = "flow_cntr_ext",
2086 .field_bit_size = 1,
2087 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2088 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2089 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2092 .description = "tcpflags_key",
2093 .field_bit_size = 8,
2094 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2095 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2096 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2099 .description = "tcpflags_mir",
2100 .field_bit_size = 1,
2101 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2102 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2103 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2106 .description = "tcpflags_match",
2107 .field_bit_size = 1,
2108 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2109 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2110 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2113 .description = "encap_ptr",
2114 .field_bit_size = 11,
2115 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2116 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2117 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2120 .description = "encap_rec_int",
2121 .field_bit_size = 1,
2122 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2123 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2124 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2127 .description = "dst_ip_ptr",
2128 .field_bit_size = 10,
2129 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2130 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2131 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2134 .description = "tcp_dst_port",
2135 .field_bit_size = 16,
2136 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2137 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2138 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2141 .description = "src_ip_ptr",
2142 .field_bit_size = 10,
2143 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2144 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2145 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2148 .description = "tcp_src_port",
2149 .field_bit_size = 16,
2150 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2151 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2152 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2155 .description = "meter_id",
2156 .field_bit_size = 10,
2157 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2158 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2159 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2162 .description = "l3_rdir",
2163 .field_bit_size = 1,
2164 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2165 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2166 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2169 .description = "tl3_rdir",
2170 .field_bit_size = 1,
2171 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2172 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2173 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2176 .description = "l3_ttl_dec",
2177 .field_bit_size = 1,
2178 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2179 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2180 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2183 .description = "tl3_ttl_dec",
2184 .field_bit_size = 1,
2185 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2186 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2187 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2190 .description = "decap_func",
2191 .field_bit_size = 4,
2192 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2193 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2194 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2197 .description = "vnic_or_vport",
2198 .field_bit_size = 12,
2199 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2200 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2201 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2203 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
2204 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
2207 .description = "pop_vlan",
2208 .field_bit_size = 1,
2209 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2210 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2211 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2213 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
2214 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
2215 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
2216 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
2217 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
2218 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
2219 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
2220 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff}
2223 .description = "meter",
2224 .field_bit_size = 1,
2225 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2226 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2227 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2230 .description = "mirror",
2231 .field_bit_size = 2,
2232 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_PLUS_CONST,
2233 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2235 (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
2236 BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff},
2237 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2242 .description = "drop",
2243 .field_bit_size = 1,
2244 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2245 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2246 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2249 .description = "ecv_tun_type",
2250 .field_bit_size = 3,
2251 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2252 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2253 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2256 .description = "ecv_l4_type",
2257 .field_bit_size = 3,
2258 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2259 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2260 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2263 .description = "ecv_l3_type",
2264 .field_bit_size = 3,
2265 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2266 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2267 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2270 .description = "ecv_l2_en",
2271 .field_bit_size = 1,
2272 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2273 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2274 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2276 ULP_WP_SYM_ECV_L2_EN_YES}
2279 .description = "ecv_vtag_type",
2280 .field_bit_size = 4,
2281 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2282 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2283 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2286 .description = "ecv_custom_en",
2287 .field_bit_size = 1,
2288 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2289 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2290 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2293 .description = "ecv_valid",
2294 .field_bit_size = 1,
2295 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2296 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2297 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2300 .description = "vtag_tpid",
2301 .field_bit_size = 16,
2302 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2303 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2304 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2307 .description = "vtag_vid",
2308 .field_bit_size = 12,
2309 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2310 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2311 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2314 .description = "vtag_de",
2315 .field_bit_size = 1,
2316 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2317 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2318 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2321 .description = "vtag_pcp",
2322 .field_bit_size = 3,
2323 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2324 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2325 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2328 .description = "spare",
2329 .field_bit_size = 0,
2330 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2331 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2332 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2334 /* act_tid: 2, wh_plus, table: mirror_tbl.wr */
2336 .description = "act_rec_ptr",
2337 .field_bit_size = 16,
2338 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2339 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2340 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2342 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
2343 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
2346 .description = "enable",
2347 .field_bit_size = 1,
2348 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2349 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2350 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2355 .description = "copy",
2356 .field_bit_size = 1,
2357 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2358 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2359 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2362 .description = "ign_drop",
2363 .field_bit_size = 1,
2364 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2365 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2366 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2369 .description = "reserved",
2370 .field_bit_size = 2,
2371 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2372 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2373 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2376 .description = "sp_ptr",
2377 .field_bit_size = 11,
2378 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2379 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2380 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2382 /* act_tid: 2, wh_plus, table: shared_mirror_record.wr */
2384 .description = "rid",
2385 .field_bit_size = 32,
2386 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2387 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2388 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2390 (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
2391 BNXT_ULP_RF_IDX_RID & 0xff}
2394 .description = "mirror_id",
2395 .field_bit_size = 2,
2396 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_PLUS_CONST_POST,
2397 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2399 (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
2400 BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff},
2401 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2406 /* act_tid: 3, wh_plus, table: int_flow_counter_tbl.0 */
2408 .description = "count",
2409 .field_bit_size = 64,
2410 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2411 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2412 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2414 /* act_tid: 3, wh_plus, table: act_modify_ipv4_src.0 */
2416 .description = "ipv4_addr",
2417 .field_bit_size = 32,
2418 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2419 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2420 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2422 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
2423 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff}
2425 /* act_tid: 3, wh_plus, table: act_modify_ipv4_dst.0 */
2427 .description = "ipv4_addr",
2428 .field_bit_size = 32,
2429 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2430 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2431 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2433 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
2434 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff}
2436 /* act_tid: 3, wh_plus, table: int_encap_mac_record.0 */
2438 .description = "ecv_tun_type",
2439 .field_bit_size = 3,
2440 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2441 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2442 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2445 .description = "ecv_l4_type",
2446 .field_bit_size = 3,
2447 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2448 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2449 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2452 .description = "ecv_l3_type",
2453 .field_bit_size = 3,
2454 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2455 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2456 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2459 .description = "ecv_l2_en",
2460 .field_bit_size = 1,
2461 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2462 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2463 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2465 ULP_WP_SYM_ECV_L2_EN_YES}
2468 .description = "ecv_vtag_type",
2469 .field_bit_size = 4,
2470 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2471 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2472 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2475 .description = "ecv_custom_en",
2476 .field_bit_size = 1,
2477 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2478 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2479 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2482 .description = "ecv_valid",
2483 .field_bit_size = 1,
2484 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2485 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2486 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2491 .description = "vtag_tpid",
2492 .field_bit_size = 16,
2493 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2494 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2495 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2498 .description = "vtag_vid",
2499 .field_bit_size = 12,
2500 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2501 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2502 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2505 .description = "vtag_de",
2506 .field_bit_size = 1,
2507 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2508 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2509 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2512 .description = "vtag_pcp",
2513 .field_bit_size = 3,
2514 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2515 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2516 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2519 .description = "spare",
2520 .field_bit_size = 80,
2521 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2522 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2523 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2525 /* act_tid: 3, wh_plus, table: int_full_act_record.0 */
2527 .description = "flow_cntr_ptr",
2528 .field_bit_size = 14,
2529 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2530 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2531 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2533 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2534 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
2537 .description = "age_enable",
2538 .field_bit_size = 1,
2539 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2540 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2541 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2544 .description = "agg_cntr_en",
2545 .field_bit_size = 1,
2546 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2547 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2548 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2551 .description = "rate_cntr_en",
2552 .field_bit_size = 1,
2553 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2554 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2555 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2558 .description = "flow_cntr_en",
2559 .field_bit_size = 1,
2560 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2561 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2562 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2564 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
2565 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
2566 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
2567 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
2568 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
2569 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
2570 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
2571 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
2574 .description = "tcpflags_key",
2575 .field_bit_size = 8,
2576 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2577 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2578 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2581 .description = "tcpflags_mir",
2582 .field_bit_size = 1,
2583 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2584 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2585 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2588 .description = "tcpflags_match",
2589 .field_bit_size = 1,
2590 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2591 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2592 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2595 .description = "encap_ptr",
2596 .field_bit_size = 11,
2597 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2598 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2599 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
2601 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff,
2602 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff}
2605 .description = "dst_ip_ptr",
2606 .field_bit_size = 10,
2607 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2608 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2609 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2611 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
2612 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
2615 .description = "tcp_dst_port",
2616 .field_bit_size = 16,
2617 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2618 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
2620 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
2621 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
2622 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
2623 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
2624 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
2625 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
2626 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
2627 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
2628 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2630 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
2631 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
2632 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
2635 .description = "src_ip_ptr",
2636 .field_bit_size = 10,
2637 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2638 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2639 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2641 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
2642 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
2645 .description = "tcp_src_port",
2646 .field_bit_size = 16,
2647 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2648 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
2650 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
2651 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
2652 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
2653 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
2654 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
2655 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
2656 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
2657 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
2658 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2660 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
2661 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
2662 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
2665 .description = "meter_id",
2666 .field_bit_size = 10,
2667 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2668 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2669 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2672 .description = "l3_rdir",
2673 .field_bit_size = 1,
2674 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2675 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2676 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2679 .description = "tl3_rdir",
2680 .field_bit_size = 1,
2681 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2682 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2683 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2686 .description = "l3_ttl_dec",
2687 .field_bit_size = 1,
2688 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2689 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2690 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2692 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
2693 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
2696 .description = "tl3_ttl_dec",
2697 .field_bit_size = 1,
2698 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2699 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2700 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2702 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
2703 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
2706 .description = "decap_func",
2707 .field_bit_size = 4,
2708 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2709 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
2711 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
2712 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
2713 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
2714 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
2715 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
2716 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
2717 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
2718 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff},
2719 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2721 ULP_WP_SYM_DECAP_FUNC_THRU_TL2},
2722 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2724 ULP_WP_SYM_DECAP_FUNC_THRU_L2}
2727 .description = "vnic_or_vport",
2728 .field_bit_size = 12,
2729 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2730 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2731 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2733 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
2734 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
2737 .description = "pop_vlan",
2738 .field_bit_size = 1,
2739 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2740 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2741 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2744 .description = "meter",
2745 .field_bit_size = 1,
2746 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2747 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2748 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2751 .description = "mirror",
2752 .field_bit_size = 2,
2753 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2754 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2755 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2758 .description = "drop",
2759 .field_bit_size = 1,
2760 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2761 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2762 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2765 .description = "hit",
2766 .field_bit_size = 1,
2767 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2768 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2769 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2772 .description = "type",
2773 .field_bit_size = 1,
2774 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2775 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2776 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2778 /* act_tid: 3, wh_plus, table: ext_full_act_record.0 */
2780 .description = "flow_cntr_ptr",
2781 .field_bit_size = 14,
2782 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2783 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2784 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2786 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
2787 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
2790 .description = "age_enable",
2791 .field_bit_size = 1,
2792 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2793 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2794 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2797 .description = "agg_cntr_en",
2798 .field_bit_size = 1,
2799 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2800 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2801 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2804 .description = "rate_cntr_en",
2805 .field_bit_size = 1,
2806 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2807 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2808 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2811 .description = "flow_cntr_en",
2812 .field_bit_size = 1,
2813 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2814 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2815 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
2817 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
2818 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
2819 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
2820 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
2821 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
2822 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
2823 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
2824 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
2827 .description = "flow_cntr_ext",
2828 .field_bit_size = 1,
2829 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2830 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2831 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2834 .description = "tcpflags_key",
2835 .field_bit_size = 8,
2836 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2837 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2838 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2841 .description = "tcpflags_mir",
2842 .field_bit_size = 1,
2843 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2844 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2845 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2848 .description = "tcpflags_match",
2849 .field_bit_size = 1,
2850 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2851 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2852 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2855 .description = "encap_ptr",
2856 .field_bit_size = 11,
2857 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2858 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2859 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
2861 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff,
2862 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff}
2865 .description = "encap_rec_int",
2866 .field_bit_size = 1,
2867 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2868 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2869 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2874 .description = "dst_ip_ptr",
2875 .field_bit_size = 10,
2876 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2877 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2878 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2880 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
2881 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
2884 .description = "tcp_dst_port",
2885 .field_bit_size = 16,
2886 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2887 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
2889 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
2890 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
2891 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
2892 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
2893 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
2894 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
2895 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
2896 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
2897 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2899 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
2900 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
2901 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
2904 .description = "src_ip_ptr",
2905 .field_bit_size = 10,
2906 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2907 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2908 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
2910 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
2911 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
2914 .description = "tcp_src_port",
2915 .field_bit_size = 16,
2916 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2917 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
2919 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
2920 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
2921 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
2922 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
2923 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
2924 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
2925 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
2926 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
2927 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
2929 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
2930 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
2931 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
2934 .description = "meter_id",
2935 .field_bit_size = 10,
2936 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2937 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2938 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2941 .description = "l3_rdir",
2942 .field_bit_size = 1,
2943 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2944 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2945 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2948 .description = "tl3_rdir",
2949 .field_bit_size = 1,
2950 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2951 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2952 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
2955 .description = "l3_ttl_dec",
2956 .field_bit_size = 1,
2957 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2958 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2959 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2961 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
2962 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
2965 .description = "tl3_ttl_dec",
2966 .field_bit_size = 1,
2967 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2968 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
2969 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
2971 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
2972 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
2975 .description = "decap_func",
2976 .field_bit_size = 4,
2977 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2978 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
2980 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
2981 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
2982 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
2983 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
2984 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
2985 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
2986 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
2987 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff},
2988 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
2990 ULP_WP_SYM_DECAP_FUNC_THRU_TL2},
2991 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
2993 ULP_WP_SYM_DECAP_FUNC_THRU_L2}
2996 .description = "vnic_or_vport",
2997 .field_bit_size = 12,
2998 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
2999 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3000 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3002 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
3003 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
3006 .description = "pop_vlan",
3007 .field_bit_size = 1,
3008 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3009 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3010 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3013 .description = "meter",
3014 .field_bit_size = 1,
3015 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3016 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3017 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3020 .description = "mirror",
3021 .field_bit_size = 2,
3022 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3023 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3024 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3027 .description = "drop",
3028 .field_bit_size = 1,
3029 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3030 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3031 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3034 .description = "ecv_tun_type",
3035 .field_bit_size = 3,
3036 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3037 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3038 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3041 .description = "ecv_l4_type",
3042 .field_bit_size = 3,
3043 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3044 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3045 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3048 .description = "ecv_l3_type",
3049 .field_bit_size = 3,
3050 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3051 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3052 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3055 .description = "ecv_l2_en",
3056 .field_bit_size = 1,
3057 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3058 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3059 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3061 ULP_WP_SYM_ECV_L2_EN_YES}
3064 .description = "ecv_vtag_type",
3065 .field_bit_size = 4,
3066 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3067 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3068 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3071 .description = "ecv_custom_en",
3072 .field_bit_size = 1,
3073 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3074 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3075 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3078 .description = "ecv_valid",
3079 .field_bit_size = 1,
3080 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3081 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3082 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3085 .description = "vtag_tpid",
3086 .field_bit_size = 16,
3087 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3088 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3089 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3092 .description = "vtag_vid",
3093 .field_bit_size = 12,
3094 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3095 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3096 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3099 .description = "vtag_de",
3100 .field_bit_size = 1,
3101 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3102 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3103 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3106 .description = "vtag_pcp",
3107 .field_bit_size = 3,
3108 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3109 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3110 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3113 .description = "spare",
3114 .field_bit_size = 0,
3115 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3116 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3117 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3119 /* act_tid: 4, wh_plus, table: int_flow_counter_tbl.0 */
3121 .description = "count",
3122 .field_bit_size = 64,
3123 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3124 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3125 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3127 /* act_tid: 4, wh_plus, table: int_vtag_encap_record.0 */
3129 .description = "ecv_tun_type",
3130 .field_bit_size = 3,
3131 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3132 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3133 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3136 .description = "ecv_l4_type",
3137 .field_bit_size = 3,
3138 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3139 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3140 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3143 .description = "ecv_l3_type",
3144 .field_bit_size = 3,
3145 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3146 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3147 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3150 .description = "ecv_l2_en",
3151 .field_bit_size = 1,
3152 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3153 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3154 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3157 .description = "ecv_vtag_type",
3158 .field_bit_size = 4,
3159 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3160 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3161 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3163 ULP_WP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
3166 .description = "ecv_custom_en",
3167 .field_bit_size = 1,
3168 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3169 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3170 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3173 .description = "ecv_valid",
3174 .field_bit_size = 1,
3175 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3176 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3177 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3182 .description = "vtag_tpid",
3183 .field_bit_size = 16,
3184 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3185 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3186 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3188 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
3189 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff}
3192 .description = "vtag_vid",
3193 .field_bit_size = 12,
3194 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3195 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3196 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3198 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
3199 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff}
3202 .description = "vtag_de",
3203 .field_bit_size = 1,
3204 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3205 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3206 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3209 .description = "vtag_pcp",
3210 .field_bit_size = 3,
3211 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3212 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3213 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3215 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
3216 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
3219 .description = "spare",
3220 .field_bit_size = 80,
3221 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3222 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3223 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3225 /* act_tid: 4, wh_plus, table: int_full_act_record.0 */
3227 .description = "flow_cntr_ptr",
3228 .field_bit_size = 14,
3229 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3230 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3231 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3233 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3234 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
3237 .description = "age_enable",
3238 .field_bit_size = 1,
3239 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3240 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3241 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3244 .description = "agg_cntr_en",
3245 .field_bit_size = 1,
3246 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3247 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3248 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3251 .description = "rate_cntr_en",
3252 .field_bit_size = 1,
3253 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3254 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3255 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3258 .description = "flow_cntr_en",
3259 .field_bit_size = 1,
3260 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3261 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3262 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3264 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
3265 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
3266 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
3267 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
3268 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
3269 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
3270 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
3271 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
3274 .description = "tcpflags_key",
3275 .field_bit_size = 8,
3276 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3277 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3278 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3281 .description = "tcpflags_mir",
3282 .field_bit_size = 1,
3283 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3284 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3285 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3288 .description = "tcpflags_match",
3289 .field_bit_size = 1,
3290 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3291 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3292 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3295 .description = "encap_ptr",
3296 .field_bit_size = 11,
3297 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3298 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3299 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3301 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
3302 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
3305 .description = "dst_ip_ptr",
3306 .field_bit_size = 10,
3307 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3308 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3309 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3312 .description = "tcp_dst_port",
3313 .field_bit_size = 16,
3314 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3315 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3316 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3319 .description = "src_ip_ptr",
3320 .field_bit_size = 10,
3321 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3322 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3323 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3326 .description = "tcp_src_port",
3327 .field_bit_size = 16,
3328 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3329 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3330 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3333 .description = "meter_id",
3334 .field_bit_size = 10,
3335 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3336 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3337 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3340 .description = "l3_rdir",
3341 .field_bit_size = 1,
3342 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3343 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3344 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3347 .description = "tl3_rdir",
3348 .field_bit_size = 1,
3349 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3350 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3351 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3354 .description = "l3_ttl_dec",
3355 .field_bit_size = 1,
3356 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3357 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3358 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3360 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3361 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
3364 .description = "tl3_ttl_dec",
3365 .field_bit_size = 1,
3366 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3367 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3368 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3370 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3371 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
3374 .description = "decap_func",
3375 .field_bit_size = 4,
3376 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3377 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3378 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3381 .description = "vnic_or_vport",
3382 .field_bit_size = 12,
3383 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3384 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3385 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3387 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3388 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
3391 .description = "pop_vlan",
3392 .field_bit_size = 1,
3393 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3394 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3395 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3398 .description = "meter",
3399 .field_bit_size = 1,
3400 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3401 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3402 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3405 .description = "mirror",
3406 .field_bit_size = 2,
3407 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3408 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3409 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3412 .description = "drop",
3413 .field_bit_size = 1,
3414 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3415 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3416 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3418 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
3419 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
3420 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
3421 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
3422 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
3423 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
3424 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
3425 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
3428 .description = "hit",
3429 .field_bit_size = 1,
3430 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3431 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3432 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3435 .description = "type",
3436 .field_bit_size = 1,
3437 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3438 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3439 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3441 /* act_tid: 4, wh_plus, table: ext_full_act_record.no_tag */
3443 .description = "flow_cntr_ptr",
3444 .field_bit_size = 14,
3445 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3446 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3447 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3449 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3450 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
3453 .description = "age_enable",
3454 .field_bit_size = 1,
3455 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3456 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3457 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3460 .description = "agg_cntr_en",
3461 .field_bit_size = 1,
3462 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3463 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3464 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3467 .description = "rate_cntr_en",
3468 .field_bit_size = 1,
3469 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3470 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3471 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3474 .description = "flow_cntr_en",
3475 .field_bit_size = 1,
3476 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3477 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3478 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3480 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
3481 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
3482 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
3483 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
3484 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
3485 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
3486 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
3487 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
3490 .description = "flow_cntr_ext",
3491 .field_bit_size = 1,
3492 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3493 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3494 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3497 .description = "tcpflags_key",
3498 .field_bit_size = 8,
3499 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3500 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3501 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3504 .description = "tcpflags_mir",
3505 .field_bit_size = 1,
3506 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3507 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3508 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3511 .description = "tcpflags_match",
3512 .field_bit_size = 1,
3513 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3514 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3515 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3518 .description = "encap_ptr",
3519 .field_bit_size = 11,
3520 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3521 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3522 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3525 .description = "encap_rec_int",
3526 .field_bit_size = 1,
3527 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3528 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3529 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3532 .description = "dst_ip_ptr",
3533 .field_bit_size = 10,
3534 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3535 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3536 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3539 .description = "tcp_dst_port",
3540 .field_bit_size = 16,
3541 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3542 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3543 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3546 .description = "src_ip_ptr",
3547 .field_bit_size = 10,
3548 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3549 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3550 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3553 .description = "tcp_src_port",
3554 .field_bit_size = 16,
3555 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3556 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3557 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3560 .description = "meter_id",
3561 .field_bit_size = 10,
3562 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3563 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3564 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3567 .description = "l3_rdir",
3568 .field_bit_size = 1,
3569 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3570 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3571 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3574 .description = "tl3_rdir",
3575 .field_bit_size = 1,
3576 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3577 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3578 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3581 .description = "l3_ttl_dec",
3582 .field_bit_size = 1,
3583 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3584 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3585 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3587 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3588 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
3591 .description = "tl3_ttl_dec",
3592 .field_bit_size = 1,
3593 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3594 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3595 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3597 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3598 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
3601 .description = "decap_func",
3602 .field_bit_size = 4,
3603 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3604 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3605 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3608 .description = "vnic_or_vport",
3609 .field_bit_size = 12,
3610 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3611 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3612 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3614 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3615 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
3618 .description = "pop_vlan",
3619 .field_bit_size = 1,
3620 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3621 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3622 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3625 .description = "meter",
3626 .field_bit_size = 1,
3627 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3628 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3629 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3632 .description = "mirror",
3633 .field_bit_size = 2,
3634 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3635 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3636 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3639 .description = "drop",
3640 .field_bit_size = 1,
3641 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3642 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3643 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3645 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
3646 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
3647 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
3648 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
3649 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
3650 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
3651 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
3652 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
3655 .description = "ecv_tun_type",
3656 .field_bit_size = 3,
3657 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3658 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3659 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3662 .description = "ecv_l4_type",
3663 .field_bit_size = 3,
3664 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3665 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3666 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3669 .description = "ecv_l3_type",
3670 .field_bit_size = 3,
3671 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3672 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3673 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3676 .description = "ecv_l2_en",
3677 .field_bit_size = 1,
3678 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3679 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3680 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3682 ULP_WP_SYM_ECV_L2_EN_YES}
3685 .description = "ecv_vtag_type",
3686 .field_bit_size = 4,
3687 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3688 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3689 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3692 .description = "ecv_custom_en",
3693 .field_bit_size = 1,
3694 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3695 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3696 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3699 .description = "ecv_valid",
3700 .field_bit_size = 1,
3701 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3702 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3703 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3706 .description = "vtag_tpid",
3707 .field_bit_size = 16,
3708 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3709 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3710 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3713 .description = "vtag_vid",
3714 .field_bit_size = 12,
3715 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3716 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3717 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3720 .description = "vtag_de",
3721 .field_bit_size = 1,
3722 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3723 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3724 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3727 .description = "vtag_pcp",
3728 .field_bit_size = 3,
3729 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3730 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3731 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3734 .description = "spare",
3735 .field_bit_size = 0,
3736 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3737 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3738 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3740 /* act_tid: 4, wh_plus, table: ext_full_act_record.one_tag */
3742 .description = "flow_cntr_ptr",
3743 .field_bit_size = 14,
3744 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3745 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3746 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
3748 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
3749 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
3752 .description = "age_enable",
3753 .field_bit_size = 1,
3754 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3755 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3756 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3759 .description = "agg_cntr_en",
3760 .field_bit_size = 1,
3761 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3762 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3763 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3766 .description = "rate_cntr_en",
3767 .field_bit_size = 1,
3768 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3769 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3770 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3773 .description = "flow_cntr_en",
3774 .field_bit_size = 1,
3775 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3776 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3777 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3779 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
3780 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
3781 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
3782 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
3783 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
3784 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
3785 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
3786 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
3789 .description = "flow_cntr_ext",
3790 .field_bit_size = 1,
3791 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3792 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3793 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3796 .description = "tcpflags_key",
3797 .field_bit_size = 8,
3798 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3799 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3800 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3803 .description = "tcpflags_mir",
3804 .field_bit_size = 1,
3805 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3806 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3807 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3810 .description = "tcpflags_match",
3811 .field_bit_size = 1,
3812 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3813 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3814 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3817 .description = "encap_ptr",
3818 .field_bit_size = 11,
3819 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3820 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3821 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3824 .description = "encap_rec_int",
3825 .field_bit_size = 1,
3826 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3827 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3828 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3831 .description = "dst_ip_ptr",
3832 .field_bit_size = 10,
3833 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3834 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3835 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3838 .description = "tcp_dst_port",
3839 .field_bit_size = 16,
3840 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3841 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3842 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3845 .description = "src_ip_ptr",
3846 .field_bit_size = 10,
3847 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3848 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3849 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3852 .description = "tcp_src_port",
3853 .field_bit_size = 16,
3854 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3855 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3856 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3859 .description = "meter_id",
3860 .field_bit_size = 10,
3861 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3862 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3863 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3866 .description = "l3_rdir",
3867 .field_bit_size = 1,
3868 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3869 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3870 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3873 .description = "tl3_rdir",
3874 .field_bit_size = 1,
3875 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3876 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3877 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3880 .description = "l3_ttl_dec",
3881 .field_bit_size = 1,
3882 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3883 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3884 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3886 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
3887 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
3890 .description = "tl3_ttl_dec",
3891 .field_bit_size = 1,
3892 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3893 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3894 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
3896 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
3897 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
3900 .description = "decap_func",
3901 .field_bit_size = 4,
3902 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3903 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3904 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3907 .description = "vnic_or_vport",
3908 .field_bit_size = 12,
3909 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3910 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3911 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
3913 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
3914 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
3917 .description = "pop_vlan",
3918 .field_bit_size = 1,
3919 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3920 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3921 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3923 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
3924 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
3925 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
3926 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
3927 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
3928 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
3929 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
3930 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff}
3933 .description = "meter",
3934 .field_bit_size = 1,
3935 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3936 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3937 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3940 .description = "mirror",
3941 .field_bit_size = 2,
3942 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3943 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3944 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3947 .description = "drop",
3948 .field_bit_size = 1,
3949 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3950 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3951 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
3953 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
3954 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
3955 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
3956 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
3957 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
3958 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
3959 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
3960 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
3963 .description = "ecv_tun_type",
3964 .field_bit_size = 3,
3965 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3966 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3967 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3970 .description = "ecv_l4_type",
3971 .field_bit_size = 3,
3972 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3973 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3974 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3977 .description = "ecv_l3_type",
3978 .field_bit_size = 3,
3979 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3980 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3981 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3984 .description = "ecv_l2_en",
3985 .field_bit_size = 1,
3986 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3987 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3988 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
3991 .description = "ecv_vtag_type",
3992 .field_bit_size = 4,
3993 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
3994 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
3995 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
3997 ULP_WP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
4000 .description = "ecv_custom_en",
4001 .field_bit_size = 1,
4002 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4003 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4004 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4007 .description = "ecv_valid",
4008 .field_bit_size = 1,
4009 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4010 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4011 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4016 .description = "vtag_tpid",
4017 .field_bit_size = 16,
4018 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4019 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4020 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4022 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
4023 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff}
4026 .description = "vtag_vid",
4027 .field_bit_size = 12,
4028 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4029 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4030 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4032 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
4033 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff}
4036 .description = "vtag_de",
4037 .field_bit_size = 1,
4038 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4039 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4040 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4043 .description = "vtag_pcp",
4044 .field_bit_size = 3,
4045 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4046 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4047 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4049 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
4050 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
4053 .description = "spare",
4054 .field_bit_size = 0,
4055 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4056 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4057 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4059 /* act_tid: 5, wh_plus, table: int_flow_counter_tbl.0 */
4061 .description = "count",
4062 .field_bit_size = 64,
4063 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4064 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4065 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4067 /* act_tid: 5, wh_plus, table: act_modify_ipv4_src.0 */
4069 .description = "ipv4_addr",
4070 .field_bit_size = 32,
4071 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4072 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4073 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4075 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
4076 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff}
4078 /* act_tid: 5, wh_plus, table: act_modify_ipv4_dst.0 */
4080 .description = "ipv4_addr",
4081 .field_bit_size = 32,
4082 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4083 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4084 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4086 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
4087 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff}
4089 /* act_tid: 5, wh_plus, table: int_encap_mac_record.dummy */
4091 .description = "ecv_tun_type",
4092 .field_bit_size = 3,
4093 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4094 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4095 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4098 .description = "ecv_l4_type",
4099 .field_bit_size = 3,
4100 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4101 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4102 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4105 .description = "ecv_l3_type",
4106 .field_bit_size = 3,
4107 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4108 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4109 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4112 .description = "ecv_l2_en",
4113 .field_bit_size = 1,
4114 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4115 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4116 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4118 ULP_WP_SYM_ECV_L2_EN_YES}
4121 .description = "ecv_vtag_type",
4122 .field_bit_size = 4,
4123 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4124 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4125 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4128 .description = "ecv_custom_en",
4129 .field_bit_size = 1,
4130 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4131 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4132 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4135 .description = "ecv_valid",
4136 .field_bit_size = 1,
4137 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4138 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4139 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4144 .description = "vtag_tpid",
4145 .field_bit_size = 16,
4146 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4147 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4148 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4151 .description = "vtag_vid",
4152 .field_bit_size = 12,
4153 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4154 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4155 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4158 .description = "vtag_de",
4159 .field_bit_size = 1,
4160 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4161 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4162 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4165 .description = "vtag_pcp",
4166 .field_bit_size = 3,
4167 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4168 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4169 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4172 .description = "spare",
4173 .field_bit_size = 80,
4174 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4175 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4176 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4178 /* act_tid: 5, wh_plus, table: int_full_act_record.0 */
4180 .description = "flow_cntr_ptr",
4181 .field_bit_size = 14,
4182 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4183 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4184 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4186 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
4187 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
4190 .description = "age_enable",
4191 .field_bit_size = 1,
4192 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4193 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4194 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4197 .description = "agg_cntr_en",
4198 .field_bit_size = 1,
4199 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4200 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4201 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4204 .description = "rate_cntr_en",
4205 .field_bit_size = 1,
4206 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4207 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4208 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4211 .description = "flow_cntr_en",
4212 .field_bit_size = 1,
4213 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4214 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4215 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4217 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
4218 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
4219 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
4220 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
4221 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
4222 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
4223 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
4224 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
4227 .description = "tcpflags_key",
4228 .field_bit_size = 8,
4229 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4230 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4231 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4234 .description = "tcpflags_mir",
4235 .field_bit_size = 1,
4236 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4237 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4238 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4241 .description = "tcpflags_match",
4242 .field_bit_size = 1,
4243 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4244 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4245 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4248 .description = "encap_ptr",
4249 .field_bit_size = 11,
4250 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4251 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4252 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
4254 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff,
4255 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff}
4258 .description = "dst_ip_ptr",
4259 .field_bit_size = 10,
4260 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4261 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4262 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4264 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
4265 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
4268 .description = "tcp_dst_port",
4269 .field_bit_size = 16,
4270 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4271 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
4273 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
4274 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
4275 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
4276 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
4277 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
4278 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
4279 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
4280 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
4281 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4283 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
4284 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
4285 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
4288 .description = "src_ip_ptr",
4289 .field_bit_size = 10,
4290 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4291 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4292 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4294 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
4295 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
4298 .description = "tcp_src_port",
4299 .field_bit_size = 16,
4300 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4301 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
4303 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
4304 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
4305 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
4306 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
4307 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
4308 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
4309 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
4310 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
4311 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4313 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
4314 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
4315 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
4318 .description = "meter_id",
4319 .field_bit_size = 10,
4320 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4321 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4322 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4325 .description = "l3_rdir",
4326 .field_bit_size = 1,
4327 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4328 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4329 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4332 .description = "tl3_rdir",
4333 .field_bit_size = 1,
4334 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4335 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4336 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4339 .description = "l3_ttl_dec",
4340 .field_bit_size = 1,
4341 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4342 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4343 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4345 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
4346 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
4349 .description = "tl3_ttl_dec",
4350 .field_bit_size = 1,
4351 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4352 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4353 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4355 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
4356 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
4359 .description = "decap_func",
4360 .field_bit_size = 4,
4361 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4362 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
4364 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
4365 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
4366 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
4367 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
4368 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
4369 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
4370 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
4371 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff},
4372 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4374 ULP_WP_SYM_DECAP_FUNC_THRU_TL2},
4375 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
4377 ULP_WP_SYM_DECAP_FUNC_THRU_L2}
4380 .description = "vnic_or_vport",
4381 .field_bit_size = 12,
4382 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4383 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4384 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4386 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
4387 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
4390 .description = "pop_vlan",
4391 .field_bit_size = 1,
4392 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4393 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4394 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4397 .description = "meter",
4398 .field_bit_size = 1,
4399 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4400 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4401 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4404 .description = "mirror",
4405 .field_bit_size = 2,
4406 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4407 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4408 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4411 .description = "drop",
4412 .field_bit_size = 1,
4413 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4414 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4415 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4418 .description = "hit",
4419 .field_bit_size = 1,
4420 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4421 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4422 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4425 .description = "type",
4426 .field_bit_size = 1,
4427 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4428 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4429 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4431 /* act_tid: 5, wh_plus, table: ext_full_act_record.0 */
4433 .description = "flow_cntr_ptr",
4434 .field_bit_size = 14,
4435 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4436 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4437 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4439 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
4440 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
4443 .description = "age_enable",
4444 .field_bit_size = 1,
4445 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4446 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4447 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4450 .description = "agg_cntr_en",
4451 .field_bit_size = 1,
4452 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4453 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4454 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4457 .description = "rate_cntr_en",
4458 .field_bit_size = 1,
4459 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4460 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4461 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4464 .description = "flow_cntr_en",
4465 .field_bit_size = 1,
4466 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4467 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4468 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4470 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
4471 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
4472 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
4473 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
4474 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
4475 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
4476 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
4477 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
4480 .description = "flow_cntr_ext",
4481 .field_bit_size = 1,
4482 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4483 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4484 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4487 .description = "tcpflags_key",
4488 .field_bit_size = 8,
4489 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4490 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4491 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4494 .description = "tcpflags_mir",
4495 .field_bit_size = 1,
4496 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4497 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4498 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4501 .description = "tcpflags_match",
4502 .field_bit_size = 1,
4503 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4504 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4505 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4508 .description = "encap_ptr",
4509 .field_bit_size = 11,
4510 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4511 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4512 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
4514 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff,
4515 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff}
4518 .description = "encap_rec_int",
4519 .field_bit_size = 1,
4520 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4521 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4522 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4527 .description = "dst_ip_ptr",
4528 .field_bit_size = 10,
4529 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4530 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4531 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4533 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
4534 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff}
4537 .description = "tcp_dst_port",
4538 .field_bit_size = 16,
4539 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4540 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
4542 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
4543 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
4544 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
4545 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
4546 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
4547 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
4548 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
4549 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
4550 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4552 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
4553 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
4554 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
4557 .description = "src_ip_ptr",
4558 .field_bit_size = 10,
4559 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4560 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4561 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4563 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
4564 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff}
4567 .description = "tcp_src_port",
4568 .field_bit_size = 16,
4569 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4570 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_ACT_BIT,
4572 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
4573 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
4574 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
4575 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
4576 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
4577 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
4578 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
4579 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
4580 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4582 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
4583 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
4584 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO
4587 .description = "meter_id",
4588 .field_bit_size = 10,
4589 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4590 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4591 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4594 .description = "l3_rdir",
4595 .field_bit_size = 1,
4596 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4597 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4598 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4601 .description = "tl3_rdir",
4602 .field_bit_size = 1,
4603 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4604 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4605 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4608 .description = "l3_ttl_dec",
4609 .field_bit_size = 1,
4610 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4611 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4612 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4614 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
4615 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
4618 .description = "tl3_ttl_dec",
4619 .field_bit_size = 1,
4620 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4621 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4622 .field_src1 = BNXT_ULP_FIELD_SRC_CF,
4624 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
4625 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
4628 .description = "decap_func",
4629 .field_bit_size = 4,
4630 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4631 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_HDR_BIT,
4633 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
4634 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
4635 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
4636 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
4637 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
4638 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
4639 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
4640 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff},
4641 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4643 ULP_WP_SYM_DECAP_FUNC_THRU_TL2},
4644 .field_src2 = BNXT_ULP_FIELD_SRC_CONST,
4646 ULP_WP_SYM_DECAP_FUNC_THRU_L2}
4649 .description = "vnic_or_vport",
4650 .field_bit_size = 12,
4651 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4652 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4653 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4655 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
4656 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
4659 .description = "pop_vlan",
4660 .field_bit_size = 1,
4661 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4662 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4663 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4666 .description = "meter",
4667 .field_bit_size = 1,
4668 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4669 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4670 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4673 .description = "mirror",
4674 .field_bit_size = 2,
4675 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4676 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4677 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4680 .description = "drop",
4681 .field_bit_size = 1,
4682 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4683 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4684 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4687 .description = "ecv_tun_type",
4688 .field_bit_size = 3,
4689 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4690 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4691 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4694 .description = "ecv_l4_type",
4695 .field_bit_size = 3,
4696 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4697 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4698 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4701 .description = "ecv_l3_type",
4702 .field_bit_size = 3,
4703 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4704 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4705 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4708 .description = "ecv_l2_en",
4709 .field_bit_size = 1,
4710 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4711 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4712 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4714 ULP_WP_SYM_ECV_L2_EN_YES}
4717 .description = "ecv_vtag_type",
4718 .field_bit_size = 4,
4719 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4720 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4721 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4724 .description = "ecv_custom_en",
4725 .field_bit_size = 1,
4726 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4727 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4728 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4731 .description = "ecv_valid",
4732 .field_bit_size = 1,
4733 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4734 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4735 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4738 .description = "vtag_tpid",
4739 .field_bit_size = 16,
4740 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4741 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4742 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4745 .description = "vtag_vid",
4746 .field_bit_size = 12,
4747 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4748 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4749 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4752 .description = "vtag_de",
4753 .field_bit_size = 1,
4754 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4755 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4756 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4759 .description = "vtag_pcp",
4760 .field_bit_size = 3,
4761 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4762 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4763 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4766 .description = "spare",
4767 .field_bit_size = 0,
4768 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4769 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4770 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4772 /* act_tid: 6, wh_plus, table: int_flow_counter_tbl.0 */
4774 .description = "count",
4775 .field_bit_size = 64,
4776 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4777 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4778 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4780 /* act_tid: 6, wh_plus, table: sp_smac_ipv4.0 */
4782 .description = "smac",
4783 .field_bit_size = 48,
4784 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4785 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4786 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4788 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
4789 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff}
4792 .description = "ipv4_src_addr",
4793 .field_bit_size = 32,
4794 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4795 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4796 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4798 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
4799 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff}
4802 .description = "reserved",
4803 .field_bit_size = 48,
4804 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4805 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4806 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4808 /* act_tid: 6, wh_plus, table: sp_smac_ipv6.0 */
4810 .description = "smac",
4811 .field_bit_size = 48,
4812 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4813 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4814 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4816 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
4817 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff}
4820 .description = "ipv6_src_addr",
4821 .field_bit_size = 128,
4822 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4823 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4824 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4826 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
4827 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff}
4830 .description = "reserved",
4831 .field_bit_size = 16,
4832 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4833 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4834 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4836 /* act_tid: 6, wh_plus, table: int_tun_encap_record.0 */
4838 .description = "ecv_tun_type",
4839 .field_bit_size = 3,
4840 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4841 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4842 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4844 ULP_WP_SYM_ECV_TUN_TYPE_VXLAN}
4847 .description = "ecv_l4_type",
4848 .field_bit_size = 3,
4849 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4850 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4851 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4853 ULP_WP_SYM_ECV_L4_TYPE_UDP_CSUM}
4856 .description = "ecv_l3_type",
4857 .field_bit_size = 3,
4858 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4859 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4860 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4862 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
4863 BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff}
4866 .description = "ecv_l2_en",
4867 .field_bit_size = 1,
4868 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4869 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4870 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4875 .description = "ecv_vtag_type",
4876 .field_bit_size = 4,
4877 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4878 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4879 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4881 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
4882 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff}
4885 .description = "ecv_custom_en",
4886 .field_bit_size = 1,
4887 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4888 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4889 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4892 .description = "ecv_valid",
4893 .field_bit_size = 1,
4894 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4895 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4896 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
4901 .description = "encap_l2_dmac",
4902 .field_bit_size = 48,
4903 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4904 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4905 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4907 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
4908 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff}
4911 .description = "encap_vtag",
4912 .field_bit_size = 0,
4913 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4914 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4915 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP_SZ,
4917 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
4918 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
4919 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
4920 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff}
4923 .description = "encap_ip",
4924 .field_bit_size = 0,
4925 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4926 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4927 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP_SZ,
4929 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
4930 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
4931 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
4932 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff}
4935 .description = "encap_udp",
4936 .field_bit_size = 32,
4937 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4938 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4939 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
4941 (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
4942 BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff}
4945 .description = "encap_tun",
4946 .field_bit_size = 0,
4947 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4948 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4949 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP_SZ,
4951 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
4952 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
4953 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
4954 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff}
4956 /* act_tid: 6, wh_plus, table: int_full_act_record.0 */
4958 .description = "flow_cntr_ptr",
4959 .field_bit_size = 14,
4960 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4961 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4962 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
4964 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
4965 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
4968 .description = "age_enable",
4969 .field_bit_size = 1,
4970 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4971 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4972 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4975 .description = "agg_cntr_en",
4976 .field_bit_size = 1,
4977 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4978 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4979 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4982 .description = "rate_cntr_en",
4983 .field_bit_size = 1,
4984 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4985 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4986 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
4989 .description = "flow_cntr_en",
4990 .field_bit_size = 1,
4991 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
4992 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
4993 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
4995 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
4996 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
4997 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
4998 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
4999 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
5000 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
5001 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
5002 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
5005 .description = "tcpflags_key",
5006 .field_bit_size = 8,
5007 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5008 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5009 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5012 .description = "tcpflags_mir",
5013 .field_bit_size = 1,
5014 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5015 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5016 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5019 .description = "tcpflags_match",
5020 .field_bit_size = 1,
5021 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5022 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5023 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5026 .description = "encap_ptr",
5027 .field_bit_size = 11,
5028 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5029 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5030 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5032 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
5033 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
5036 .description = "dst_ip_ptr",
5037 .field_bit_size = 10,
5038 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5039 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5040 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5043 .description = "tcp_dst_port",
5044 .field_bit_size = 16,
5045 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5046 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5047 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5050 .description = "src_ip_ptr",
5051 .field_bit_size = 10,
5052 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5053 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5054 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5057 .description = "tcp_src_port",
5058 .field_bit_size = 16,
5059 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5060 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5061 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5064 .description = "meter_id",
5065 .field_bit_size = 10,
5066 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5067 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5068 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5071 .description = "l3_rdir",
5072 .field_bit_size = 1,
5073 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5074 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5075 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5078 .description = "tl3_rdir",
5079 .field_bit_size = 1,
5080 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5081 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5082 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5085 .description = "l3_ttl_dec",
5086 .field_bit_size = 1,
5087 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5088 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5089 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5092 .description = "tl3_ttl_dec",
5093 .field_bit_size = 1,
5094 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5095 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5096 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5099 .description = "decap_func",
5100 .field_bit_size = 4,
5101 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5102 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5103 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5106 .description = "vnic_or_vport",
5107 .field_bit_size = 12,
5108 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5109 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5110 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5112 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
5113 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
5116 .description = "pop_vlan",
5117 .field_bit_size = 1,
5118 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5119 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5120 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5123 .description = "meter",
5124 .field_bit_size = 1,
5125 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5126 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5127 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5130 .description = "mirror",
5131 .field_bit_size = 2,
5132 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5133 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5134 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5137 .description = "drop",
5138 .field_bit_size = 1,
5139 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5140 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5141 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5144 .description = "hit",
5145 .field_bit_size = 1,
5146 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5147 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5148 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5151 .description = "type",
5152 .field_bit_size = 1,
5153 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5154 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5155 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5157 /* act_tid: 6, wh_plus, table: ext_full_act_record_vxlan.0 */
5159 .description = "flow_cntr_ptr",
5160 .field_bit_size = 14,
5161 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5162 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5163 .field_src1 = BNXT_ULP_FIELD_SRC_RF,
5165 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
5166 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
5169 .description = "age_enable",
5170 .field_bit_size = 1,
5171 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5172 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5173 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5176 .description = "agg_cntr_en",
5177 .field_bit_size = 1,
5178 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5179 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5180 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5183 .description = "rate_cntr_en",
5184 .field_bit_size = 1,
5185 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5186 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5187 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5190 .description = "flow_cntr_en",
5191 .field_bit_size = 1,
5192 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5193 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5194 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
5196 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff,
5197 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff,
5198 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff,
5199 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff,
5200 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff,
5201 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff,
5202 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff,
5203 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff}
5206 .description = "flow_cntr_ext",
5207 .field_bit_size = 1,
5208 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5209 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5210 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5213 .description = "tcpflags_key",
5214 .field_bit_size = 8,
5215 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5216 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5217 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5220 .description = "tcpflags_mir",
5221 .field_bit_size = 1,
5222 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5223 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5224 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5227 .description = "tcpflags_match",
5228 .field_bit_size = 1,
5229 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5230 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5231 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5234 .description = "encap_ptr",
5235 .field_bit_size = 11,
5236 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5237 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5238 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5241 .description = "encap_rec_int",
5242 .field_bit_size = 1,
5243 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5244 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5245 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5248 .description = "dst_ip_ptr",
5249 .field_bit_size = 10,
5250 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5251 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5252 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5255 .description = "tcp_dst_port",
5256 .field_bit_size = 16,
5257 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5258 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5259 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5262 .description = "src_ip_ptr",
5263 .field_bit_size = 10,
5264 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5265 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5266 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5269 .description = "tcp_src_port",
5270 .field_bit_size = 16,
5271 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5272 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5273 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5276 .description = "meter_id",
5277 .field_bit_size = 10,
5278 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5279 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5280 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5283 .description = "l3_rdir",
5284 .field_bit_size = 1,
5285 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5286 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5287 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5290 .description = "tl3_rdir",
5291 .field_bit_size = 1,
5292 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5293 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5294 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5297 .description = "l3_ttl_dec",
5298 .field_bit_size = 1,
5299 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5300 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5301 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5304 .description = "tl3_ttl_dec",
5305 .field_bit_size = 1,
5306 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5307 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5308 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5311 .description = "decap_func",
5312 .field_bit_size = 4,
5313 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5314 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5315 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5318 .description = "vnic_or_vport",
5319 .field_bit_size = 12,
5320 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5321 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5322 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5324 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
5325 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
5328 .description = "pop_vlan",
5329 .field_bit_size = 1,
5330 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5331 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5332 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5335 .description = "meter",
5336 .field_bit_size = 1,
5337 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5338 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5339 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5342 .description = "mirror",
5343 .field_bit_size = 2,
5344 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5345 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5346 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5349 .description = "drop",
5350 .field_bit_size = 1,
5351 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5352 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5353 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5356 .description = "ecv_tun_type",
5357 .field_bit_size = 3,
5358 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5359 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5360 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5362 ULP_WP_SYM_ECV_TUN_TYPE_VXLAN}
5365 .description = "ecv_l4_type",
5366 .field_bit_size = 3,
5367 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5368 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5369 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5371 ULP_WP_SYM_ECV_L4_TYPE_UDP_CSUM}
5374 .description = "ecv_l3_type",
5375 .field_bit_size = 3,
5376 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5377 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5378 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5380 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
5381 BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff}
5384 .description = "ecv_l2_en",
5385 .field_bit_size = 1,
5386 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5387 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5388 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5393 .description = "ecv_vtag_type",
5394 .field_bit_size = 4,
5395 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5396 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5397 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5399 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
5400 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff}
5403 .description = "ecv_custom_en",
5404 .field_bit_size = 1,
5405 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5406 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5407 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
5410 .description = "ecv_valid",
5411 .field_bit_size = 1,
5412 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5413 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5414 .field_src1 = BNXT_ULP_FIELD_SRC_CONST,
5419 .description = "encap_l2_dmac",
5420 .field_bit_size = 48,
5421 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5422 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5423 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5425 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
5426 BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff}
5429 .description = "encap_vtag",
5430 .field_bit_size = 0,
5431 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5432 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5433 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP_SZ,
5435 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
5436 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
5437 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
5438 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff}
5441 .description = "encap_ip",
5442 .field_bit_size = 0,
5443 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5444 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5445 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP_SZ,
5447 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
5448 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
5449 (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
5450 BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff}
5453 .description = "encap_udp",
5454 .field_bit_size = 32,
5455 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5456 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5457 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5459 (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
5460 BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff}
5463 .description = "encap_tun",
5464 .field_bit_size = 80,
5465 .field_opc = BNXT_ULP_FIELD_OPC_COND_OP,
5466 .field_cond_src = BNXT_ULP_FIELD_COND_SRC_TRUE,
5467 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
5469 (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
5470 BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff}
5474 struct bnxt_ulp_mapper_ident_info ulp_wh_plus_act_ident_list[] = {
5475 /* act_tid: 1, wh_plus, table: shared_mirror_record.rd */
5477 .description = "mirror_id",
5478 .regfile_idx = BNXT_ULP_RF_IDX_MIRROR_ID_0,
5479 .ident_bit_size = 2,