1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2014-2021 Broadcom 3 * All rights reserved. 4 */ 5 6 /* date: Fri Oct 8 11:41:10 2021 */ 7 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" 12 13 /* Mapper templates for header act list */ 14 struct bnxt_ulp_mapper_tmpl_info ulp_wh_plus_act_tmpl_list[] = { 15 /* act_tid: 1, ingress */ 16 [1] = { 17 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS, 18 .num_tbls = 5, 19 .start_tbl_idx = 0, 20 .reject_info = { 21 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR, 22 .cond_start_idx = 0, 23 .cond_nums = 9 } 24 }, 25 /* act_tid: 2, ingress */ 26 [2] = { 27 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS, 28 .num_tbls = 7, 29 .start_tbl_idx = 5, 30 .reject_info = { 31 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE, 32 .cond_start_idx = 14, 33 .cond_nums = 0 } 34 }, 35 /* act_tid: 3, ingress */ 36 [3] = { 37 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS, 38 .num_tbls = 7, 39 .start_tbl_idx = 12, 40 .reject_info = { 41 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE, 42 .cond_start_idx = 15, 43 .cond_nums = 0 } 44 }, 45 /* act_tid: 4, egress */ 46 [4] = { 47 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS, 48 .num_tbls = 5, 49 .start_tbl_idx = 19, 50 .reject_info = { 51 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE, 52 .cond_start_idx = 21, 53 .cond_nums = 0 } 54 }, 55 /* act_tid: 5, egress */ 56 [5] = { 57 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS, 58 .num_tbls = 7, 59 .start_tbl_idx = 24, 60 .reject_info = { 61 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE, 62 .cond_start_idx = 29, 63 .cond_nums = 0 } 64 }, 65 /* act_tid: 6, egress */ 66 [6] = { 67 .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS, 68 .num_tbls = 6, 69 .start_tbl_idx = 31, 70 .reject_info = { 71 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE, 72 .cond_start_idx = 35, 73 .cond_nums = 0 } 74 } 75 }; 76 77 struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_act_tbl_list[] = { 78 { /* act_tid: 1, , table: shared_mirror_record.rd */ 79 .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE, 80 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG, 81 .resource_sub_type = 82 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR, 83 .direction = TF_DIR_RX, 84 .execute_info = { 85 .cond_true_goto = 1, 86 .cond_false_goto = 1, 87 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 88 .cond_start_idx = 9, 89 .cond_nums = 1 }, 90 .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ, 91 .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX, 92 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP, 93 .key_start_idx = 0, 94 .blob_key_bit_size = 1, 95 .key_bit_size = 1, 96 .key_num_fields = 1, 97 .ident_start_idx = 0, 98 .ident_nums = 1 99 }, 100 { /* act_tid: 1, , table: int_flow_counter_tbl.0 */ 101 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 102 .resource_type = TF_TBL_TYPE_ACT_STATS_64, 103 .resource_sub_type = 104 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT, 105 .direction = TF_DIR_RX, 106 .execute_info = { 107 .cond_true_goto = 1, 108 .cond_false_goto = 1, 109 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 110 .cond_start_idx = 10, 111 .cond_nums = 1 }, 112 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE, 113 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0, 114 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 115 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP, 116 .result_start_idx = 0, 117 .result_bit_size = 64, 118 .result_num_fields = 1 119 }, 120 { /* act_tid: 1, , table: int_vtag_encap_record.0 */ 121 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 122 .resource_type = TF_TBL_TYPE_ACT_ENCAP_8B, 123 .resource_sub_type = 124 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 125 .direction = TF_DIR_RX, 126 .execute_info = { 127 .cond_true_goto = 1, 128 .cond_false_goto = 1, 129 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 130 .cond_start_idx = 11, 131 .cond_nums = 1 }, 132 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 133 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0, 134 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 135 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP, 136 .record_size = 8, 137 .result_start_idx = 1, 138 .result_bit_size = 0, 139 .result_num_fields = 0, 140 .encap_num_fields = 11 141 }, 142 { /* act_tid: 1, , table: int_full_act_record.0 */ 143 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 144 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD, 145 .resource_sub_type = 146 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 147 .direction = TF_DIR_RX, 148 .execute_info = { 149 .cond_true_goto = 1, 150 .cond_false_goto = 1, 151 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 152 .cond_start_idx = 12, 153 .cond_nums = 1 }, 154 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 155 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 156 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 157 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP, 158 .result_start_idx = 12, 159 .result_bit_size = 128, 160 .result_num_fields = 26, 161 .encap_num_fields = 0 162 }, 163 { /* act_tid: 1, , table: ext_full_act_record.0 */ 164 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 165 .resource_type = TF_TBL_TYPE_EXT, 166 .resource_sub_type = 167 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 168 .direction = TF_DIR_RX, 169 .execute_info = { 170 .cond_true_goto = 0, 171 .cond_false_goto = 0, 172 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 173 .cond_start_idx = 13, 174 .cond_nums = 1 }, 175 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 176 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 177 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 178 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP, 179 .result_start_idx = 38, 180 .result_bit_size = 128, 181 .result_num_fields = 26, 182 .encap_num_fields = 11 183 }, 184 { /* act_tid: 2, , table: control.0 */ 185 .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE, 186 .direction = TF_DIR_RX, 187 .execute_info = { 188 .cond_true_goto = 1, 189 .cond_false_goto = 1, 190 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE, 191 .cond_start_idx = 14, 192 .cond_nums = 0 }, 193 .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE, 194 .fdb_operand = BNXT_ULP_RF_IDX_RID 195 }, 196 { /* act_tid: 2, , table: mirror_tbl.alloc */ 197 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 198 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG, 199 .resource_sub_type = 200 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 201 .direction = TF_DIR_RX, 202 .execute_info = { 203 .cond_true_goto = 1, 204 .cond_false_goto = 1, 205 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE, 206 .cond_start_idx = 14, 207 .cond_nums = 0 }, 208 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE, 209 .tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0, 210 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE, 211 .fdb_operand = BNXT_ULP_RF_IDX_RID, 212 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP, 213 .result_start_idx = 75, 214 .result_bit_size = 32, 215 .result_num_fields = 6 216 }, 217 { /* act_tid: 2, , table: int_flow_counter_tbl.0 */ 218 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 219 .resource_type = TF_TBL_TYPE_ACT_STATS_64, 220 .resource_sub_type = 221 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT, 222 .direction = TF_DIR_RX, 223 .execute_info = { 224 .cond_true_goto = 1, 225 .cond_false_goto = 1, 226 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 227 .cond_start_idx = 14, 228 .cond_nums = 1 }, 229 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE, 230 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0, 231 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE, 232 .fdb_operand = BNXT_ULP_RF_IDX_RID, 233 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP, 234 .result_start_idx = 81, 235 .result_bit_size = 64, 236 .result_num_fields = 1 237 }, 238 { /* act_tid: 2, , table: int_full_act_record.0 */ 239 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 240 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD, 241 .resource_sub_type = 242 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 243 .direction = TF_DIR_RX, 244 .execute_info = { 245 .cond_true_goto = 1, 246 .cond_false_goto = 1, 247 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE, 248 .cond_start_idx = 15, 249 .cond_nums = 0 }, 250 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 251 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 252 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE, 253 .fdb_operand = BNXT_ULP_RF_IDX_RID, 254 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP, 255 .result_start_idx = 82, 256 .result_bit_size = 128, 257 .result_num_fields = 26, 258 .encap_num_fields = 0 259 }, 260 { /* act_tid: 2, , table: ext_full_act_record.0 */ 261 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 262 .resource_type = TF_TBL_TYPE_EXT, 263 .resource_sub_type = 264 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 265 .direction = TF_DIR_RX, 266 .execute_info = { 267 .cond_true_goto = 1, 268 .cond_false_goto = 1, 269 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE, 270 .cond_start_idx = 15, 271 .cond_nums = 0 }, 272 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 273 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 274 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE, 275 .fdb_operand = BNXT_ULP_RF_IDX_RID, 276 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP, 277 .result_start_idx = 108, 278 .result_bit_size = 128, 279 .result_num_fields = 26, 280 .encap_num_fields = 11 281 }, 282 { /* act_tid: 2, , table: mirror_tbl.wr */ 283 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 284 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG, 285 .resource_sub_type = 286 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 287 .direction = TF_DIR_RX, 288 .execute_info = { 289 .cond_true_goto = 1, 290 .cond_false_goto = 1, 291 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE, 292 .cond_start_idx = 15, 293 .cond_nums = 0 }, 294 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE, 295 .tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0, 296 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP, 297 .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP, 298 .result_start_idx = 145, 299 .result_bit_size = 32, 300 .result_num_fields = 6 301 }, 302 { /* act_tid: 2, , table: shared_mirror_record.wr */ 303 .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE, 304 .resource_type = TF_TBL_TYPE_MIRROR_CONFIG, 305 .resource_sub_type = 306 BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR, 307 .direction = TF_DIR_RX, 308 .execute_info = { 309 .cond_true_goto = 0, 310 .cond_false_goto = 0, 311 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE, 312 .cond_start_idx = 15, 313 .cond_nums = 0 }, 314 .tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE, 315 .gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX, 316 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP, 317 .key_start_idx = 1, 318 .blob_key_bit_size = 1, 319 .key_bit_size = 1, 320 .key_num_fields = 1, 321 .result_start_idx = 151, 322 .result_bit_size = 34, 323 .result_num_fields = 2 324 }, 325 { /* act_tid: 3, , table: control.0 */ 326 .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE, 327 .direction = TF_DIR_RX, 328 .execute_info = { 329 .cond_true_goto = 1023, 330 .cond_false_goto = 1, 331 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 332 .cond_start_idx = 15, 333 .cond_nums = 1 }, 334 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP 335 }, 336 { /* act_tid: 3, , table: int_flow_counter_tbl.0 */ 337 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 338 .resource_type = TF_TBL_TYPE_ACT_STATS_64, 339 .resource_sub_type = 340 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT, 341 .direction = TF_DIR_RX, 342 .execute_info = { 343 .cond_true_goto = 1, 344 .cond_false_goto = 1, 345 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 346 .cond_start_idx = 16, 347 .cond_nums = 1 }, 348 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE, 349 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0, 350 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 351 .result_start_idx = 153, 352 .result_bit_size = 64, 353 .result_num_fields = 1 354 }, 355 { /* act_tid: 3, , table: act_modify_ipv4_src.0 */ 356 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 357 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4, 358 .resource_sub_type = 359 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 360 .direction = TF_DIR_RX, 361 .execute_info = { 362 .cond_true_goto = 1, 363 .cond_false_goto = 1, 364 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 365 .cond_start_idx = 17, 366 .cond_nums = 1 }, 367 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 368 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0, 369 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 370 .result_start_idx = 154, 371 .result_bit_size = 32, 372 .result_num_fields = 1 373 }, 374 { /* act_tid: 3, , table: act_modify_ipv4_dst.0 */ 375 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 376 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4, 377 .resource_sub_type = 378 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 379 .direction = TF_DIR_RX, 380 .execute_info = { 381 .cond_true_goto = 1, 382 .cond_false_goto = 1, 383 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 384 .cond_start_idx = 18, 385 .cond_nums = 1 }, 386 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 387 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0, 388 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 389 .result_start_idx = 155, 390 .result_bit_size = 32, 391 .result_num_fields = 1 392 }, 393 { /* act_tid: 3, , table: int_encap_mac_record.0 */ 394 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 395 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B, 396 .resource_sub_type = 397 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 398 .direction = TF_DIR_RX, 399 .execute_info = { 400 .cond_true_goto = 1, 401 .cond_false_goto = 1, 402 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE, 403 .cond_start_idx = 19, 404 .cond_nums = 0 }, 405 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE, 406 .tbl_operand = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR, 407 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP, 408 .record_size = 16, 409 .result_start_idx = 156, 410 .result_bit_size = 0, 411 .result_num_fields = 0, 412 .encap_num_fields = 11 413 }, 414 { /* act_tid: 3, , table: int_full_act_record.0 */ 415 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 416 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD, 417 .resource_sub_type = 418 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 419 .direction = TF_DIR_RX, 420 .execute_info = { 421 .cond_true_goto = 1, 422 .cond_false_goto = 1, 423 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 424 .cond_start_idx = 19, 425 .cond_nums = 1 }, 426 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 427 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 428 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 429 .result_start_idx = 167, 430 .result_bit_size = 128, 431 .result_num_fields = 26 432 }, 433 { /* act_tid: 3, , table: ext_full_act_record.0 */ 434 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 435 .resource_type = TF_TBL_TYPE_EXT, 436 .resource_sub_type = 437 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 438 .direction = TF_DIR_RX, 439 .execute_info = { 440 .cond_true_goto = 0, 441 .cond_false_goto = 0, 442 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 443 .cond_start_idx = 20, 444 .cond_nums = 1 }, 445 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 446 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 447 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 448 .result_start_idx = 193, 449 .result_bit_size = 128, 450 .result_num_fields = 26, 451 .encap_num_fields = 11 452 }, 453 { /* act_tid: 4, , table: int_flow_counter_tbl.0 */ 454 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 455 .resource_type = TF_TBL_TYPE_ACT_STATS_64, 456 .resource_sub_type = 457 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT, 458 .direction = TF_DIR_TX, 459 .execute_info = { 460 .cond_true_goto = 1, 461 .cond_false_goto = 1, 462 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 463 .cond_start_idx = 21, 464 .cond_nums = 1 }, 465 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE, 466 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0, 467 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 468 .result_start_idx = 230, 469 .result_bit_size = 64, 470 .result_num_fields = 1 471 }, 472 { /* act_tid: 4, , table: int_vtag_encap_record.0 */ 473 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 474 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B, 475 .resource_sub_type = 476 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 477 .direction = TF_DIR_TX, 478 .execute_info = { 479 .cond_true_goto = 1, 480 .cond_false_goto = 1, 481 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 482 .cond_start_idx = 22, 483 .cond_nums = 2 }, 484 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 485 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0, 486 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 487 .record_size = 8, 488 .result_start_idx = 231, 489 .result_bit_size = 0, 490 .result_num_fields = 0, 491 .encap_num_fields = 11 492 }, 493 { /* act_tid: 4, , table: int_full_act_record.0 */ 494 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 495 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD, 496 .resource_sub_type = 497 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 498 .direction = TF_DIR_TX, 499 .execute_info = { 500 .cond_true_goto = 1, 501 .cond_false_goto = 1, 502 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 503 .cond_start_idx = 24, 504 .cond_nums = 1 }, 505 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 506 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 507 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 508 .result_start_idx = 242, 509 .result_bit_size = 128, 510 .result_num_fields = 26 511 }, 512 { /* act_tid: 4, , table: ext_full_act_record.no_tag */ 513 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 514 .resource_type = TF_TBL_TYPE_EXT, 515 .resource_sub_type = 516 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 517 .direction = TF_DIR_TX, 518 .execute_info = { 519 .cond_true_goto = 1, 520 .cond_false_goto = 1, 521 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 522 .cond_start_idx = 25, 523 .cond_nums = 2 }, 524 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 525 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 526 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 527 .result_start_idx = 268, 528 .result_bit_size = 128, 529 .result_num_fields = 26, 530 .encap_num_fields = 11 531 }, 532 { /* act_tid: 4, , table: ext_full_act_record.one_tag */ 533 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 534 .resource_type = TF_TBL_TYPE_EXT, 535 .resource_sub_type = 536 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 537 .direction = TF_DIR_TX, 538 .execute_info = { 539 .cond_true_goto = 0, 540 .cond_false_goto = 0, 541 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 542 .cond_start_idx = 27, 543 .cond_nums = 2 }, 544 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 545 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 546 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 547 .result_start_idx = 305, 548 .result_bit_size = 128, 549 .result_num_fields = 26, 550 .encap_num_fields = 11 551 }, 552 { /* act_tid: 5, , table: control.0 */ 553 .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE, 554 .direction = TF_DIR_TX, 555 .execute_info = { 556 .cond_true_goto = 1023, 557 .cond_false_goto = 1, 558 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 559 .cond_start_idx = 29, 560 .cond_nums = 1 }, 561 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP 562 }, 563 { /* act_tid: 5, , table: int_flow_counter_tbl.0 */ 564 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 565 .resource_type = TF_TBL_TYPE_ACT_STATS_64, 566 .resource_sub_type = 567 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT, 568 .direction = TF_DIR_TX, 569 .execute_info = { 570 .cond_true_goto = 1, 571 .cond_false_goto = 1, 572 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 573 .cond_start_idx = 30, 574 .cond_nums = 1 }, 575 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE, 576 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0, 577 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 578 .result_start_idx = 342, 579 .result_bit_size = 64, 580 .result_num_fields = 1 581 }, 582 { /* act_tid: 5, , table: act_modify_ipv4_src.0 */ 583 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 584 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4, 585 .resource_sub_type = 586 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 587 .direction = TF_DIR_TX, 588 .execute_info = { 589 .cond_true_goto = 1, 590 .cond_false_goto = 1, 591 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 592 .cond_start_idx = 31, 593 .cond_nums = 1 }, 594 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 595 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0, 596 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 597 .result_start_idx = 343, 598 .result_bit_size = 32, 599 .result_num_fields = 1 600 }, 601 { /* act_tid: 5, , table: act_modify_ipv4_dst.0 */ 602 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 603 .resource_type = TF_TBL_TYPE_ACT_MODIFY_IPV4, 604 .resource_sub_type = 605 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 606 .direction = TF_DIR_TX, 607 .execute_info = { 608 .cond_true_goto = 1, 609 .cond_false_goto = 1, 610 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 611 .cond_start_idx = 32, 612 .cond_nums = 1 }, 613 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 614 .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0, 615 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 616 .result_start_idx = 344, 617 .result_bit_size = 32, 618 .result_num_fields = 1 619 }, 620 { /* act_tid: 5, , table: int_encap_mac_record.dummy */ 621 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 622 .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B, 623 .resource_sub_type = 624 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 625 .direction = TF_DIR_TX, 626 .execute_info = { 627 .cond_true_goto = 1, 628 .cond_false_goto = 1, 629 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE, 630 .cond_start_idx = 33, 631 .cond_nums = 0 }, 632 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_GLB_REGFILE, 633 .tbl_operand = BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR, 634 .fdb_opcode = BNXT_ULP_FDB_OPC_NOP, 635 .record_size = 16, 636 .result_start_idx = 345, 637 .result_bit_size = 0, 638 .result_num_fields = 0, 639 .encap_num_fields = 11 640 }, 641 { /* act_tid: 5, , table: int_full_act_record.0 */ 642 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 643 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD, 644 .resource_sub_type = 645 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 646 .direction = TF_DIR_TX, 647 .execute_info = { 648 .cond_true_goto = 1, 649 .cond_false_goto = 1, 650 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 651 .cond_start_idx = 33, 652 .cond_nums = 1 }, 653 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 654 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 655 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 656 .result_start_idx = 356, 657 .result_bit_size = 128, 658 .result_num_fields = 26 659 }, 660 { /* act_tid: 5, , table: ext_full_act_record.0 */ 661 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 662 .resource_type = TF_TBL_TYPE_EXT, 663 .resource_sub_type = 664 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 665 .direction = TF_DIR_TX, 666 .execute_info = { 667 .cond_true_goto = 0, 668 .cond_false_goto = 0, 669 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 670 .cond_start_idx = 34, 671 .cond_nums = 1 }, 672 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 673 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 674 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 675 .result_start_idx = 382, 676 .result_bit_size = 128, 677 .result_num_fields = 26, 678 .encap_num_fields = 11 679 }, 680 { /* act_tid: 6, , table: int_flow_counter_tbl.0 */ 681 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 682 .resource_type = TF_TBL_TYPE_ACT_STATS_64, 683 .resource_sub_type = 684 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT, 685 .direction = TF_DIR_TX, 686 .execute_info = { 687 .cond_true_goto = 1, 688 .cond_false_goto = 1, 689 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 690 .cond_start_idx = 35, 691 .cond_nums = 1 }, 692 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE, 693 .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0, 694 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 695 .result_start_idx = 419, 696 .result_bit_size = 64, 697 .result_num_fields = 1 698 }, 699 { /* act_tid: 6, , table: sp_smac_ipv4.0 */ 700 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 701 .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV4, 702 .resource_sub_type = 703 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 704 .direction = TF_DIR_TX, 705 .execute_info = { 706 .cond_true_goto = 1, 707 .cond_false_goto = 1, 708 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 709 .cond_start_idx = 36, 710 .cond_nums = 1 }, 711 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 712 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_SP_PTR, 713 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 714 .record_size = 16, 715 .result_start_idx = 420, 716 .result_bit_size = 0, 717 .result_num_fields = 0, 718 .encap_num_fields = 2 719 }, 720 { /* act_tid: 6, , table: sp_smac_ipv6.0 */ 721 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 722 .resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV6, 723 .resource_sub_type = 724 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 725 .direction = TF_DIR_TX, 726 .execute_info = { 727 .cond_true_goto = 1, 728 .cond_false_goto = 1, 729 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 730 .cond_start_idx = 37, 731 .cond_nums = 1 }, 732 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 733 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_SP_PTR, 734 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 735 .record_size = 24, 736 .result_start_idx = 422, 737 .result_bit_size = 0, 738 .result_num_fields = 0, 739 .encap_num_fields = 2 740 }, 741 { /* act_tid: 6, , table: int_tun_encap_record.0 */ 742 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 743 .resource_type = TF_TBL_TYPE_ACT_ENCAP_64B, 744 .resource_sub_type = 745 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 746 .direction = TF_DIR_TX, 747 .execute_info = { 748 .cond_true_goto = 1, 749 .cond_false_goto = 1, 750 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 751 .cond_start_idx = 38, 752 .cond_nums = 1 }, 753 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 754 .tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0, 755 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 756 .record_size = 64, 757 .result_start_idx = 424, 758 .result_bit_size = 0, 759 .result_num_fields = 0, 760 .encap_num_fields = 30 761 }, 762 { /* act_tid: 6, , table: int_full_act_record.0 */ 763 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 764 .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD, 765 .resource_sub_type = 766 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 767 .direction = TF_DIR_TX, 768 .execute_info = { 769 .cond_true_goto = 1, 770 .cond_false_goto = 1, 771 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 772 .cond_start_idx = 39, 773 .cond_nums = 1 }, 774 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 775 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 776 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 777 .result_start_idx = 454, 778 .result_bit_size = 128, 779 .result_num_fields = 26 780 }, 781 { /* act_tid: 6, , table: ext_full_act_record_vxlan.0 */ 782 .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE, 783 .resource_type = TF_TBL_TYPE_EXT, 784 .resource_sub_type = 785 BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL, 786 .direction = TF_DIR_TX, 787 .execute_info = { 788 .cond_true_goto = 0, 789 .cond_false_goto = 0, 790 .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND, 791 .cond_start_idx = 40, 792 .cond_nums = 1 }, 793 .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE, 794 .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR, 795 .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID, 796 .result_start_idx = 480, 797 .result_bit_size = 128, 798 .result_num_fields = 26, 799 .encap_num_fields = 30 800 } 801 }; 802 803 struct bnxt_ulp_mapper_cond_info ulp_wh_plus_act_cond_list[] = { 804 /* cond_reject: wh_plus, act_tid: 1 */ 805 { 806 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 807 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_SRC 808 }, 809 { 810 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 811 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV6_SRC 812 }, 813 { 814 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 815 .cond_operand = BNXT_ULP_ACT_BIT_SET_TP_SRC 816 }, 817 { 818 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 819 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_DST 820 }, 821 { 822 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 823 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV6_DST 824 }, 825 { 826 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 827 .cond_operand = BNXT_ULP_ACT_BIT_SET_TP_DST 828 }, 829 { 830 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 831 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN 832 }, 833 { 834 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 835 .cond_operand = BNXT_ULP_ACT_BIT_SET_VLAN_VID 836 }, 837 { 838 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 839 .cond_operand = BNXT_ULP_ACT_BIT_SET_VLAN_PCP 840 }, 841 /* cond_execute: act_tid: 1, shared_mirror_record.rd */ 842 { 843 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 844 .cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE 845 }, 846 /* cond_execute: act_tid: 1, int_flow_counter_tbl.0 */ 847 { 848 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 849 .cond_operand = BNXT_ULP_ACT_BIT_COUNT 850 }, 851 /* cond_execute: act_tid: 1, int_vtag_encap_record.0 */ 852 { 853 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 854 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN 855 }, 856 /* cond_execute: act_tid: 1, int_full_act_record.0 */ 857 { 858 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET, 859 }, 860 /* cond_execute: act_tid: 1, ext_full_act_record.0 */ 861 { 862 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET, 863 }, 864 /* cond_execute: act_tid: 2, int_flow_counter_tbl.0 */ 865 { 866 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 867 .cond_operand = BNXT_ULP_ACT_BIT_COUNT 868 }, 869 /* cond_execute: act_tid: 3, control.0 */ 870 { 871 .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET, 872 .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS 873 }, 874 /* cond_execute: act_tid: 3, int_flow_counter_tbl.0 */ 875 { 876 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 877 .cond_operand = BNXT_ULP_ACT_BIT_COUNT 878 }, 879 /* cond_execute: act_tid: 3, act_modify_ipv4_src.0 */ 880 { 881 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 882 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_SRC 883 }, 884 /* cond_execute: act_tid: 3, act_modify_ipv4_dst.0 */ 885 { 886 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 887 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_DST 888 }, 889 /* cond_execute: act_tid: 3, int_full_act_record.0 */ 890 { 891 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET, 892 }, 893 /* cond_execute: act_tid: 3, ext_full_act_record.0 */ 894 { 895 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET, 896 }, 897 /* cond_execute: act_tid: 4, int_flow_counter_tbl.0 */ 898 { 899 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 900 .cond_operand = BNXT_ULP_ACT_BIT_COUNT 901 }, 902 /* cond_execute: act_tid: 4, int_vtag_encap_record.0 */ 903 { 904 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET, 905 }, 906 { 907 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 908 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN 909 }, 910 /* cond_execute: act_tid: 4, int_full_act_record.0 */ 911 { 912 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET, 913 }, 914 /* cond_execute: act_tid: 4, ext_full_act_record.no_tag */ 915 { 916 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET, 917 }, 918 { 919 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET, 920 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN 921 }, 922 /* cond_execute: act_tid: 4, ext_full_act_record.one_tag */ 923 { 924 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET, 925 }, 926 { 927 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 928 .cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN 929 }, 930 /* cond_execute: act_tid: 5, control.0 */ 931 { 932 .cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET, 933 .cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS 934 }, 935 /* cond_execute: act_tid: 5, int_flow_counter_tbl.0 */ 936 { 937 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 938 .cond_operand = BNXT_ULP_ACT_BIT_COUNT 939 }, 940 /* cond_execute: act_tid: 5, act_modify_ipv4_src.0 */ 941 { 942 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 943 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_SRC 944 }, 945 /* cond_execute: act_tid: 5, act_modify_ipv4_dst.0 */ 946 { 947 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 948 .cond_operand = BNXT_ULP_ACT_BIT_SET_IPV4_DST 949 }, 950 /* cond_execute: act_tid: 5, int_full_act_record.0 */ 951 { 952 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET, 953 }, 954 /* cond_execute: act_tid: 5, ext_full_act_record.0 */ 955 { 956 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET, 957 }, 958 /* cond_execute: act_tid: 6, int_flow_counter_tbl.0 */ 959 { 960 .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET, 961 .cond_operand = BNXT_ULP_ACT_BIT_COUNT 962 }, 963 /* cond_execute: act_tid: 6, sp_smac_ipv4.0 */ 964 { 965 .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET, 966 .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG 967 }, 968 /* cond_execute: act_tid: 6, sp_smac_ipv6.0 */ 969 { 970 .cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET, 971 .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG 972 }, 973 /* cond_execute: act_tid: 6, int_tun_encap_record.0 */ 974 { 975 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET, 976 }, 977 /* cond_execute: act_tid: 6, int_full_act_record.0 */ 978 { 979 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_NOT_SET, 980 }, 981 /* cond_execute: act_tid: 6, ext_full_act_record_vxlan.0 */ 982 { 983 .cond_opcode = BNXT_ULP_COND_OPC_EXT_MEM_IS_SET, 984 } 985 }; 986 987 struct bnxt_ulp_mapper_key_info ulp_wh_plus_act_key_info_list[] = { 988 /* act_tid: 1, , table: shared_mirror_record.rd */ 989 { 990 .field_info_mask = { 991 .description = "shared_index", 992 .field_bit_size = 1, 993 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 994 .field_src1 = BNXT_ULP_FIELD_SRC_ONES, 995 .field_opr1 = { 996 0xff} 997 }, 998 .field_info_spec = { 999 .description = "shared_index", 1000 .field_bit_size = 1, 1001 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1002 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1003 .field_opr1 = { 1004 (BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff, 1005 BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff} 1006 } 1007 }, 1008 /* act_tid: 2, , table: shared_mirror_record.wr */ 1009 { 1010 .field_info_mask = { 1011 .description = "shared_index", 1012 .field_bit_size = 1, 1013 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1014 .field_src1 = BNXT_ULP_FIELD_SRC_ONES, 1015 .field_opr1 = { 1016 0xff} 1017 }, 1018 .field_info_spec = { 1019 .description = "shared_index", 1020 .field_bit_size = 1, 1021 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1022 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1023 .field_opr1 = { 1024 (BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff, 1025 BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff} 1026 } 1027 } 1028 }; 1029 1030 struct bnxt_ulp_mapper_field_info ulp_wh_plus_act_result_field_list[] = { 1031 /* act_tid: 1, , table: int_flow_counter_tbl.0 */ 1032 { 1033 .description = "count", 1034 .field_bit_size = 64, 1035 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1036 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1037 }, 1038 /* act_tid: 1, , table: int_vtag_encap_record.0 */ 1039 { 1040 .description = "ecv_valid", 1041 .field_bit_size = 1, 1042 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1043 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 1044 .field_opr1 = { 1045 ULP_WP_SYM_ECV_VALID_YES} 1046 }, 1047 { 1048 .description = "ecv_custom_en", 1049 .field_bit_size = 1, 1050 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1051 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1052 }, 1053 { 1054 .description = "ecv_vtag_type", 1055 .field_bit_size = 4, 1056 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1057 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 1058 .field_opr1 = { 1059 ULP_WP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI} 1060 }, 1061 { 1062 .description = "ecv_l2_en", 1063 .field_bit_size = 1, 1064 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1065 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1066 }, 1067 { 1068 .description = "ecv_l3_type", 1069 .field_bit_size = 3, 1070 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1071 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1072 }, 1073 { 1074 .description = "ecv_l4_type", 1075 .field_bit_size = 3, 1076 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1077 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1078 }, 1079 { 1080 .description = "ecv_tun_type", 1081 .field_bit_size = 3, 1082 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1083 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1084 }, 1085 { 1086 .description = "vtag_tpid", 1087 .field_bit_size = 16, 1088 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1089 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1090 .field_opr1 = { 1091 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff, 1092 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff} 1093 }, 1094 { 1095 .description = "vtag_pcp", 1096 .field_bit_size = 3, 1097 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1098 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1099 .field_opr1 = { 1100 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff, 1101 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff} 1102 }, 1103 { 1104 .description = "vtag_de", 1105 .field_bit_size = 1, 1106 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1107 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1108 }, 1109 { 1110 .description = "vtag_vid", 1111 .field_bit_size = 12, 1112 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1113 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1114 .field_opr1 = { 1115 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff, 1116 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff} 1117 }, 1118 /* act_tid: 1, , table: int_full_act_record.0 */ 1119 { 1120 .description = "flow_cntr_ptr", 1121 .field_bit_size = 14, 1122 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1123 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1124 .field_opr1 = { 1125 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 1126 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 1127 }, 1128 { 1129 .description = "age_enable", 1130 .field_bit_size = 1, 1131 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1132 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1133 }, 1134 { 1135 .description = "agg_cntr_en", 1136 .field_bit_size = 1, 1137 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1138 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1139 }, 1140 { 1141 .description = "rate_cntr_en", 1142 .field_bit_size = 1, 1143 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1144 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1145 }, 1146 { 1147 .description = "flow_cntr_en", 1148 .field_bit_size = 1, 1149 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1150 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1151 .field_opr1 = { 1152 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 1153 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 1154 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 1155 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 1156 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 1157 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 1158 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 1159 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 1160 }, 1161 { 1162 .description = "tcpflags_key", 1163 .field_bit_size = 8, 1164 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1165 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1166 }, 1167 { 1168 .description = "tcpflags_mir", 1169 .field_bit_size = 1, 1170 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1171 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1172 }, 1173 { 1174 .description = "tcpflags_match", 1175 .field_bit_size = 1, 1176 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1177 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1178 }, 1179 { 1180 .description = "encap_ptr", 1181 .field_bit_size = 11, 1182 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1183 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1184 .field_opr1 = { 1185 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff, 1186 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff} 1187 }, 1188 { 1189 .description = "dst_ip_ptr", 1190 .field_bit_size = 10, 1191 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1192 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1193 .field_opr1 = { 1194 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff, 1195 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff} 1196 }, 1197 { 1198 .description = "tcp_dst_port", 1199 .field_bit_size = 16, 1200 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 1201 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1202 .field_opr1 = { 1203 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff, 1204 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff, 1205 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff, 1206 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff, 1207 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff, 1208 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff, 1209 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff, 1210 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff}, 1211 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1212 .field_opr2 = { 1213 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff, 1214 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff}, 1215 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 1216 }, 1217 { 1218 .description = "src_ip_ptr", 1219 .field_bit_size = 10, 1220 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1221 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1222 .field_opr1 = { 1223 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff, 1224 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff} 1225 }, 1226 { 1227 .description = "tcp_src_port", 1228 .field_bit_size = 16, 1229 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 1230 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1231 .field_opr1 = { 1232 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff, 1233 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff, 1234 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff, 1235 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff, 1236 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff, 1237 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff, 1238 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff, 1239 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff}, 1240 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1241 .field_opr2 = { 1242 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff, 1243 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff}, 1244 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 1245 }, 1246 { 1247 .description = "meter_id", 1248 .field_bit_size = 10, 1249 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1250 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1251 }, 1252 { 1253 .description = "l3_rdir", 1254 .field_bit_size = 1, 1255 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1256 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1257 }, 1258 { 1259 .description = "tl3_rdir", 1260 .field_bit_size = 1, 1261 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1262 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1263 }, 1264 { 1265 .description = "l3_ttl_dec", 1266 .field_bit_size = 1, 1267 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1268 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 1269 .field_opr1 = { 1270 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff, 1271 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff} 1272 }, 1273 { 1274 .description = "tl3_ttl_dec", 1275 .field_bit_size = 1, 1276 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1277 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 1278 .field_opr1 = { 1279 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff, 1280 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff} 1281 }, 1282 { 1283 .description = "decap_func", 1284 .field_bit_size = 4, 1285 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 1286 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1287 .field_opr1 = { 1288 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 56) & 0xff, 1289 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 48) & 0xff, 1290 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 40) & 0xff, 1291 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 32) & 0xff, 1292 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 24) & 0xff, 1293 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 16) & 0xff, 1294 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 8) & 0xff, 1295 (uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP & 0xff}, 1296 .field_src2 = BNXT_ULP_FIELD_SRC_CONST, 1297 .field_opr2 = { 1298 ULP_WP_SYM_DECAP_FUNC_THRU_TUN}, 1299 .field_src3 = BNXT_ULP_FIELD_SRC_CONST, 1300 .field_opr3 = { 1301 ULP_WP_SYM_DECAP_FUNC_NONE} 1302 }, 1303 { 1304 .description = "vnic_or_vport", 1305 .field_bit_size = 12, 1306 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1307 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1308 .field_opr1 = { 1309 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff, 1310 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff} 1311 }, 1312 { 1313 .description = "pop_vlan", 1314 .field_bit_size = 1, 1315 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1316 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1317 .field_opr1 = { 1318 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff, 1319 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff, 1320 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff, 1321 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff, 1322 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff, 1323 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff, 1324 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff, 1325 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff} 1326 }, 1327 { 1328 .description = "meter", 1329 .field_bit_size = 1, 1330 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1331 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1332 }, 1333 { 1334 .description = "mirror", 1335 .field_bit_size = 2, 1336 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 1337 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1338 .field_opr1 = { 1339 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff, 1340 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff, 1341 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff, 1342 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff, 1343 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff, 1344 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff, 1345 ((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff, 1346 (uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff}, 1347 .field_src2 = BNXT_ULP_FIELD_SRC_RF, 1348 .field_opr2 = { 1349 (BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff, 1350 BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff}, 1351 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 1352 }, 1353 { 1354 .description = "drop", 1355 .field_bit_size = 1, 1356 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1357 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1358 .field_opr1 = { 1359 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff, 1360 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff, 1361 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff, 1362 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff, 1363 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff, 1364 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff, 1365 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff, 1366 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff} 1367 }, 1368 { 1369 .description = "hit", 1370 .field_bit_size = 1, 1371 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1372 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1373 }, 1374 { 1375 .description = "type", 1376 .field_bit_size = 1, 1377 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1378 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1379 }, 1380 /* act_tid: 1, , table: ext_full_act_record.0 */ 1381 { 1382 .description = "flow_cntr_ptr", 1383 .field_bit_size = 14, 1384 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1385 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1386 .field_opr1 = { 1387 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 1388 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 1389 }, 1390 { 1391 .description = "age_enable", 1392 .field_bit_size = 1, 1393 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1394 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1395 }, 1396 { 1397 .description = "agg_cntr_en", 1398 .field_bit_size = 1, 1399 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1400 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1401 }, 1402 { 1403 .description = "rate_cntr_en", 1404 .field_bit_size = 1, 1405 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1406 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1407 }, 1408 { 1409 .description = "flow_cntr_en", 1410 .field_bit_size = 1, 1411 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1412 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1413 .field_opr1 = { 1414 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 1415 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 1416 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 1417 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 1418 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 1419 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 1420 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 1421 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 1422 }, 1423 { 1424 .description = "flow_cntr_ext", 1425 .field_bit_size = 1, 1426 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1427 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1428 }, 1429 { 1430 .description = "tcpflags_key", 1431 .field_bit_size = 8, 1432 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1433 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1434 }, 1435 { 1436 .description = "tcpflags_mir", 1437 .field_bit_size = 1, 1438 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1439 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1440 }, 1441 { 1442 .description = "tcpflags_match", 1443 .field_bit_size = 1, 1444 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1445 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1446 }, 1447 { 1448 .description = "encap_ptr", 1449 .field_bit_size = 11, 1450 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1451 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1452 }, 1453 { 1454 .description = "encap_rec_int", 1455 .field_bit_size = 1, 1456 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1457 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1458 }, 1459 { 1460 .description = "dst_ip_ptr", 1461 .field_bit_size = 10, 1462 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1463 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1464 .field_opr1 = { 1465 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff, 1466 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff} 1467 }, 1468 { 1469 .description = "tcp_dst_port", 1470 .field_bit_size = 16, 1471 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 1472 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1473 .field_opr1 = { 1474 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff, 1475 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff, 1476 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff, 1477 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff, 1478 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff, 1479 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff, 1480 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff, 1481 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff}, 1482 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1483 .field_opr2 = { 1484 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff, 1485 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff}, 1486 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 1487 }, 1488 { 1489 .description = "src_ip_ptr", 1490 .field_bit_size = 10, 1491 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1492 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1493 .field_opr1 = { 1494 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff, 1495 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff} 1496 }, 1497 { 1498 .description = "tcp_src_port", 1499 .field_bit_size = 16, 1500 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 1501 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1502 .field_opr1 = { 1503 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff, 1504 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff, 1505 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff, 1506 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff, 1507 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff, 1508 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff, 1509 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff, 1510 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff}, 1511 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1512 .field_opr2 = { 1513 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff, 1514 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff}, 1515 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 1516 }, 1517 { 1518 .description = "meter_id", 1519 .field_bit_size = 10, 1520 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1521 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1522 }, 1523 { 1524 .description = "l3_rdir", 1525 .field_bit_size = 1, 1526 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1527 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1528 }, 1529 { 1530 .description = "tl3_rdir", 1531 .field_bit_size = 1, 1532 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1533 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1534 }, 1535 { 1536 .description = "l3_ttl_dec", 1537 .field_bit_size = 1, 1538 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1539 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 1540 .field_opr1 = { 1541 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff, 1542 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff} 1543 }, 1544 { 1545 .description = "tl3_ttl_dec", 1546 .field_bit_size = 1, 1547 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1548 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 1549 .field_opr1 = { 1550 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff, 1551 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff} 1552 }, 1553 { 1554 .description = "decap_func", 1555 .field_bit_size = 4, 1556 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 1557 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1558 .field_opr1 = { 1559 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 56) & 0xff, 1560 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 48) & 0xff, 1561 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 40) & 0xff, 1562 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 32) & 0xff, 1563 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 24) & 0xff, 1564 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 16) & 0xff, 1565 ((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 8) & 0xff, 1566 (uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP & 0xff}, 1567 .field_src2 = BNXT_ULP_FIELD_SRC_CONST, 1568 .field_opr2 = { 1569 ULP_WP_SYM_DECAP_FUNC_THRU_TUN}, 1570 .field_src3 = BNXT_ULP_FIELD_SRC_CONST, 1571 .field_opr3 = { 1572 ULP_WP_SYM_DECAP_FUNC_NONE} 1573 }, 1574 { 1575 .description = "vnic_or_vport", 1576 .field_bit_size = 12, 1577 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1578 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1579 .field_opr1 = { 1580 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff, 1581 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff} 1582 }, 1583 { 1584 .description = "pop_vlan", 1585 .field_bit_size = 1, 1586 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1587 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1588 .field_opr1 = { 1589 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff, 1590 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff, 1591 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff, 1592 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff, 1593 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff, 1594 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff, 1595 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff, 1596 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff} 1597 }, 1598 { 1599 .description = "meter", 1600 .field_bit_size = 1, 1601 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1602 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1603 }, 1604 { 1605 .description = "mirror", 1606 .field_bit_size = 2, 1607 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1608 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1609 .field_opr1 = { 1610 (BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff, 1611 BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff} 1612 }, 1613 { 1614 .description = "drop", 1615 .field_bit_size = 1, 1616 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1617 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1618 .field_opr1 = { 1619 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff, 1620 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff, 1621 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff, 1622 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff, 1623 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff, 1624 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff, 1625 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff, 1626 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff} 1627 }, 1628 { 1629 .description = "ecv_valid", 1630 .field_bit_size = 1, 1631 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1632 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 1633 .field_opr1 = { 1634 ULP_WP_SYM_ECV_VALID_YES} 1635 }, 1636 { 1637 .description = "ecv_custom_en", 1638 .field_bit_size = 1, 1639 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1640 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1641 }, 1642 { 1643 .description = "ecv_vtag_type", 1644 .field_bit_size = 4, 1645 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1646 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1647 }, 1648 { 1649 .description = "ecv_l2_en", 1650 .field_bit_size = 1, 1651 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1652 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1653 }, 1654 { 1655 .description = "ecv_l3_type", 1656 .field_bit_size = 3, 1657 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1658 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1659 }, 1660 { 1661 .description = "ecv_l4_type", 1662 .field_bit_size = 3, 1663 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1664 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1665 }, 1666 { 1667 .description = "ecv_tun_type", 1668 .field_bit_size = 3, 1669 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1670 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1671 }, 1672 { 1673 .description = "vtag_tpid", 1674 .field_bit_size = 16, 1675 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1676 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1677 }, 1678 { 1679 .description = "vtag_pcp", 1680 .field_bit_size = 3, 1681 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1682 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1683 }, 1684 { 1685 .description = "vtag_de", 1686 .field_bit_size = 1, 1687 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1688 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1689 }, 1690 { 1691 .description = "vtag_vid", 1692 .field_bit_size = 12, 1693 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1694 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1695 }, 1696 /* act_tid: 2, , table: mirror_tbl.alloc */ 1697 { 1698 .description = "act_rec_ptr", 1699 .field_bit_size = 16, 1700 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1701 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1702 }, 1703 { 1704 .description = "enable", 1705 .field_bit_size = 1, 1706 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1707 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 1708 .field_opr1 = { 1709 1} 1710 }, 1711 { 1712 .description = "copy", 1713 .field_bit_size = 1, 1714 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1715 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1716 }, 1717 { 1718 .description = "ign_drop", 1719 .field_bit_size = 1, 1720 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1721 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1722 }, 1723 { 1724 .description = "reserved", 1725 .field_bit_size = 2, 1726 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1727 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1728 }, 1729 { 1730 .description = "sp_ptr", 1731 .field_bit_size = 11, 1732 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1733 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1734 }, 1735 /* act_tid: 2, , table: int_flow_counter_tbl.0 */ 1736 { 1737 .description = "count", 1738 .field_bit_size = 64, 1739 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1740 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1741 }, 1742 /* act_tid: 2, , table: int_full_act_record.0 */ 1743 { 1744 .description = "flow_cntr_ptr", 1745 .field_bit_size = 14, 1746 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1747 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1748 .field_opr1 = { 1749 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 1750 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 1751 }, 1752 { 1753 .description = "age_enable", 1754 .field_bit_size = 1, 1755 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1756 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1757 }, 1758 { 1759 .description = "agg_cntr_en", 1760 .field_bit_size = 1, 1761 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1762 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1763 }, 1764 { 1765 .description = "rate_cntr_en", 1766 .field_bit_size = 1, 1767 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1768 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1769 }, 1770 { 1771 .description = "flow_cntr_en", 1772 .field_bit_size = 1, 1773 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1774 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1775 .field_opr1 = { 1776 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 1777 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 1778 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 1779 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 1780 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 1781 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 1782 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 1783 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 1784 }, 1785 { 1786 .description = "tcpflags_key", 1787 .field_bit_size = 8, 1788 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1789 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1790 }, 1791 { 1792 .description = "tcpflags_mir", 1793 .field_bit_size = 1, 1794 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1795 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1796 }, 1797 { 1798 .description = "tcpflags_match", 1799 .field_bit_size = 1, 1800 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1801 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1802 }, 1803 { 1804 .description = "encap_ptr", 1805 .field_bit_size = 11, 1806 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1807 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1808 }, 1809 { 1810 .description = "dst_ip_ptr", 1811 .field_bit_size = 10, 1812 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1813 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1814 }, 1815 { 1816 .description = "tcp_dst_port", 1817 .field_bit_size = 16, 1818 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1819 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1820 }, 1821 { 1822 .description = "src_ip_ptr", 1823 .field_bit_size = 10, 1824 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1825 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1826 }, 1827 { 1828 .description = "tcp_src_port", 1829 .field_bit_size = 16, 1830 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1831 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1832 }, 1833 { 1834 .description = "meter_id", 1835 .field_bit_size = 10, 1836 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1837 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1838 }, 1839 { 1840 .description = "l3_rdir", 1841 .field_bit_size = 1, 1842 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1843 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1844 }, 1845 { 1846 .description = "tl3_rdir", 1847 .field_bit_size = 1, 1848 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1849 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1850 }, 1851 { 1852 .description = "l3_ttl_dec", 1853 .field_bit_size = 1, 1854 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1855 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1856 }, 1857 { 1858 .description = "tl3_ttl_dec", 1859 .field_bit_size = 1, 1860 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1861 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1862 }, 1863 { 1864 .description = "decap_func", 1865 .field_bit_size = 4, 1866 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1867 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1868 }, 1869 { 1870 .description = "vnic_or_vport", 1871 .field_bit_size = 12, 1872 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1873 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 1874 .field_opr1 = { 1875 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff, 1876 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff} 1877 }, 1878 { 1879 .description = "pop_vlan", 1880 .field_bit_size = 1, 1881 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1882 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1883 }, 1884 { 1885 .description = "meter", 1886 .field_bit_size = 1, 1887 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1888 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1889 }, 1890 { 1891 .description = "mirror", 1892 .field_bit_size = 2, 1893 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_PLUS_SRC2, 1894 .field_src2 = BNXT_ULP_FIELD_SRC_CONST, 1895 .field_opr2 = { 1896 1} 1897 }, 1898 { 1899 .description = "drop", 1900 .field_bit_size = 1, 1901 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1902 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1903 }, 1904 { 1905 .description = "hit", 1906 .field_bit_size = 1, 1907 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1908 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1909 }, 1910 { 1911 .description = "type", 1912 .field_bit_size = 1, 1913 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1914 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1915 }, 1916 /* act_tid: 2, , table: ext_full_act_record.0 */ 1917 { 1918 .description = "flow_cntr_ptr", 1919 .field_bit_size = 14, 1920 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1921 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 1922 .field_opr1 = { 1923 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 1924 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 1925 }, 1926 { 1927 .description = "age_enable", 1928 .field_bit_size = 1, 1929 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1930 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1931 }, 1932 { 1933 .description = "agg_cntr_en", 1934 .field_bit_size = 1, 1935 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1936 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1937 }, 1938 { 1939 .description = "rate_cntr_en", 1940 .field_bit_size = 1, 1941 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1942 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1943 }, 1944 { 1945 .description = "flow_cntr_en", 1946 .field_bit_size = 1, 1947 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1948 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 1949 .field_opr1 = { 1950 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 1951 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 1952 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 1953 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 1954 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 1955 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 1956 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 1957 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 1958 }, 1959 { 1960 .description = "flow_cntr_ext", 1961 .field_bit_size = 1, 1962 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1963 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1964 }, 1965 { 1966 .description = "tcpflags_key", 1967 .field_bit_size = 8, 1968 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1969 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1970 }, 1971 { 1972 .description = "tcpflags_mir", 1973 .field_bit_size = 1, 1974 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1975 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1976 }, 1977 { 1978 .description = "tcpflags_match", 1979 .field_bit_size = 1, 1980 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1981 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1982 }, 1983 { 1984 .description = "encap_ptr", 1985 .field_bit_size = 11, 1986 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1987 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1988 }, 1989 { 1990 .description = "encap_rec_int", 1991 .field_bit_size = 1, 1992 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1993 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 1994 }, 1995 { 1996 .description = "dst_ip_ptr", 1997 .field_bit_size = 10, 1998 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 1999 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2000 }, 2001 { 2002 .description = "tcp_dst_port", 2003 .field_bit_size = 16, 2004 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2005 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2006 }, 2007 { 2008 .description = "src_ip_ptr", 2009 .field_bit_size = 10, 2010 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2011 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2012 }, 2013 { 2014 .description = "tcp_src_port", 2015 .field_bit_size = 16, 2016 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2017 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2018 }, 2019 { 2020 .description = "meter_id", 2021 .field_bit_size = 10, 2022 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2023 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2024 }, 2025 { 2026 .description = "l3_rdir", 2027 .field_bit_size = 1, 2028 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2029 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2030 }, 2031 { 2032 .description = "tl3_rdir", 2033 .field_bit_size = 1, 2034 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2035 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2036 }, 2037 { 2038 .description = "l3_ttl_dec", 2039 .field_bit_size = 1, 2040 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2041 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2042 }, 2043 { 2044 .description = "tl3_ttl_dec", 2045 .field_bit_size = 1, 2046 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2047 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2048 }, 2049 { 2050 .description = "decap_func", 2051 .field_bit_size = 4, 2052 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2053 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2054 }, 2055 { 2056 .description = "vnic_or_vport", 2057 .field_bit_size = 12, 2058 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2059 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2060 .field_opr1 = { 2061 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff, 2062 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff} 2063 }, 2064 { 2065 .description = "pop_vlan", 2066 .field_bit_size = 1, 2067 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2068 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 2069 .field_opr1 = { 2070 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff, 2071 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff, 2072 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff, 2073 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff, 2074 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff, 2075 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff, 2076 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff, 2077 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff} 2078 }, 2079 { 2080 .description = "meter", 2081 .field_bit_size = 1, 2082 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2083 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2084 }, 2085 { 2086 .description = "mirror", 2087 .field_bit_size = 2, 2088 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_PLUS_SRC2, 2089 .field_src2 = BNXT_ULP_FIELD_SRC_CONST, 2090 .field_opr2 = { 2091 1} 2092 }, 2093 { 2094 .description = "drop", 2095 .field_bit_size = 1, 2096 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2097 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2098 }, 2099 { 2100 .description = "ecv_valid", 2101 .field_bit_size = 1, 2102 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2103 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 2104 .field_opr1 = { 2105 ULP_WP_SYM_ECV_VALID_YES} 2106 }, 2107 { 2108 .description = "ecv_custom_en", 2109 .field_bit_size = 1, 2110 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2111 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2112 }, 2113 { 2114 .description = "ecv_vtag_type", 2115 .field_bit_size = 4, 2116 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2117 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2118 }, 2119 { 2120 .description = "ecv_l2_en", 2121 .field_bit_size = 1, 2122 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2123 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2124 }, 2125 { 2126 .description = "ecv_l3_type", 2127 .field_bit_size = 3, 2128 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2129 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2130 }, 2131 { 2132 .description = "ecv_l4_type", 2133 .field_bit_size = 3, 2134 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2135 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2136 }, 2137 { 2138 .description = "ecv_tun_type", 2139 .field_bit_size = 3, 2140 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2141 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2142 }, 2143 { 2144 .description = "vtag_tpid", 2145 .field_bit_size = 16, 2146 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2147 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2148 }, 2149 { 2150 .description = "vtag_pcp", 2151 .field_bit_size = 3, 2152 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2153 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2154 }, 2155 { 2156 .description = "vtag_de", 2157 .field_bit_size = 1, 2158 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2159 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2160 }, 2161 { 2162 .description = "vtag_vid", 2163 .field_bit_size = 12, 2164 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2165 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2166 }, 2167 /* act_tid: 2, , table: mirror_tbl.wr */ 2168 { 2169 .description = "act_rec_ptr", 2170 .field_bit_size = 16, 2171 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2172 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 2173 .field_opr1 = { 2174 (BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff, 2175 BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff} 2176 }, 2177 { 2178 .description = "enable", 2179 .field_bit_size = 1, 2180 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2181 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 2182 .field_opr1 = { 2183 1} 2184 }, 2185 { 2186 .description = "copy", 2187 .field_bit_size = 1, 2188 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2189 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2190 }, 2191 { 2192 .description = "ign_drop", 2193 .field_bit_size = 1, 2194 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2195 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2196 }, 2197 { 2198 .description = "reserved", 2199 .field_bit_size = 2, 2200 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2201 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2202 }, 2203 { 2204 .description = "sp_ptr", 2205 .field_bit_size = 11, 2206 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2207 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2208 }, 2209 /* act_tid: 2, , table: shared_mirror_record.wr */ 2210 { 2211 .description = "rid", 2212 .field_bit_size = 32, 2213 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2214 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 2215 .field_opr1 = { 2216 (BNXT_ULP_RF_IDX_RID >> 8) & 0xff, 2217 BNXT_ULP_RF_IDX_RID & 0xff} 2218 }, 2219 { 2220 .description = "mirror_id", 2221 .field_bit_size = 2, 2222 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_PLUS_SRC2_POST, 2223 .field_src2 = BNXT_ULP_FIELD_SRC_CONST, 2224 .field_opr2 = { 2225 (1 >> 8) & 0xff, 2226 1 & 0xff} 2227 }, 2228 /* act_tid: 3, , table: int_flow_counter_tbl.0 */ 2229 { 2230 .description = "count", 2231 .field_bit_size = 64, 2232 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2233 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2234 }, 2235 /* act_tid: 3, , table: act_modify_ipv4_src.0 */ 2236 { 2237 .description = "ipv4_addr", 2238 .field_bit_size = 32, 2239 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2240 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2241 .field_opr1 = { 2242 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff, 2243 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff} 2244 }, 2245 /* act_tid: 3, , table: act_modify_ipv4_dst.0 */ 2246 { 2247 .description = "ipv4_addr", 2248 .field_bit_size = 32, 2249 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2250 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2251 .field_opr1 = { 2252 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff, 2253 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff} 2254 }, 2255 /* act_tid: 3, , table: int_encap_mac_record.0 */ 2256 { 2257 .description = "ecv_valid", 2258 .field_bit_size = 1, 2259 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2260 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 2261 .field_opr1 = { 2262 1} 2263 }, 2264 { 2265 .description = "ecv_custom_en", 2266 .field_bit_size = 1, 2267 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2268 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2269 }, 2270 { 2271 .description = "ecv_vtag_type", 2272 .field_bit_size = 4, 2273 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2274 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2275 }, 2276 { 2277 .description = "ecv_l2_en", 2278 .field_bit_size = 1, 2279 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2280 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 2281 .field_opr1 = { 2282 ULP_WP_SYM_ECV_L2_EN_YES} 2283 }, 2284 { 2285 .description = "ecv_l3_type", 2286 .field_bit_size = 3, 2287 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2288 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2289 }, 2290 { 2291 .description = "ecv_l4_type", 2292 .field_bit_size = 3, 2293 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2294 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2295 }, 2296 { 2297 .description = "ecv_tun_type", 2298 .field_bit_size = 3, 2299 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2300 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2301 }, 2302 { 2303 .description = "vtag_tpid", 2304 .field_bit_size = 16, 2305 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2306 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2307 }, 2308 { 2309 .description = "vtag_pcp", 2310 .field_bit_size = 3, 2311 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2312 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2313 }, 2314 { 2315 .description = "vtag_de", 2316 .field_bit_size = 1, 2317 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2318 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2319 }, 2320 { 2321 .description = "vtag_vid", 2322 .field_bit_size = 12, 2323 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2324 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2325 }, 2326 /* act_tid: 3, , table: int_full_act_record.0 */ 2327 { 2328 .description = "flow_cntr_ptr", 2329 .field_bit_size = 14, 2330 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2331 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 2332 .field_opr1 = { 2333 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 2334 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 2335 }, 2336 { 2337 .description = "age_enable", 2338 .field_bit_size = 1, 2339 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2340 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2341 }, 2342 { 2343 .description = "agg_cntr_en", 2344 .field_bit_size = 1, 2345 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2346 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2347 }, 2348 { 2349 .description = "rate_cntr_en", 2350 .field_bit_size = 1, 2351 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2352 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2353 }, 2354 { 2355 .description = "flow_cntr_en", 2356 .field_bit_size = 1, 2357 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2358 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 2359 .field_opr1 = { 2360 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 2361 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 2362 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 2363 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 2364 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 2365 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 2366 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 2367 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 2368 }, 2369 { 2370 .description = "tcpflags_key", 2371 .field_bit_size = 8, 2372 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2373 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2374 }, 2375 { 2376 .description = "tcpflags_mir", 2377 .field_bit_size = 1, 2378 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2379 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2380 }, 2381 { 2382 .description = "tcpflags_match", 2383 .field_bit_size = 1, 2384 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2385 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2386 }, 2387 { 2388 .description = "encap_ptr", 2389 .field_bit_size = 11, 2390 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2391 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF, 2392 .field_opr1 = { 2393 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff, 2394 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff} 2395 }, 2396 { 2397 .description = "dst_ip_ptr", 2398 .field_bit_size = 10, 2399 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2400 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 2401 .field_opr1 = { 2402 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff, 2403 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff} 2404 }, 2405 { 2406 .description = "tcp_dst_port", 2407 .field_bit_size = 16, 2408 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 2409 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 2410 .field_opr1 = { 2411 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff, 2412 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff, 2413 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff, 2414 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff, 2415 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff, 2416 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff, 2417 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff, 2418 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff}, 2419 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2420 .field_opr2 = { 2421 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff, 2422 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff}, 2423 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 2424 }, 2425 { 2426 .description = "src_ip_ptr", 2427 .field_bit_size = 10, 2428 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2429 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 2430 .field_opr1 = { 2431 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff, 2432 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff} 2433 }, 2434 { 2435 .description = "tcp_src_port", 2436 .field_bit_size = 16, 2437 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 2438 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 2439 .field_opr1 = { 2440 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff, 2441 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff, 2442 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff, 2443 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff, 2444 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff, 2445 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff, 2446 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff, 2447 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff}, 2448 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2449 .field_opr2 = { 2450 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff, 2451 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff}, 2452 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 2453 }, 2454 { 2455 .description = "meter_id", 2456 .field_bit_size = 10, 2457 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2458 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2459 }, 2460 { 2461 .description = "l3_rdir", 2462 .field_bit_size = 1, 2463 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2464 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2465 }, 2466 { 2467 .description = "tl3_rdir", 2468 .field_bit_size = 1, 2469 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2470 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2471 }, 2472 { 2473 .description = "l3_ttl_dec", 2474 .field_bit_size = 1, 2475 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2476 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 2477 .field_opr1 = { 2478 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff, 2479 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff} 2480 }, 2481 { 2482 .description = "tl3_ttl_dec", 2483 .field_bit_size = 1, 2484 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2485 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 2486 .field_opr1 = { 2487 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff, 2488 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff} 2489 }, 2490 { 2491 .description = "decap_func", 2492 .field_bit_size = 4, 2493 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 2494 .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT, 2495 .field_opr1 = { 2496 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 2497 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 2498 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 2499 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 2500 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 2501 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 2502 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 2503 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 2504 .field_src2 = BNXT_ULP_FIELD_SRC_CONST, 2505 .field_opr2 = { 2506 ULP_WP_SYM_DECAP_FUNC_THRU_TL2}, 2507 .field_src3 = BNXT_ULP_FIELD_SRC_CONST, 2508 .field_opr3 = { 2509 ULP_WP_SYM_DECAP_FUNC_THRU_L2} 2510 }, 2511 { 2512 .description = "vnic_or_vport", 2513 .field_bit_size = 12, 2514 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2515 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2516 .field_opr1 = { 2517 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff, 2518 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff} 2519 }, 2520 { 2521 .description = "pop_vlan", 2522 .field_bit_size = 1, 2523 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2524 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2525 }, 2526 { 2527 .description = "meter", 2528 .field_bit_size = 1, 2529 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2530 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2531 }, 2532 { 2533 .description = "mirror", 2534 .field_bit_size = 2, 2535 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2536 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2537 }, 2538 { 2539 .description = "drop", 2540 .field_bit_size = 1, 2541 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2542 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2543 }, 2544 { 2545 .description = "hit", 2546 .field_bit_size = 1, 2547 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2548 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2549 }, 2550 { 2551 .description = "type", 2552 .field_bit_size = 1, 2553 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2554 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2555 }, 2556 /* act_tid: 3, , table: ext_full_act_record.0 */ 2557 { 2558 .description = "flow_cntr_ptr", 2559 .field_bit_size = 14, 2560 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2561 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 2562 .field_opr1 = { 2563 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 2564 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 2565 }, 2566 { 2567 .description = "age_enable", 2568 .field_bit_size = 1, 2569 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2570 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2571 }, 2572 { 2573 .description = "agg_cntr_en", 2574 .field_bit_size = 1, 2575 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2576 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2577 }, 2578 { 2579 .description = "rate_cntr_en", 2580 .field_bit_size = 1, 2581 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2582 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2583 }, 2584 { 2585 .description = "flow_cntr_en", 2586 .field_bit_size = 1, 2587 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2588 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 2589 .field_opr1 = { 2590 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 2591 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 2592 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 2593 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 2594 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 2595 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 2596 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 2597 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 2598 }, 2599 { 2600 .description = "flow_cntr_ext", 2601 .field_bit_size = 1, 2602 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2603 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2604 }, 2605 { 2606 .description = "tcpflags_key", 2607 .field_bit_size = 8, 2608 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2609 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2610 }, 2611 { 2612 .description = "tcpflags_mir", 2613 .field_bit_size = 1, 2614 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2615 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2616 }, 2617 { 2618 .description = "tcpflags_match", 2619 .field_bit_size = 1, 2620 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2621 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2622 }, 2623 { 2624 .description = "encap_ptr", 2625 .field_bit_size = 11, 2626 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2627 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF, 2628 .field_opr1 = { 2629 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff, 2630 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff} 2631 }, 2632 { 2633 .description = "encap_rec_int", 2634 .field_bit_size = 1, 2635 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2636 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 2637 .field_opr1 = { 2638 1} 2639 }, 2640 { 2641 .description = "dst_ip_ptr", 2642 .field_bit_size = 10, 2643 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2644 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 2645 .field_opr1 = { 2646 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff, 2647 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff} 2648 }, 2649 { 2650 .description = "tcp_dst_port", 2651 .field_bit_size = 16, 2652 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 2653 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 2654 .field_opr1 = { 2655 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff, 2656 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff, 2657 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff, 2658 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff, 2659 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff, 2660 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff, 2661 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff, 2662 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff}, 2663 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2664 .field_opr2 = { 2665 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff, 2666 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff}, 2667 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 2668 }, 2669 { 2670 .description = "src_ip_ptr", 2671 .field_bit_size = 10, 2672 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2673 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 2674 .field_opr1 = { 2675 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff, 2676 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff} 2677 }, 2678 { 2679 .description = "tcp_src_port", 2680 .field_bit_size = 16, 2681 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 2682 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 2683 .field_opr1 = { 2684 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff, 2685 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff, 2686 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff, 2687 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff, 2688 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff, 2689 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff, 2690 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff, 2691 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff}, 2692 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2693 .field_opr2 = { 2694 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff, 2695 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff}, 2696 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 2697 }, 2698 { 2699 .description = "meter_id", 2700 .field_bit_size = 10, 2701 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2702 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2703 }, 2704 { 2705 .description = "l3_rdir", 2706 .field_bit_size = 1, 2707 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2708 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2709 }, 2710 { 2711 .description = "tl3_rdir", 2712 .field_bit_size = 1, 2713 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2714 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2715 }, 2716 { 2717 .description = "l3_ttl_dec", 2718 .field_bit_size = 1, 2719 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2720 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 2721 .field_opr1 = { 2722 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff, 2723 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff} 2724 }, 2725 { 2726 .description = "tl3_ttl_dec", 2727 .field_bit_size = 1, 2728 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2729 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 2730 .field_opr1 = { 2731 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff, 2732 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff} 2733 }, 2734 { 2735 .description = "decap_func", 2736 .field_bit_size = 4, 2737 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 2738 .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT, 2739 .field_opr1 = { 2740 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 2741 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 2742 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 2743 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 2744 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 2745 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 2746 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 2747 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 2748 .field_src2 = BNXT_ULP_FIELD_SRC_CONST, 2749 .field_opr2 = { 2750 ULP_WP_SYM_DECAP_FUNC_THRU_TL2}, 2751 .field_src3 = BNXT_ULP_FIELD_SRC_CONST, 2752 .field_opr3 = { 2753 ULP_WP_SYM_DECAP_FUNC_THRU_L2} 2754 }, 2755 { 2756 .description = "vnic_or_vport", 2757 .field_bit_size = 12, 2758 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2759 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2760 .field_opr1 = { 2761 (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff, 2762 BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff} 2763 }, 2764 { 2765 .description = "pop_vlan", 2766 .field_bit_size = 1, 2767 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2768 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2769 }, 2770 { 2771 .description = "meter", 2772 .field_bit_size = 1, 2773 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2774 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2775 }, 2776 { 2777 .description = "mirror", 2778 .field_bit_size = 2, 2779 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2780 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2781 }, 2782 { 2783 .description = "drop", 2784 .field_bit_size = 1, 2785 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2786 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2787 }, 2788 { 2789 .description = "ecv_valid", 2790 .field_bit_size = 1, 2791 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2792 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 2793 .field_opr1 = { 2794 ULP_WP_SYM_ECV_VALID_YES} 2795 }, 2796 { 2797 .description = "ecv_custom_en", 2798 .field_bit_size = 1, 2799 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2800 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2801 }, 2802 { 2803 .description = "ecv_vtag_type", 2804 .field_bit_size = 4, 2805 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2806 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2807 }, 2808 { 2809 .description = "ecv_l2_en", 2810 .field_bit_size = 1, 2811 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2812 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2813 }, 2814 { 2815 .description = "ecv_l3_type", 2816 .field_bit_size = 3, 2817 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2818 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2819 }, 2820 { 2821 .description = "ecv_l4_type", 2822 .field_bit_size = 3, 2823 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2824 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2825 }, 2826 { 2827 .description = "ecv_tun_type", 2828 .field_bit_size = 3, 2829 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2830 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2831 }, 2832 { 2833 .description = "vtag_tpid", 2834 .field_bit_size = 16, 2835 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2836 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2837 }, 2838 { 2839 .description = "vtag_pcp", 2840 .field_bit_size = 3, 2841 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2842 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2843 }, 2844 { 2845 .description = "vtag_de", 2846 .field_bit_size = 1, 2847 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2848 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2849 }, 2850 { 2851 .description = "vtag_vid", 2852 .field_bit_size = 12, 2853 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2854 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2855 }, 2856 /* act_tid: 4, , table: int_flow_counter_tbl.0 */ 2857 { 2858 .description = "count", 2859 .field_bit_size = 64, 2860 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2861 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2862 }, 2863 /* act_tid: 4, , table: int_vtag_encap_record.0 */ 2864 { 2865 .description = "ecv_valid", 2866 .field_bit_size = 1, 2867 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2868 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 2869 .field_opr1 = { 2870 1} 2871 }, 2872 { 2873 .description = "ecv_custom_en", 2874 .field_bit_size = 1, 2875 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2876 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2877 }, 2878 { 2879 .description = "ecv_vtag_type", 2880 .field_bit_size = 4, 2881 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2882 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 2883 .field_opr1 = { 2884 ULP_WP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI} 2885 }, 2886 { 2887 .description = "ecv_l2_en", 2888 .field_bit_size = 1, 2889 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2890 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2891 }, 2892 { 2893 .description = "ecv_l3_type", 2894 .field_bit_size = 3, 2895 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2896 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2897 }, 2898 { 2899 .description = "ecv_l4_type", 2900 .field_bit_size = 3, 2901 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2902 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2903 }, 2904 { 2905 .description = "ecv_tun_type", 2906 .field_bit_size = 3, 2907 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2908 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2909 }, 2910 { 2911 .description = "vtag_tpid", 2912 .field_bit_size = 16, 2913 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2914 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2915 .field_opr1 = { 2916 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff, 2917 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff} 2918 }, 2919 { 2920 .description = "vtag_pcp", 2921 .field_bit_size = 3, 2922 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2923 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2924 .field_opr1 = { 2925 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff, 2926 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff} 2927 }, 2928 { 2929 .description = "vtag_de", 2930 .field_bit_size = 1, 2931 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2932 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2933 }, 2934 { 2935 .description = "vtag_vid", 2936 .field_bit_size = 12, 2937 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2938 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 2939 .field_opr1 = { 2940 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff, 2941 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff} 2942 }, 2943 /* act_tid: 4, , table: int_full_act_record.0 */ 2944 { 2945 .description = "flow_cntr_ptr", 2946 .field_bit_size = 14, 2947 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2948 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 2949 .field_opr1 = { 2950 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 2951 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 2952 }, 2953 { 2954 .description = "age_enable", 2955 .field_bit_size = 1, 2956 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2957 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2958 }, 2959 { 2960 .description = "agg_cntr_en", 2961 .field_bit_size = 1, 2962 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2963 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2964 }, 2965 { 2966 .description = "rate_cntr_en", 2967 .field_bit_size = 1, 2968 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2969 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2970 }, 2971 { 2972 .description = "flow_cntr_en", 2973 .field_bit_size = 1, 2974 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2975 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 2976 .field_opr1 = { 2977 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 2978 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 2979 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 2980 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 2981 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 2982 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 2983 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 2984 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 2985 }, 2986 { 2987 .description = "tcpflags_key", 2988 .field_bit_size = 8, 2989 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2990 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2991 }, 2992 { 2993 .description = "tcpflags_mir", 2994 .field_bit_size = 1, 2995 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 2996 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 2997 }, 2998 { 2999 .description = "tcpflags_match", 3000 .field_bit_size = 1, 3001 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3002 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3003 }, 3004 { 3005 .description = "encap_ptr", 3006 .field_bit_size = 11, 3007 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3008 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 3009 .field_opr1 = { 3010 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff, 3011 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff} 3012 }, 3013 { 3014 .description = "dst_ip_ptr", 3015 .field_bit_size = 10, 3016 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3017 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3018 }, 3019 { 3020 .description = "tcp_dst_port", 3021 .field_bit_size = 16, 3022 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3023 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3024 }, 3025 { 3026 .description = "src_ip_ptr", 3027 .field_bit_size = 10, 3028 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3029 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3030 }, 3031 { 3032 .description = "tcp_src_port", 3033 .field_bit_size = 16, 3034 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3035 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3036 }, 3037 { 3038 .description = "meter_id", 3039 .field_bit_size = 10, 3040 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3041 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3042 }, 3043 { 3044 .description = "l3_rdir", 3045 .field_bit_size = 1, 3046 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3047 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3048 }, 3049 { 3050 .description = "tl3_rdir", 3051 .field_bit_size = 1, 3052 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3053 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3054 }, 3055 { 3056 .description = "l3_ttl_dec", 3057 .field_bit_size = 1, 3058 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3059 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 3060 .field_opr1 = { 3061 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff, 3062 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff} 3063 }, 3064 { 3065 .description = "tl3_ttl_dec", 3066 .field_bit_size = 1, 3067 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3068 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 3069 .field_opr1 = { 3070 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff, 3071 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff} 3072 }, 3073 { 3074 .description = "decap_func", 3075 .field_bit_size = 4, 3076 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3077 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3078 }, 3079 { 3080 .description = "vnic_or_vport", 3081 .field_bit_size = 12, 3082 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3083 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3084 .field_opr1 = { 3085 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff, 3086 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff} 3087 }, 3088 { 3089 .description = "pop_vlan", 3090 .field_bit_size = 1, 3091 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3092 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3093 }, 3094 { 3095 .description = "meter", 3096 .field_bit_size = 1, 3097 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3098 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3099 }, 3100 { 3101 .description = "mirror", 3102 .field_bit_size = 2, 3103 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3104 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3105 }, 3106 { 3107 .description = "drop", 3108 .field_bit_size = 1, 3109 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3110 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 3111 .field_opr1 = { 3112 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff, 3113 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff, 3114 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff, 3115 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff, 3116 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff, 3117 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff, 3118 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff, 3119 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff} 3120 }, 3121 { 3122 .description = "hit", 3123 .field_bit_size = 1, 3124 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3125 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3126 }, 3127 { 3128 .description = "type", 3129 .field_bit_size = 1, 3130 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3131 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3132 }, 3133 /* act_tid: 4, , table: ext_full_act_record.no_tag */ 3134 { 3135 .description = "flow_cntr_ptr", 3136 .field_bit_size = 14, 3137 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3138 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 3139 .field_opr1 = { 3140 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 3141 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 3142 }, 3143 { 3144 .description = "age_enable", 3145 .field_bit_size = 1, 3146 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3147 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3148 }, 3149 { 3150 .description = "agg_cntr_en", 3151 .field_bit_size = 1, 3152 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3153 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3154 }, 3155 { 3156 .description = "rate_cntr_en", 3157 .field_bit_size = 1, 3158 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3159 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3160 }, 3161 { 3162 .description = "flow_cntr_en", 3163 .field_bit_size = 1, 3164 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3165 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 3166 .field_opr1 = { 3167 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 3168 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 3169 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 3170 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 3171 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 3172 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 3173 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 3174 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 3175 }, 3176 { 3177 .description = "flow_cntr_ext", 3178 .field_bit_size = 1, 3179 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3180 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3181 }, 3182 { 3183 .description = "tcpflags_key", 3184 .field_bit_size = 8, 3185 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3186 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3187 }, 3188 { 3189 .description = "tcpflags_mir", 3190 .field_bit_size = 1, 3191 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3192 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3193 }, 3194 { 3195 .description = "tcpflags_match", 3196 .field_bit_size = 1, 3197 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3198 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3199 }, 3200 { 3201 .description = "encap_ptr", 3202 .field_bit_size = 11, 3203 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3204 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3205 }, 3206 { 3207 .description = "encap_rec_int", 3208 .field_bit_size = 1, 3209 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3210 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3211 }, 3212 { 3213 .description = "dst_ip_ptr", 3214 .field_bit_size = 10, 3215 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3216 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3217 }, 3218 { 3219 .description = "tcp_dst_port", 3220 .field_bit_size = 16, 3221 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3222 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3223 }, 3224 { 3225 .description = "src_ip_ptr", 3226 .field_bit_size = 10, 3227 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3228 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3229 }, 3230 { 3231 .description = "tcp_src_port", 3232 .field_bit_size = 16, 3233 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3234 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3235 }, 3236 { 3237 .description = "meter_id", 3238 .field_bit_size = 10, 3239 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3240 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3241 }, 3242 { 3243 .description = "l3_rdir", 3244 .field_bit_size = 1, 3245 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3246 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3247 }, 3248 { 3249 .description = "tl3_rdir", 3250 .field_bit_size = 1, 3251 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3252 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3253 }, 3254 { 3255 .description = "l3_ttl_dec", 3256 .field_bit_size = 1, 3257 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3258 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 3259 .field_opr1 = { 3260 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff, 3261 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff} 3262 }, 3263 { 3264 .description = "tl3_ttl_dec", 3265 .field_bit_size = 1, 3266 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3267 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 3268 .field_opr1 = { 3269 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff, 3270 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff} 3271 }, 3272 { 3273 .description = "decap_func", 3274 .field_bit_size = 4, 3275 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3276 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3277 }, 3278 { 3279 .description = "vnic_or_vport", 3280 .field_bit_size = 12, 3281 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3282 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3283 .field_opr1 = { 3284 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff, 3285 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff} 3286 }, 3287 { 3288 .description = "pop_vlan", 3289 .field_bit_size = 1, 3290 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3291 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3292 }, 3293 { 3294 .description = "meter", 3295 .field_bit_size = 1, 3296 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3297 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3298 }, 3299 { 3300 .description = "mirror", 3301 .field_bit_size = 2, 3302 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3303 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3304 }, 3305 { 3306 .description = "drop", 3307 .field_bit_size = 1, 3308 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3309 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 3310 .field_opr1 = { 3311 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff, 3312 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff, 3313 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff, 3314 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff, 3315 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff, 3316 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff, 3317 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff, 3318 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff} 3319 }, 3320 { 3321 .description = "ecv_valid", 3322 .field_bit_size = 1, 3323 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3324 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 3325 .field_opr1 = { 3326 ULP_WP_SYM_ECV_VALID_YES} 3327 }, 3328 { 3329 .description = "ecv_custom_en", 3330 .field_bit_size = 1, 3331 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3332 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3333 }, 3334 { 3335 .description = "ecv_vtag_type", 3336 .field_bit_size = 4, 3337 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3338 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3339 }, 3340 { 3341 .description = "ecv_l2_en", 3342 .field_bit_size = 1, 3343 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3344 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3345 }, 3346 { 3347 .description = "ecv_l3_type", 3348 .field_bit_size = 3, 3349 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3350 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3351 }, 3352 { 3353 .description = "ecv_l4_type", 3354 .field_bit_size = 3, 3355 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3356 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3357 }, 3358 { 3359 .description = "ecv_tun_type", 3360 .field_bit_size = 3, 3361 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3362 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3363 }, 3364 { 3365 .description = "vtag_tpid", 3366 .field_bit_size = 16, 3367 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3368 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3369 }, 3370 { 3371 .description = "vtag_pcp", 3372 .field_bit_size = 3, 3373 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3374 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3375 }, 3376 { 3377 .description = "vtag_de", 3378 .field_bit_size = 1, 3379 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3380 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3381 }, 3382 { 3383 .description = "vtag_vid", 3384 .field_bit_size = 12, 3385 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3386 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3387 }, 3388 /* act_tid: 4, , table: ext_full_act_record.one_tag */ 3389 { 3390 .description = "flow_cntr_ptr", 3391 .field_bit_size = 14, 3392 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3393 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 3394 .field_opr1 = { 3395 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 3396 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 3397 }, 3398 { 3399 .description = "age_enable", 3400 .field_bit_size = 1, 3401 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3402 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3403 }, 3404 { 3405 .description = "agg_cntr_en", 3406 .field_bit_size = 1, 3407 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3408 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3409 }, 3410 { 3411 .description = "rate_cntr_en", 3412 .field_bit_size = 1, 3413 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3414 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3415 }, 3416 { 3417 .description = "flow_cntr_en", 3418 .field_bit_size = 1, 3419 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3420 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 3421 .field_opr1 = { 3422 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 3423 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 3424 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 3425 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 3426 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 3427 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 3428 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 3429 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 3430 }, 3431 { 3432 .description = "flow_cntr_ext", 3433 .field_bit_size = 1, 3434 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3435 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3436 }, 3437 { 3438 .description = "tcpflags_key", 3439 .field_bit_size = 8, 3440 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3441 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3442 }, 3443 { 3444 .description = "tcpflags_mir", 3445 .field_bit_size = 1, 3446 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3447 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3448 }, 3449 { 3450 .description = "tcpflags_match", 3451 .field_bit_size = 1, 3452 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3453 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3454 }, 3455 { 3456 .description = "encap_ptr", 3457 .field_bit_size = 11, 3458 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3459 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3460 }, 3461 { 3462 .description = "encap_rec_int", 3463 .field_bit_size = 1, 3464 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3465 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3466 }, 3467 { 3468 .description = "dst_ip_ptr", 3469 .field_bit_size = 10, 3470 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3471 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3472 }, 3473 { 3474 .description = "tcp_dst_port", 3475 .field_bit_size = 16, 3476 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3477 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3478 }, 3479 { 3480 .description = "src_ip_ptr", 3481 .field_bit_size = 10, 3482 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3483 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3484 }, 3485 { 3486 .description = "tcp_src_port", 3487 .field_bit_size = 16, 3488 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3489 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3490 }, 3491 { 3492 .description = "meter_id", 3493 .field_bit_size = 10, 3494 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3495 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3496 }, 3497 { 3498 .description = "l3_rdir", 3499 .field_bit_size = 1, 3500 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3501 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3502 }, 3503 { 3504 .description = "tl3_rdir", 3505 .field_bit_size = 1, 3506 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3507 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3508 }, 3509 { 3510 .description = "l3_ttl_dec", 3511 .field_bit_size = 1, 3512 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3513 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 3514 .field_opr1 = { 3515 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff, 3516 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff} 3517 }, 3518 { 3519 .description = "tl3_ttl_dec", 3520 .field_bit_size = 1, 3521 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3522 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 3523 .field_opr1 = { 3524 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff, 3525 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff} 3526 }, 3527 { 3528 .description = "decap_func", 3529 .field_bit_size = 4, 3530 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3531 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3532 }, 3533 { 3534 .description = "vnic_or_vport", 3535 .field_bit_size = 12, 3536 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3537 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3538 .field_opr1 = { 3539 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff, 3540 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff} 3541 }, 3542 { 3543 .description = "pop_vlan", 3544 .field_bit_size = 1, 3545 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3546 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 3547 .field_opr1 = { 3548 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff, 3549 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff, 3550 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff, 3551 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff, 3552 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff, 3553 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff, 3554 ((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff, 3555 (uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff} 3556 }, 3557 { 3558 .description = "meter", 3559 .field_bit_size = 1, 3560 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3561 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3562 }, 3563 { 3564 .description = "mirror", 3565 .field_bit_size = 2, 3566 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3567 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3568 }, 3569 { 3570 .description = "drop", 3571 .field_bit_size = 1, 3572 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3573 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 3574 .field_opr1 = { 3575 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff, 3576 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff, 3577 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff, 3578 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff, 3579 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff, 3580 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff, 3581 ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff, 3582 (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff} 3583 }, 3584 { 3585 .description = "ecv_valid", 3586 .field_bit_size = 1, 3587 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3588 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 3589 .field_opr1 = { 3590 1} 3591 }, 3592 { 3593 .description = "ecv_custom_en", 3594 .field_bit_size = 1, 3595 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3596 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3597 }, 3598 { 3599 .description = "ecv_vtag_type", 3600 .field_bit_size = 4, 3601 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3602 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 3603 .field_opr1 = { 3604 ULP_WP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI} 3605 }, 3606 { 3607 .description = "ecv_l2_en", 3608 .field_bit_size = 1, 3609 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3610 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3611 }, 3612 { 3613 .description = "ecv_l3_type", 3614 .field_bit_size = 3, 3615 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3616 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3617 }, 3618 { 3619 .description = "ecv_l4_type", 3620 .field_bit_size = 3, 3621 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3622 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3623 }, 3624 { 3625 .description = "ecv_tun_type", 3626 .field_bit_size = 3, 3627 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3628 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3629 }, 3630 { 3631 .description = "vtag_tpid", 3632 .field_bit_size = 16, 3633 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3634 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3635 .field_opr1 = { 3636 (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff, 3637 BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff} 3638 }, 3639 { 3640 .description = "vtag_pcp", 3641 .field_bit_size = 3, 3642 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3643 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3644 .field_opr1 = { 3645 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff, 3646 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff} 3647 }, 3648 { 3649 .description = "vtag_de", 3650 .field_bit_size = 1, 3651 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3652 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3653 }, 3654 { 3655 .description = "vtag_vid", 3656 .field_bit_size = 12, 3657 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3658 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3659 .field_opr1 = { 3660 (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff, 3661 BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff} 3662 }, 3663 /* act_tid: 5, , table: int_flow_counter_tbl.0 */ 3664 { 3665 .description = "count", 3666 .field_bit_size = 64, 3667 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3668 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3669 }, 3670 /* act_tid: 5, , table: act_modify_ipv4_src.0 */ 3671 { 3672 .description = "ipv4_addr", 3673 .field_bit_size = 32, 3674 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3675 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3676 .field_opr1 = { 3677 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff, 3678 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff} 3679 }, 3680 /* act_tid: 5, , table: act_modify_ipv4_dst.0 */ 3681 { 3682 .description = "ipv4_addr", 3683 .field_bit_size = 32, 3684 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3685 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3686 .field_opr1 = { 3687 (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff, 3688 BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff} 3689 }, 3690 /* act_tid: 5, , table: int_encap_mac_record.dummy */ 3691 { 3692 .description = "ecv_valid", 3693 .field_bit_size = 1, 3694 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3695 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 3696 .field_opr1 = { 3697 1} 3698 }, 3699 { 3700 .description = "ecv_custom_en", 3701 .field_bit_size = 1, 3702 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3703 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3704 }, 3705 { 3706 .description = "ecv_vtag_type", 3707 .field_bit_size = 4, 3708 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3709 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3710 }, 3711 { 3712 .description = "ecv_l2_en", 3713 .field_bit_size = 1, 3714 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3715 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 3716 .field_opr1 = { 3717 ULP_WP_SYM_ECV_L2_EN_YES} 3718 }, 3719 { 3720 .description = "ecv_l3_type", 3721 .field_bit_size = 3, 3722 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3723 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3724 }, 3725 { 3726 .description = "ecv_l4_type", 3727 .field_bit_size = 3, 3728 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3729 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3730 }, 3731 { 3732 .description = "ecv_tun_type", 3733 .field_bit_size = 3, 3734 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3735 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3736 }, 3737 { 3738 .description = "vtag_tpid", 3739 .field_bit_size = 16, 3740 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3741 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3742 }, 3743 { 3744 .description = "vtag_pcp", 3745 .field_bit_size = 3, 3746 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3747 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3748 }, 3749 { 3750 .description = "vtag_de", 3751 .field_bit_size = 1, 3752 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3753 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3754 }, 3755 { 3756 .description = "vtag_vid", 3757 .field_bit_size = 12, 3758 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3759 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3760 }, 3761 /* act_tid: 5, , table: int_full_act_record.0 */ 3762 { 3763 .description = "flow_cntr_ptr", 3764 .field_bit_size = 14, 3765 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3766 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 3767 .field_opr1 = { 3768 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 3769 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 3770 }, 3771 { 3772 .description = "age_enable", 3773 .field_bit_size = 1, 3774 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3775 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3776 }, 3777 { 3778 .description = "agg_cntr_en", 3779 .field_bit_size = 1, 3780 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3781 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3782 }, 3783 { 3784 .description = "rate_cntr_en", 3785 .field_bit_size = 1, 3786 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3787 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3788 }, 3789 { 3790 .description = "flow_cntr_en", 3791 .field_bit_size = 1, 3792 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3793 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 3794 .field_opr1 = { 3795 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 3796 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 3797 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 3798 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 3799 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 3800 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 3801 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 3802 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 3803 }, 3804 { 3805 .description = "tcpflags_key", 3806 .field_bit_size = 8, 3807 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3808 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3809 }, 3810 { 3811 .description = "tcpflags_mir", 3812 .field_bit_size = 1, 3813 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3814 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3815 }, 3816 { 3817 .description = "tcpflags_match", 3818 .field_bit_size = 1, 3819 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3820 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3821 }, 3822 { 3823 .description = "encap_ptr", 3824 .field_bit_size = 11, 3825 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3826 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF, 3827 .field_opr1 = { 3828 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff, 3829 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff} 3830 }, 3831 { 3832 .description = "dst_ip_ptr", 3833 .field_bit_size = 10, 3834 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3835 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 3836 .field_opr1 = { 3837 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff, 3838 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff} 3839 }, 3840 { 3841 .description = "tcp_dst_port", 3842 .field_bit_size = 16, 3843 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 3844 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 3845 .field_opr1 = { 3846 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff, 3847 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff, 3848 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff, 3849 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff, 3850 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff, 3851 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff, 3852 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff, 3853 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff}, 3854 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3855 .field_opr2 = { 3856 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff, 3857 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff}, 3858 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 3859 }, 3860 { 3861 .description = "src_ip_ptr", 3862 .field_bit_size = 10, 3863 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3864 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 3865 .field_opr1 = { 3866 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff, 3867 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff} 3868 }, 3869 { 3870 .description = "tcp_src_port", 3871 .field_bit_size = 16, 3872 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 3873 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 3874 .field_opr1 = { 3875 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff, 3876 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff, 3877 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff, 3878 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff, 3879 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff, 3880 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff, 3881 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff, 3882 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff}, 3883 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3884 .field_opr2 = { 3885 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff, 3886 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff}, 3887 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 3888 }, 3889 { 3890 .description = "meter_id", 3891 .field_bit_size = 10, 3892 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3893 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3894 }, 3895 { 3896 .description = "l3_rdir", 3897 .field_bit_size = 1, 3898 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3899 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3900 }, 3901 { 3902 .description = "tl3_rdir", 3903 .field_bit_size = 1, 3904 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3905 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3906 }, 3907 { 3908 .description = "l3_ttl_dec", 3909 .field_bit_size = 1, 3910 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3911 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 3912 .field_opr1 = { 3913 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff, 3914 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff} 3915 }, 3916 { 3917 .description = "tl3_ttl_dec", 3918 .field_bit_size = 1, 3919 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3920 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 3921 .field_opr1 = { 3922 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff, 3923 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff} 3924 }, 3925 { 3926 .description = "decap_func", 3927 .field_bit_size = 4, 3928 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 3929 .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT, 3930 .field_opr1 = { 3931 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 3932 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 3933 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 3934 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 3935 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 3936 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 3937 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 3938 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 3939 .field_src2 = BNXT_ULP_FIELD_SRC_CONST, 3940 .field_opr2 = { 3941 ULP_WP_SYM_DECAP_FUNC_THRU_TL2}, 3942 .field_src3 = BNXT_ULP_FIELD_SRC_CONST, 3943 .field_opr3 = { 3944 ULP_WP_SYM_DECAP_FUNC_THRU_L2} 3945 }, 3946 { 3947 .description = "vnic_or_vport", 3948 .field_bit_size = 12, 3949 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3950 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 3951 .field_opr1 = { 3952 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff, 3953 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff} 3954 }, 3955 { 3956 .description = "pop_vlan", 3957 .field_bit_size = 1, 3958 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3959 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3960 }, 3961 { 3962 .description = "meter", 3963 .field_bit_size = 1, 3964 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3965 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3966 }, 3967 { 3968 .description = "mirror", 3969 .field_bit_size = 2, 3970 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3971 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3972 }, 3973 { 3974 .description = "drop", 3975 .field_bit_size = 1, 3976 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3977 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3978 }, 3979 { 3980 .description = "hit", 3981 .field_bit_size = 1, 3982 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3983 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3984 }, 3985 { 3986 .description = "type", 3987 .field_bit_size = 1, 3988 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3989 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 3990 }, 3991 /* act_tid: 5, , table: ext_full_act_record.0 */ 3992 { 3993 .description = "flow_cntr_ptr", 3994 .field_bit_size = 14, 3995 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 3996 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 3997 .field_opr1 = { 3998 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 3999 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 4000 }, 4001 { 4002 .description = "age_enable", 4003 .field_bit_size = 1, 4004 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4005 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4006 }, 4007 { 4008 .description = "agg_cntr_en", 4009 .field_bit_size = 1, 4010 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4011 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4012 }, 4013 { 4014 .description = "rate_cntr_en", 4015 .field_bit_size = 1, 4016 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4017 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4018 }, 4019 { 4020 .description = "flow_cntr_en", 4021 .field_bit_size = 1, 4022 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4023 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 4024 .field_opr1 = { 4025 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 4026 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 4027 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 4028 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 4029 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 4030 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 4031 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 4032 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 4033 }, 4034 { 4035 .description = "flow_cntr_ext", 4036 .field_bit_size = 1, 4037 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4038 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4039 }, 4040 { 4041 .description = "tcpflags_key", 4042 .field_bit_size = 8, 4043 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4044 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4045 }, 4046 { 4047 .description = "tcpflags_mir", 4048 .field_bit_size = 1, 4049 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4050 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4051 }, 4052 { 4053 .description = "tcpflags_match", 4054 .field_bit_size = 1, 4055 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4056 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4057 }, 4058 { 4059 .description = "encap_ptr", 4060 .field_bit_size = 11, 4061 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4062 .field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF, 4063 .field_opr1 = { 4064 (BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR >> 8) & 0xff, 4065 BNXT_ULP_GLB_RF_IDX_ENCAP_MAC_PTR & 0xff} 4066 }, 4067 { 4068 .description = "encap_rec_int", 4069 .field_bit_size = 1, 4070 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4071 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 4072 .field_opr1 = { 4073 1} 4074 }, 4075 { 4076 .description = "dst_ip_ptr", 4077 .field_bit_size = 10, 4078 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4079 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 4080 .field_opr1 = { 4081 (BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff, 4082 BNXT_ULP_RF_IDX_MODIFY_IPV4_DST_PTR_0 & 0xff} 4083 }, 4084 { 4085 .description = "tcp_dst_port", 4086 .field_bit_size = 16, 4087 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4088 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 4089 .field_opr1 = { 4090 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff, 4091 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff, 4092 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff, 4093 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff, 4094 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff, 4095 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff, 4096 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff, 4097 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff}, 4098 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 4099 .field_opr2 = { 4100 (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff, 4101 BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff}, 4102 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 4103 }, 4104 { 4105 .description = "src_ip_ptr", 4106 .field_bit_size = 10, 4107 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4108 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 4109 .field_opr1 = { 4110 (BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff, 4111 BNXT_ULP_RF_IDX_MODIFY_IPV4_SRC_PTR_0 & 0xff} 4112 }, 4113 { 4114 .description = "tcp_src_port", 4115 .field_bit_size = 16, 4116 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4117 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 4118 .field_opr1 = { 4119 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff, 4120 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff, 4121 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff, 4122 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff, 4123 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff, 4124 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff, 4125 ((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff, 4126 (uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff}, 4127 .field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP, 4128 .field_opr2 = { 4129 (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff, 4130 BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff}, 4131 .field_src3 = BNXT_ULP_FIELD_SRC_ZERO 4132 }, 4133 { 4134 .description = "meter_id", 4135 .field_bit_size = 10, 4136 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4137 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4138 }, 4139 { 4140 .description = "l3_rdir", 4141 .field_bit_size = 1, 4142 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4143 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4144 }, 4145 { 4146 .description = "tl3_rdir", 4147 .field_bit_size = 1, 4148 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4149 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4150 }, 4151 { 4152 .description = "l3_ttl_dec", 4153 .field_bit_size = 1, 4154 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4155 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 4156 .field_opr1 = { 4157 (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff, 4158 BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff} 4159 }, 4160 { 4161 .description = "tl3_ttl_dec", 4162 .field_bit_size = 1, 4163 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4164 .field_src1 = BNXT_ULP_FIELD_SRC_CF, 4165 .field_opr1 = { 4166 (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff, 4167 BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff} 4168 }, 4169 { 4170 .description = "decap_func", 4171 .field_bit_size = 4, 4172 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4173 .field_src1 = BNXT_ULP_FIELD_SRC_HDR_BIT, 4174 .field_opr1 = { 4175 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 4176 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 4177 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 4178 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 4179 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 4180 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 4181 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 4182 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 4183 .field_src2 = BNXT_ULP_FIELD_SRC_CONST, 4184 .field_opr2 = { 4185 ULP_WP_SYM_DECAP_FUNC_THRU_TL2}, 4186 .field_src3 = BNXT_ULP_FIELD_SRC_CONST, 4187 .field_opr3 = { 4188 ULP_WP_SYM_DECAP_FUNC_THRU_L2} 4189 }, 4190 { 4191 .description = "vnic_or_vport", 4192 .field_bit_size = 12, 4193 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4194 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 4195 .field_opr1 = { 4196 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff, 4197 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff} 4198 }, 4199 { 4200 .description = "pop_vlan", 4201 .field_bit_size = 1, 4202 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4203 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4204 }, 4205 { 4206 .description = "meter", 4207 .field_bit_size = 1, 4208 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4209 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4210 }, 4211 { 4212 .description = "mirror", 4213 .field_bit_size = 2, 4214 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4215 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4216 }, 4217 { 4218 .description = "drop", 4219 .field_bit_size = 1, 4220 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4221 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4222 }, 4223 { 4224 .description = "ecv_valid", 4225 .field_bit_size = 1, 4226 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4227 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 4228 .field_opr1 = { 4229 ULP_WP_SYM_ECV_VALID_YES} 4230 }, 4231 { 4232 .description = "ecv_custom_en", 4233 .field_bit_size = 1, 4234 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4235 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4236 }, 4237 { 4238 .description = "ecv_vtag_type", 4239 .field_bit_size = 4, 4240 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4241 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4242 }, 4243 { 4244 .description = "ecv_l2_en", 4245 .field_bit_size = 1, 4246 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4247 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4248 }, 4249 { 4250 .description = "ecv_l3_type", 4251 .field_bit_size = 3, 4252 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4253 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4254 }, 4255 { 4256 .description = "ecv_l4_type", 4257 .field_bit_size = 3, 4258 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4259 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4260 }, 4261 { 4262 .description = "ecv_tun_type", 4263 .field_bit_size = 3, 4264 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4265 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4266 }, 4267 { 4268 .description = "vtag_tpid", 4269 .field_bit_size = 16, 4270 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4271 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4272 }, 4273 { 4274 .description = "vtag_pcp", 4275 .field_bit_size = 3, 4276 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4277 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4278 }, 4279 { 4280 .description = "vtag_de", 4281 .field_bit_size = 1, 4282 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4283 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4284 }, 4285 { 4286 .description = "vtag_vid", 4287 .field_bit_size = 12, 4288 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4289 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4290 }, 4291 /* act_tid: 6, , table: int_flow_counter_tbl.0 */ 4292 { 4293 .description = "count", 4294 .field_bit_size = 64, 4295 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4296 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4297 }, 4298 /* act_tid: 6, , table: sp_smac_ipv4.0 */ 4299 { 4300 .description = "smac", 4301 .field_bit_size = 48, 4302 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4303 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4304 .field_opr1 = { 4305 (BNXT_ULP_ENC_FIELD_ETH_SMAC >> 8) & 0xff, 4306 BNXT_ULP_ENC_FIELD_ETH_SMAC & 0xff} 4307 }, 4308 { 4309 .description = "ipv4_src_addr", 4310 .field_bit_size = 32, 4311 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4312 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4313 .field_opr1 = { 4314 (BNXT_ULP_ENC_FIELD_IPV4_SADDR >> 8) & 0xff, 4315 BNXT_ULP_ENC_FIELD_IPV4_SADDR & 0xff} 4316 }, 4317 /* act_tid: 6, , table: sp_smac_ipv6.0 */ 4318 { 4319 .description = "smac", 4320 .field_bit_size = 48, 4321 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4322 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4323 .field_opr1 = { 4324 (BNXT_ULP_ENC_FIELD_ETH_SMAC >> 8) & 0xff, 4325 BNXT_ULP_ENC_FIELD_ETH_SMAC & 0xff} 4326 }, 4327 { 4328 .description = "ipv6_src_addr", 4329 .field_bit_size = 128, 4330 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4331 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4332 .field_opr1 = { 4333 (BNXT_ULP_ENC_FIELD_IPV6_SADDR >> 8) & 0xff, 4334 BNXT_ULP_ENC_FIELD_IPV6_SADDR & 0xff} 4335 }, 4336 /* act_tid: 6, , table: int_tun_encap_record.0 */ 4337 { 4338 .description = "ecv_valid", 4339 .field_bit_size = 1, 4340 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4341 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 4342 .field_opr1 = { 4343 ULP_WP_SYM_ECV_VALID_YES} 4344 }, 4345 { 4346 .description = "ecv_custom_en", 4347 .field_bit_size = 1, 4348 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4349 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4350 }, 4351 { 4352 .description = "ecv_vtag_type", 4353 .field_bit_size = 4, 4354 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4355 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 4356 .field_opr1 = { 4357 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff, 4358 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff} 4359 }, 4360 { 4361 .description = "ecv_l2_en", 4362 .field_bit_size = 1, 4363 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4364 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 4365 .field_opr1 = { 4366 ULP_WP_SYM_ECV_L2_EN_YES} 4367 }, 4368 { 4369 .description = "ecv_l3_type", 4370 .field_bit_size = 3, 4371 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4372 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 4373 .field_opr1 = { 4374 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff, 4375 BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff} 4376 }, 4377 { 4378 .description = "ecv_l4_type", 4379 .field_bit_size = 3, 4380 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4381 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 4382 .field_opr1 = { 4383 ULP_WP_SYM_ECV_L4_TYPE_UDP_CSUM} 4384 }, 4385 { 4386 .description = "ecv_tun_type", 4387 .field_bit_size = 3, 4388 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4389 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 4390 .field_opr1 = { 4391 ULP_WP_SYM_ECV_TUN_TYPE_VXLAN} 4392 }, 4393 { 4394 .description = "enc_eth_dmac", 4395 .field_bit_size = 48, 4396 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4397 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4398 .field_opr1 = { 4399 (BNXT_ULP_ENC_FIELD_ETH_DMAC >> 8) & 0xff, 4400 BNXT_ULP_ENC_FIELD_ETH_DMAC & 0xff} 4401 }, 4402 { 4403 .description = "enc_o_vlan_tag", 4404 .field_bit_size = 16, 4405 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4406 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4407 .field_opr1 = { 4408 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 56) & 0xff, 4409 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 48) & 0xff, 4410 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 40) & 0xff, 4411 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 32) & 0xff, 4412 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 24) & 0xff, 4413 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 16) & 0xff, 4414 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 8) & 0xff, 4415 (uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN & 0xff}, 4416 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4417 .field_opr2 = { 4418 (BNXT_ULP_ENC_FIELD_O_VLAN_TCI >> 8) & 0xff, 4419 BNXT_ULP_ENC_FIELD_O_VLAN_TCI & 0xff}, 4420 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4421 }, 4422 { 4423 .description = "enc_o_vlan_type", 4424 .field_bit_size = 16, 4425 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4426 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4427 .field_opr1 = { 4428 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 56) & 0xff, 4429 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 48) & 0xff, 4430 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 40) & 0xff, 4431 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 32) & 0xff, 4432 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 24) & 0xff, 4433 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 16) & 0xff, 4434 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 8) & 0xff, 4435 (uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN & 0xff}, 4436 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4437 .field_opr2 = { 4438 (BNXT_ULP_ENC_FIELD_O_VLAN_TYPE >> 8) & 0xff, 4439 BNXT_ULP_ENC_FIELD_O_VLAN_TYPE & 0xff}, 4440 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4441 }, 4442 { 4443 .description = "enc_i_vlan_tag", 4444 .field_bit_size = 16, 4445 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4446 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4447 .field_opr1 = { 4448 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 56) & 0xff, 4449 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 48) & 0xff, 4450 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 40) & 0xff, 4451 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 32) & 0xff, 4452 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 24) & 0xff, 4453 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 16) & 0xff, 4454 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 8) & 0xff, 4455 (uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN & 0xff}, 4456 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4457 .field_opr2 = { 4458 (BNXT_ULP_ENC_FIELD_I_VLAN_TCI >> 8) & 0xff, 4459 BNXT_ULP_ENC_FIELD_I_VLAN_TCI & 0xff}, 4460 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4461 }, 4462 { 4463 .description = "enc_i_vlan_type", 4464 .field_bit_size = 16, 4465 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4466 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4467 .field_opr1 = { 4468 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 56) & 0xff, 4469 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 48) & 0xff, 4470 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 40) & 0xff, 4471 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 32) & 0xff, 4472 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 24) & 0xff, 4473 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 16) & 0xff, 4474 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 8) & 0xff, 4475 (uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN & 0xff}, 4476 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4477 .field_opr2 = { 4478 (BNXT_ULP_ENC_FIELD_I_VLAN_TYPE >> 8) & 0xff, 4479 BNXT_ULP_ENC_FIELD_I_VLAN_TYPE & 0xff}, 4480 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4481 }, 4482 { 4483 .description = "enc_ipv4_ihl", 4484 .field_bit_size = 8, 4485 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4486 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4487 .field_opr1 = { 4488 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 4489 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 4490 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 4491 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 4492 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 4493 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 4494 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 4495 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 4496 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4497 .field_opr2 = { 4498 (BNXT_ULP_ENC_FIELD_IPV4_IHL >> 8) & 0xff, 4499 BNXT_ULP_ENC_FIELD_IPV4_IHL & 0xff}, 4500 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4501 }, 4502 { 4503 .description = "enc_ipv4_tos", 4504 .field_bit_size = 8, 4505 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4506 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4507 .field_opr1 = { 4508 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 4509 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 4510 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 4511 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 4512 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 4513 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 4514 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 4515 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 4516 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4517 .field_opr2 = { 4518 (BNXT_ULP_ENC_FIELD_IPV4_TOS >> 8) & 0xff, 4519 BNXT_ULP_ENC_FIELD_IPV4_TOS & 0xff}, 4520 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4521 }, 4522 { 4523 .description = "enc_ipv4_pkt_id", 4524 .field_bit_size = 16, 4525 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4526 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4527 .field_opr1 = { 4528 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 4529 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 4530 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 4531 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 4532 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 4533 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 4534 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 4535 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 4536 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4537 .field_opr2 = { 4538 (BNXT_ULP_ENC_FIELD_IPV4_PKT_ID >> 8) & 0xff, 4539 BNXT_ULP_ENC_FIELD_IPV4_PKT_ID & 0xff}, 4540 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4541 }, 4542 { 4543 .description = "enc_ipv4_frag", 4544 .field_bit_size = 16, 4545 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4546 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4547 .field_opr1 = { 4548 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 4549 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 4550 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 4551 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 4552 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 4553 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 4554 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 4555 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 4556 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4557 .field_opr2 = { 4558 (BNXT_ULP_ENC_FIELD_IPV4_FRAG >> 8) & 0xff, 4559 BNXT_ULP_ENC_FIELD_IPV4_FRAG & 0xff}, 4560 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4561 }, 4562 { 4563 .description = "enc_ipv4_ttl", 4564 .field_bit_size = 8, 4565 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4566 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4567 .field_opr1 = { 4568 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 4569 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 4570 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 4571 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 4572 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 4573 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 4574 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 4575 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 4576 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4577 .field_opr2 = { 4578 (BNXT_ULP_ENC_FIELD_IPV4_TTL >> 8) & 0xff, 4579 BNXT_ULP_ENC_FIELD_IPV4_TTL & 0xff}, 4580 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4581 }, 4582 { 4583 .description = "enc_ipv4_proto", 4584 .field_bit_size = 8, 4585 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4586 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4587 .field_opr1 = { 4588 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 4589 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 4590 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 4591 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 4592 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 4593 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 4594 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 4595 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 4596 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4597 .field_opr2 = { 4598 (BNXT_ULP_ENC_FIELD_IPV4_PROTO >> 8) & 0xff, 4599 BNXT_ULP_ENC_FIELD_IPV4_PROTO & 0xff}, 4600 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4601 }, 4602 { 4603 .description = "enc_ipv4_daddr", 4604 .field_bit_size = 32, 4605 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4606 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4607 .field_opr1 = { 4608 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 4609 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 4610 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 4611 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 4612 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 4613 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 4614 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 4615 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 4616 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4617 .field_opr2 = { 4618 (BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff, 4619 BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff}, 4620 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4621 }, 4622 { 4623 .description = "enc_ipv6_vtc", 4624 .field_bit_size = 32, 4625 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4626 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4627 .field_opr1 = { 4628 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff, 4629 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff, 4630 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff, 4631 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff, 4632 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff, 4633 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff, 4634 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff, 4635 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff}, 4636 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4637 .field_opr2 = { 4638 (BNXT_ULP_ENC_FIELD_IPV6_VTC_FLOW >> 8) & 0xff, 4639 BNXT_ULP_ENC_FIELD_IPV6_VTC_FLOW & 0xff}, 4640 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4641 }, 4642 { 4643 .description = "enc_ipv6_zero", 4644 .field_bit_size = 16, 4645 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4646 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4647 .field_opr1 = { 4648 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff, 4649 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff, 4650 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff, 4651 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff, 4652 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff, 4653 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff, 4654 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff, 4655 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff}, 4656 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO, 4657 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4658 }, 4659 { 4660 .description = "enc_ipv6_proto", 4661 .field_bit_size = 8, 4662 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4663 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4664 .field_opr1 = { 4665 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff, 4666 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff, 4667 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff, 4668 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff, 4669 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff, 4670 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff, 4671 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff, 4672 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff}, 4673 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4674 .field_opr2 = { 4675 (BNXT_ULP_ENC_FIELD_IPV6_PROTO >> 8) & 0xff, 4676 BNXT_ULP_ENC_FIELD_IPV6_PROTO & 0xff}, 4677 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4678 }, 4679 { 4680 .description = "enc_ipv6_ttl", 4681 .field_bit_size = 8, 4682 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4683 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4684 .field_opr1 = { 4685 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff, 4686 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff, 4687 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff, 4688 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff, 4689 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff, 4690 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff, 4691 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff, 4692 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff}, 4693 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4694 .field_opr2 = { 4695 (BNXT_ULP_ENC_FIELD_IPV6_TTL >> 8) & 0xff, 4696 BNXT_ULP_ENC_FIELD_IPV6_TTL & 0xff}, 4697 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4698 }, 4699 { 4700 .description = "enc_ipv6_daddr", 4701 .field_bit_size = 128, 4702 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4703 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4704 .field_opr1 = { 4705 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff, 4706 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff, 4707 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff, 4708 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff, 4709 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff, 4710 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff, 4711 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff, 4712 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff}, 4713 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4714 .field_opr2 = { 4715 (BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff, 4716 BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff}, 4717 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4718 }, 4719 { 4720 .description = "enc_udp_sport", 4721 .field_bit_size = 16, 4722 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4723 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4724 .field_opr1 = { 4725 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 56) & 0xff, 4726 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 48) & 0xff, 4727 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 40) & 0xff, 4728 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 32) & 0xff, 4729 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 24) & 0xff, 4730 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 16) & 0xff, 4731 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 8) & 0xff, 4732 (uint64_t)BNXT_ULP_HDR_BIT_O_UDP & 0xff}, 4733 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4734 .field_opr2 = { 4735 (BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff, 4736 BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}, 4737 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4738 }, 4739 { 4740 .description = "enc_udp_dport", 4741 .field_bit_size = 16, 4742 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4743 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4744 .field_opr1 = { 4745 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 56) & 0xff, 4746 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 48) & 0xff, 4747 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 40) & 0xff, 4748 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 32) & 0xff, 4749 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 24) & 0xff, 4750 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 16) & 0xff, 4751 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 8) & 0xff, 4752 (uint64_t)BNXT_ULP_HDR_BIT_O_UDP & 0xff}, 4753 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4754 .field_opr2 = { 4755 (BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff, 4756 BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}, 4757 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4758 }, 4759 { 4760 .description = "enc_vxlan_flags", 4761 .field_bit_size = 8, 4762 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4763 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4764 .field_opr1 = { 4765 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 4766 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 4767 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 4768 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 4769 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 4770 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 4771 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 4772 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 4773 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4774 .field_opr2 = { 4775 (BNXT_ULP_ENC_FIELD_VXLAN_FLAGS >> 8) & 0xff, 4776 BNXT_ULP_ENC_FIELD_VXLAN_FLAGS & 0xff}, 4777 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4778 }, 4779 { 4780 .description = "enc_vxlan_rsvd0", 4781 .field_bit_size = 24, 4782 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4783 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4784 .field_opr1 = { 4785 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 4786 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 4787 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 4788 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 4789 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 4790 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 4791 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 4792 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 4793 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4794 .field_opr2 = { 4795 (BNXT_ULP_ENC_FIELD_VXLAN_RSVD0 >> 8) & 0xff, 4796 BNXT_ULP_ENC_FIELD_VXLAN_RSVD0 & 0xff}, 4797 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4798 }, 4799 { 4800 .description = "enc_vxlan_vni", 4801 .field_bit_size = 24, 4802 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4803 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4804 .field_opr1 = { 4805 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 4806 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 4807 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 4808 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 4809 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 4810 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 4811 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 4812 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 4813 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4814 .field_opr2 = { 4815 (BNXT_ULP_ENC_FIELD_VXLAN_VNI >> 8) & 0xff, 4816 BNXT_ULP_ENC_FIELD_VXLAN_VNI & 0xff}, 4817 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4818 }, 4819 { 4820 .description = "enc_vxlan_rsvd1", 4821 .field_bit_size = 8, 4822 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 4823 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 4824 .field_opr1 = { 4825 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 4826 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 4827 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 4828 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 4829 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 4830 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 4831 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 4832 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 4833 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 4834 .field_opr2 = { 4835 (BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 >> 8) & 0xff, 4836 BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 & 0xff}, 4837 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 4838 }, 4839 /* act_tid: 6, , table: int_full_act_record.0 */ 4840 { 4841 .description = "flow_cntr_ptr", 4842 .field_bit_size = 14, 4843 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4844 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 4845 .field_opr1 = { 4846 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 4847 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 4848 }, 4849 { 4850 .description = "age_enable", 4851 .field_bit_size = 1, 4852 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4853 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4854 }, 4855 { 4856 .description = "agg_cntr_en", 4857 .field_bit_size = 1, 4858 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4859 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4860 }, 4861 { 4862 .description = "rate_cntr_en", 4863 .field_bit_size = 1, 4864 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4865 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4866 }, 4867 { 4868 .description = "flow_cntr_en", 4869 .field_bit_size = 1, 4870 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4871 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 4872 .field_opr1 = { 4873 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 4874 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 4875 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 4876 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 4877 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 4878 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 4879 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 4880 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 4881 }, 4882 { 4883 .description = "tcpflags_key", 4884 .field_bit_size = 8, 4885 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4886 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4887 }, 4888 { 4889 .description = "tcpflags_mir", 4890 .field_bit_size = 1, 4891 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4892 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4893 }, 4894 { 4895 .description = "tcpflags_match", 4896 .field_bit_size = 1, 4897 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4898 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4899 }, 4900 { 4901 .description = "encap_ptr", 4902 .field_bit_size = 11, 4903 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4904 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 4905 .field_opr1 = { 4906 (BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff, 4907 BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff} 4908 }, 4909 { 4910 .description = "dst_ip_ptr", 4911 .field_bit_size = 10, 4912 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4913 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4914 }, 4915 { 4916 .description = "tcp_dst_port", 4917 .field_bit_size = 16, 4918 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4919 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4920 }, 4921 { 4922 .description = "src_ip_ptr", 4923 .field_bit_size = 10, 4924 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4925 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4926 }, 4927 { 4928 .description = "tcp_src_port", 4929 .field_bit_size = 16, 4930 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4931 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4932 }, 4933 { 4934 .description = "meter_id", 4935 .field_bit_size = 10, 4936 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4937 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4938 }, 4939 { 4940 .description = "l3_rdir", 4941 .field_bit_size = 1, 4942 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4943 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4944 }, 4945 { 4946 .description = "tl3_rdir", 4947 .field_bit_size = 1, 4948 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4949 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4950 }, 4951 { 4952 .description = "l3_ttl_dec", 4953 .field_bit_size = 1, 4954 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4955 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4956 }, 4957 { 4958 .description = "tl3_ttl_dec", 4959 .field_bit_size = 1, 4960 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4961 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4962 }, 4963 { 4964 .description = "decap_func", 4965 .field_bit_size = 4, 4966 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4967 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4968 }, 4969 { 4970 .description = "vnic_or_vport", 4971 .field_bit_size = 12, 4972 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4973 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 4974 .field_opr1 = { 4975 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff, 4976 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff} 4977 }, 4978 { 4979 .description = "pop_vlan", 4980 .field_bit_size = 1, 4981 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4982 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4983 }, 4984 { 4985 .description = "meter", 4986 .field_bit_size = 1, 4987 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4988 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4989 }, 4990 { 4991 .description = "mirror", 4992 .field_bit_size = 2, 4993 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 4994 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 4995 }, 4996 { 4997 .description = "drop", 4998 .field_bit_size = 1, 4999 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5000 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5001 }, 5002 { 5003 .description = "hit", 5004 .field_bit_size = 1, 5005 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5006 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5007 }, 5008 { 5009 .description = "type", 5010 .field_bit_size = 1, 5011 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5012 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5013 }, 5014 /* act_tid: 6, , table: ext_full_act_record_vxlan.0 */ 5015 { 5016 .description = "flow_cntr_ptr", 5017 .field_bit_size = 14, 5018 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5019 .field_src1 = BNXT_ULP_FIELD_SRC_RF, 5020 .field_opr1 = { 5021 (BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff, 5022 BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff} 5023 }, 5024 { 5025 .description = "age_enable", 5026 .field_bit_size = 1, 5027 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5028 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5029 }, 5030 { 5031 .description = "agg_cntr_en", 5032 .field_bit_size = 1, 5033 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5034 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5035 }, 5036 { 5037 .description = "rate_cntr_en", 5038 .field_bit_size = 1, 5039 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5040 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5041 }, 5042 { 5043 .description = "flow_cntr_en", 5044 .field_bit_size = 1, 5045 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5046 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT, 5047 .field_opr1 = { 5048 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 56) & 0xff, 5049 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 48) & 0xff, 5050 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 40) & 0xff, 5051 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 32) & 0xff, 5052 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 24) & 0xff, 5053 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 16) & 0xff, 5054 ((uint64_t)BNXT_ULP_ACT_BIT_COUNT >> 8) & 0xff, 5055 (uint64_t)BNXT_ULP_ACT_BIT_COUNT & 0xff} 5056 }, 5057 { 5058 .description = "flow_cntr_ext", 5059 .field_bit_size = 1, 5060 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5061 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5062 }, 5063 { 5064 .description = "tcpflags_key", 5065 .field_bit_size = 8, 5066 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5067 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5068 }, 5069 { 5070 .description = "tcpflags_mir", 5071 .field_bit_size = 1, 5072 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5073 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5074 }, 5075 { 5076 .description = "tcpflags_match", 5077 .field_bit_size = 1, 5078 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5079 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5080 }, 5081 { 5082 .description = "encap_ptr", 5083 .field_bit_size = 11, 5084 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5085 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5086 }, 5087 { 5088 .description = "encap_rec_int", 5089 .field_bit_size = 1, 5090 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5091 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5092 }, 5093 { 5094 .description = "dst_ip_ptr", 5095 .field_bit_size = 10, 5096 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5097 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5098 }, 5099 { 5100 .description = "tcp_dst_port", 5101 .field_bit_size = 16, 5102 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5103 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5104 }, 5105 { 5106 .description = "src_ip_ptr", 5107 .field_bit_size = 10, 5108 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5109 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5110 }, 5111 { 5112 .description = "tcp_src_port", 5113 .field_bit_size = 16, 5114 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5115 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5116 }, 5117 { 5118 .description = "meter_id", 5119 .field_bit_size = 10, 5120 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5121 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5122 }, 5123 { 5124 .description = "l3_rdir", 5125 .field_bit_size = 1, 5126 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5127 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5128 }, 5129 { 5130 .description = "tl3_rdir", 5131 .field_bit_size = 1, 5132 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5133 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5134 }, 5135 { 5136 .description = "l3_ttl_dec", 5137 .field_bit_size = 1, 5138 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5139 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5140 }, 5141 { 5142 .description = "tl3_ttl_dec", 5143 .field_bit_size = 1, 5144 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5145 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5146 }, 5147 { 5148 .description = "decap_func", 5149 .field_bit_size = 4, 5150 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5151 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5152 }, 5153 { 5154 .description = "vnic_or_vport", 5155 .field_bit_size = 12, 5156 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5157 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 5158 .field_opr1 = { 5159 (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff, 5160 BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff} 5161 }, 5162 { 5163 .description = "pop_vlan", 5164 .field_bit_size = 1, 5165 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5166 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5167 }, 5168 { 5169 .description = "meter", 5170 .field_bit_size = 1, 5171 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5172 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5173 }, 5174 { 5175 .description = "mirror", 5176 .field_bit_size = 2, 5177 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5178 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5179 }, 5180 { 5181 .description = "drop", 5182 .field_bit_size = 1, 5183 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5184 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5185 }, 5186 { 5187 .description = "ecv_valid", 5188 .field_bit_size = 1, 5189 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5190 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 5191 .field_opr1 = { 5192 ULP_WP_SYM_ECV_VALID_YES} 5193 }, 5194 { 5195 .description = "ecv_custom_en", 5196 .field_bit_size = 1, 5197 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5198 .field_src1 = BNXT_ULP_FIELD_SRC_ZERO 5199 }, 5200 { 5201 .description = "ecv_vtag_type", 5202 .field_bit_size = 4, 5203 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5204 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 5205 .field_opr1 = { 5206 (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff, 5207 BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff} 5208 }, 5209 { 5210 .description = "ecv_l2_en", 5211 .field_bit_size = 1, 5212 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5213 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 5214 .field_opr1 = { 5215 ULP_WP_SYM_ECV_L2_EN_YES} 5216 }, 5217 { 5218 .description = "ecv_l3_type", 5219 .field_bit_size = 3, 5220 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5221 .field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP, 5222 .field_opr1 = { 5223 (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff, 5224 BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff} 5225 }, 5226 { 5227 .description = "ecv_l4_type", 5228 .field_bit_size = 3, 5229 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5230 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 5231 .field_opr1 = { 5232 ULP_WP_SYM_ECV_L4_TYPE_UDP_CSUM} 5233 }, 5234 { 5235 .description = "ecv_tun_type", 5236 .field_bit_size = 3, 5237 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5238 .field_src1 = BNXT_ULP_FIELD_SRC_CONST, 5239 .field_opr1 = { 5240 ULP_WP_SYM_ECV_TUN_TYPE_VXLAN} 5241 }, 5242 { 5243 .description = "enc_eth_dmac", 5244 .field_bit_size = 48, 5245 .field_opc = BNXT_ULP_FIELD_OPC_SRC1, 5246 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5247 .field_opr1 = { 5248 (BNXT_ULP_ENC_FIELD_ETH_DMAC >> 8) & 0xff, 5249 BNXT_ULP_ENC_FIELD_ETH_DMAC & 0xff} 5250 }, 5251 { 5252 .description = "enc_o_vlan_tag", 5253 .field_bit_size = 16, 5254 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5255 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5256 .field_opr1 = { 5257 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 56) & 0xff, 5258 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 48) & 0xff, 5259 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 40) & 0xff, 5260 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 32) & 0xff, 5261 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 24) & 0xff, 5262 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 16) & 0xff, 5263 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 8) & 0xff, 5264 (uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN & 0xff}, 5265 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5266 .field_opr2 = { 5267 (BNXT_ULP_ENC_FIELD_O_VLAN_TCI >> 8) & 0xff, 5268 BNXT_ULP_ENC_FIELD_O_VLAN_TCI & 0xff}, 5269 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5270 }, 5271 { 5272 .description = "enc_o_vlan_type", 5273 .field_bit_size = 16, 5274 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5275 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5276 .field_opr1 = { 5277 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 56) & 0xff, 5278 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 48) & 0xff, 5279 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 40) & 0xff, 5280 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 32) & 0xff, 5281 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 24) & 0xff, 5282 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 16) & 0xff, 5283 ((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 8) & 0xff, 5284 (uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN & 0xff}, 5285 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5286 .field_opr2 = { 5287 (BNXT_ULP_ENC_FIELD_O_VLAN_TYPE >> 8) & 0xff, 5288 BNXT_ULP_ENC_FIELD_O_VLAN_TYPE & 0xff}, 5289 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5290 }, 5291 { 5292 .description = "enc_i_vlan_tag", 5293 .field_bit_size = 16, 5294 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5295 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5296 .field_opr1 = { 5297 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 56) & 0xff, 5298 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 48) & 0xff, 5299 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 40) & 0xff, 5300 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 32) & 0xff, 5301 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 24) & 0xff, 5302 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 16) & 0xff, 5303 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 8) & 0xff, 5304 (uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN & 0xff}, 5305 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5306 .field_opr2 = { 5307 (BNXT_ULP_ENC_FIELD_I_VLAN_TCI >> 8) & 0xff, 5308 BNXT_ULP_ENC_FIELD_I_VLAN_TCI & 0xff}, 5309 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5310 }, 5311 { 5312 .description = "enc_i_vlan_type", 5313 .field_bit_size = 16, 5314 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5315 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5316 .field_opr1 = { 5317 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 56) & 0xff, 5318 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 48) & 0xff, 5319 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 40) & 0xff, 5320 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 32) & 0xff, 5321 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 24) & 0xff, 5322 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 16) & 0xff, 5323 ((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 8) & 0xff, 5324 (uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN & 0xff}, 5325 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5326 .field_opr2 = { 5327 (BNXT_ULP_ENC_FIELD_I_VLAN_TYPE >> 8) & 0xff, 5328 BNXT_ULP_ENC_FIELD_I_VLAN_TYPE & 0xff}, 5329 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5330 }, 5331 { 5332 .description = "enc_ipv4_ihl", 5333 .field_bit_size = 8, 5334 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5335 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5336 .field_opr1 = { 5337 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 5338 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 5339 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 5340 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 5341 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 5342 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 5343 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 5344 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 5345 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5346 .field_opr2 = { 5347 (BNXT_ULP_ENC_FIELD_IPV4_IHL >> 8) & 0xff, 5348 BNXT_ULP_ENC_FIELD_IPV4_IHL & 0xff}, 5349 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5350 }, 5351 { 5352 .description = "enc_ipv4_tos", 5353 .field_bit_size = 8, 5354 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5355 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5356 .field_opr1 = { 5357 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 5358 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 5359 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 5360 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 5361 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 5362 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 5363 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 5364 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 5365 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5366 .field_opr2 = { 5367 (BNXT_ULP_ENC_FIELD_IPV4_TOS >> 8) & 0xff, 5368 BNXT_ULP_ENC_FIELD_IPV4_TOS & 0xff}, 5369 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5370 }, 5371 { 5372 .description = "enc_ipv4_pkt_id", 5373 .field_bit_size = 16, 5374 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5375 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5376 .field_opr1 = { 5377 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 5378 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 5379 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 5380 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 5381 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 5382 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 5383 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 5384 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 5385 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5386 .field_opr2 = { 5387 (BNXT_ULP_ENC_FIELD_IPV4_PKT_ID >> 8) & 0xff, 5388 BNXT_ULP_ENC_FIELD_IPV4_PKT_ID & 0xff}, 5389 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5390 }, 5391 { 5392 .description = "enc_ipv4_frag", 5393 .field_bit_size = 16, 5394 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5395 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5396 .field_opr1 = { 5397 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 5398 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 5399 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 5400 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 5401 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 5402 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 5403 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 5404 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 5405 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5406 .field_opr2 = { 5407 (BNXT_ULP_ENC_FIELD_IPV4_FRAG >> 8) & 0xff, 5408 BNXT_ULP_ENC_FIELD_IPV4_FRAG & 0xff}, 5409 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5410 }, 5411 { 5412 .description = "enc_ipv4_ttl", 5413 .field_bit_size = 8, 5414 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5415 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5416 .field_opr1 = { 5417 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 5418 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 5419 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 5420 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 5421 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 5422 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 5423 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 5424 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 5425 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5426 .field_opr2 = { 5427 (BNXT_ULP_ENC_FIELD_IPV4_TTL >> 8) & 0xff, 5428 BNXT_ULP_ENC_FIELD_IPV4_TTL & 0xff}, 5429 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5430 }, 5431 { 5432 .description = "enc_ipv4_proto", 5433 .field_bit_size = 8, 5434 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5435 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5436 .field_opr1 = { 5437 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 5438 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 5439 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 5440 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 5441 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 5442 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 5443 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 5444 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 5445 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5446 .field_opr2 = { 5447 (BNXT_ULP_ENC_FIELD_IPV4_PROTO >> 8) & 0xff, 5448 BNXT_ULP_ENC_FIELD_IPV4_PROTO & 0xff}, 5449 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5450 }, 5451 { 5452 .description = "enc_ipv4_daddr", 5453 .field_bit_size = 32, 5454 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5455 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5456 .field_opr1 = { 5457 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff, 5458 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff, 5459 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff, 5460 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff, 5461 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff, 5462 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff, 5463 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff, 5464 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff}, 5465 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5466 .field_opr2 = { 5467 (BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff, 5468 BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff}, 5469 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5470 }, 5471 { 5472 .description = "enc_ipv6_vtc", 5473 .field_bit_size = 32, 5474 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5475 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5476 .field_opr1 = { 5477 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff, 5478 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff, 5479 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff, 5480 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff, 5481 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff, 5482 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff, 5483 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff, 5484 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff}, 5485 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5486 .field_opr2 = { 5487 (BNXT_ULP_ENC_FIELD_IPV6_VTC_FLOW >> 8) & 0xff, 5488 BNXT_ULP_ENC_FIELD_IPV6_VTC_FLOW & 0xff}, 5489 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5490 }, 5491 { 5492 .description = "enc_ipv6_zero", 5493 .field_bit_size = 16, 5494 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5495 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5496 .field_opr1 = { 5497 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff, 5498 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff, 5499 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff, 5500 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff, 5501 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff, 5502 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff, 5503 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff, 5504 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff}, 5505 .field_src2 = BNXT_ULP_FIELD_SRC_ZERO, 5506 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5507 }, 5508 { 5509 .description = "enc_ipv6_proto", 5510 .field_bit_size = 8, 5511 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5512 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5513 .field_opr1 = { 5514 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff, 5515 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff, 5516 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff, 5517 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff, 5518 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff, 5519 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff, 5520 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff, 5521 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff}, 5522 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5523 .field_opr2 = { 5524 (BNXT_ULP_ENC_FIELD_IPV6_PROTO >> 8) & 0xff, 5525 BNXT_ULP_ENC_FIELD_IPV6_PROTO & 0xff}, 5526 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5527 }, 5528 { 5529 .description = "enc_ipv6_ttl", 5530 .field_bit_size = 8, 5531 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5532 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5533 .field_opr1 = { 5534 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff, 5535 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff, 5536 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff, 5537 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff, 5538 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff, 5539 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff, 5540 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff, 5541 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff}, 5542 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5543 .field_opr2 = { 5544 (BNXT_ULP_ENC_FIELD_IPV6_TTL >> 8) & 0xff, 5545 BNXT_ULP_ENC_FIELD_IPV6_TTL & 0xff}, 5546 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5547 }, 5548 { 5549 .description = "enc_ipv6_daddr", 5550 .field_bit_size = 128, 5551 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5552 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5553 .field_opr1 = { 5554 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff, 5555 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff, 5556 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff, 5557 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff, 5558 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff, 5559 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff, 5560 ((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff, 5561 (uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff}, 5562 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5563 .field_opr2 = { 5564 (BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff, 5565 BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff}, 5566 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5567 }, 5568 { 5569 .description = "enc_udp_sport", 5570 .field_bit_size = 16, 5571 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5572 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5573 .field_opr1 = { 5574 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 56) & 0xff, 5575 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 48) & 0xff, 5576 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 40) & 0xff, 5577 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 32) & 0xff, 5578 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 24) & 0xff, 5579 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 16) & 0xff, 5580 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 8) & 0xff, 5581 (uint64_t)BNXT_ULP_HDR_BIT_O_UDP & 0xff}, 5582 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5583 .field_opr2 = { 5584 (BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff, 5585 BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}, 5586 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5587 }, 5588 { 5589 .description = "enc_udp_dport", 5590 .field_bit_size = 16, 5591 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5592 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5593 .field_opr1 = { 5594 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 56) & 0xff, 5595 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 48) & 0xff, 5596 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 40) & 0xff, 5597 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 32) & 0xff, 5598 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 24) & 0xff, 5599 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 16) & 0xff, 5600 ((uint64_t)BNXT_ULP_HDR_BIT_O_UDP >> 8) & 0xff, 5601 (uint64_t)BNXT_ULP_HDR_BIT_O_UDP & 0xff}, 5602 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5603 .field_opr2 = { 5604 (BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff, 5605 BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}, 5606 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5607 }, 5608 { 5609 .description = "enc_vxlan_flags", 5610 .field_bit_size = 8, 5611 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5612 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5613 .field_opr1 = { 5614 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 5615 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 5616 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 5617 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 5618 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 5619 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 5620 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 5621 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 5622 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5623 .field_opr2 = { 5624 (BNXT_ULP_ENC_FIELD_VXLAN_FLAGS >> 8) & 0xff, 5625 BNXT_ULP_ENC_FIELD_VXLAN_FLAGS & 0xff}, 5626 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5627 }, 5628 { 5629 .description = "enc_vxlan_rsvd0", 5630 .field_bit_size = 24, 5631 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5632 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5633 .field_opr1 = { 5634 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 5635 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 5636 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 5637 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 5638 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 5639 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 5640 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 5641 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 5642 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5643 .field_opr2 = { 5644 (BNXT_ULP_ENC_FIELD_VXLAN_RSVD0 >> 8) & 0xff, 5645 BNXT_ULP_ENC_FIELD_VXLAN_RSVD0 & 0xff}, 5646 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5647 }, 5648 { 5649 .description = "enc_vxlan_vni", 5650 .field_bit_size = 24, 5651 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5652 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5653 .field_opr1 = { 5654 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 5655 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 5656 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 5657 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 5658 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 5659 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 5660 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 5661 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 5662 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5663 .field_opr2 = { 5664 (BNXT_ULP_ENC_FIELD_VXLAN_VNI >> 8) & 0xff, 5665 BNXT_ULP_ENC_FIELD_VXLAN_VNI & 0xff}, 5666 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5667 }, 5668 { 5669 .description = "enc_vxlan_rsvd1", 5670 .field_bit_size = 8, 5671 .field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3, 5672 .field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT, 5673 .field_opr1 = { 5674 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff, 5675 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff, 5676 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff, 5677 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff, 5678 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff, 5679 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff, 5680 ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff, 5681 (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff}, 5682 .field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD, 5683 .field_opr2 = { 5684 (BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 >> 8) & 0xff, 5685 BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 & 0xff}, 5686 .field_src3 = BNXT_ULP_FIELD_SRC_SKIP 5687 } 5688 }; 5689 5690 struct bnxt_ulp_mapper_ident_info ulp_wh_plus_act_ident_list[] = { 5691 /* act_tid: 1, , table: shared_mirror_record.rd */ 5692 { 5693 .description = "mirror_id", 5694 .regfile_idx = BNXT_ULP_RF_IDX_MIRROR_ID_0, 5695 .ident_bit_size = 2, 5696 .ident_bit_pos = 32 5697 } 5698 }; 5699