net/bnxt: support Thor template
[dpdk.git] / drivers / net / bnxt / tf_ulp / generic_templates / ulp_template_db_thor_act.c
index a60dfae..ce5a70b 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Mon Apr  5 11:35:38 2021 */
+/* date: Thu May 13 18:15:56 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
 
 /* Mapper templates for header act list */
 struct bnxt_ulp_mapper_tmpl_info ulp_thor_act_tmpl_list[] = {
-       /* act_tid: 1, thor, ingress */
+       /* act_tid: 1, ingress */
        [1] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR,
        .num_tbls = 2,
        .start_tbl_idx = 0,
        .reject_info = {
-               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
                .cond_start_idx = 0,
-               .cond_nums = 0 }
+               .cond_nums = 4 }
        }
 };
 
 struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
-       { /* act_tid: 1, thor, table: int_flow_counter_tbl.0 */
+       { /* act_tid: 1, , table: int_flow_counter_tbl.0 */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_ACT_STATS_64,
        .resource_sub_type =
@@ -35,7 +35,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
                .cond_true_goto  = 1,
                .cond_false_goto = 1,
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-               .cond_start_idx = 0,
+               .cond_start_idx = 4,
                .cond_nums = 1 },
        .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
        .tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
@@ -46,7 +46,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
        .result_bit_size = 64,
        .result_num_fields = 1
        },
-       { /* act_tid: 1, thor, table: int_full_act_record.0 */
+       { /* act_tid: 1, , table: int_full_act_record.0 */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
@@ -56,7 +56,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
                .cond_true_goto  = 0,
                .cond_false_goto = 0,
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-               .cond_start_idx = 1,
+               .cond_start_idx = 5,
                .cond_nums = 0 },
        .tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
        .tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
@@ -70,6 +70,23 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 };
 
 struct bnxt_ulp_mapper_cond_info ulp_thor_act_cond_list[] = {
+       /* cond_reject: thor, act_tid: 1 */
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_ACT_BIT_POP_VLAN
+       },
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
+       },
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_ACT_BIT_VXLAN_DECAP
+       },
+       {
+       .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
+       },
        /* cond_execute: act_tid: 1, int_flow_counter_tbl.0 */
        {
        .cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
@@ -78,14 +95,14 @@ struct bnxt_ulp_mapper_cond_info ulp_thor_act_cond_list[] = {
 };
 
 struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
-       /* act_tid: 1, thor, table: int_flow_counter_tbl.0 */
+       /* act_tid: 1, , table: int_flow_counter_tbl.0 */
        {
        .description = "count",
        .field_bit_size = 64,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
        },
-       /* act_tid: 1, thor, table: int_full_act_record.0 */
+       /* act_tid: 1, , table: int_full_act_record.0 */
        {
        .description = "sp_rec_ptr",
        .field_bit_size = 16,
@@ -180,7 +197,16 @@ struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
        .description = "drop",
        .field_bit_size = 1,
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-       .field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+       .field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+       .field_opr1 = {
+       ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
+       ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
+       ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
+       ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
+       ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
+       ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
+       ((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
+       (uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
        },
        {
        .description = "hit",