net/bnxt: add templates for search before alloc
authorMike Baucom <michael.baucom@broadcom.com>
Thu, 23 Jul 2020 11:56:37 +0000 (17:26 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 29 Jul 2020 22:41:23 +0000 (00:41 +0200)
Search before alloc allows reuse of constrained resources such as tcam,
encap, and source modifications.  The new templates will search the
entry and alloc only if necessary.

Signed-off-by: Mike Baucom <michael.baucom@broadcom.com>
Reviewed-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/tf_ulp/ulp_template_db_act.c
drivers/net/bnxt/tf_ulp/ulp_template_db_class.c

index 58b581c..14ce16e 100644 (file)
@@ -1052,7 +1052,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_tbl_list[] = {
        .cond_opcode = BNXT_ULP_COND_OPCODE_COMP_FIELD_IS_SET,
        .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG,
        .direction = TF_DIR_TX,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
        .result_start_idx = 96,
        .result_bit_size = 0,
        .result_num_fields = 0,
@@ -1069,7 +1069,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_tbl_list[] = {
        .cond_opcode = BNXT_ULP_COND_OPCODE_COMP_FIELD_IS_SET,
        .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG,
        .direction = TF_DIR_TX,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
        .result_start_idx = 99,
        .result_bit_size = 0,
        .result_num_fields = 0,
@@ -1084,7 +1084,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
        .direction = TF_DIR_TX,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
        .result_start_idx = 102,
        .result_bit_size = 0,
        .result_num_fields = 0,
index 41d1d87..94160a9 100644 (file)
@@ -3782,7 +3782,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = {
        .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
        .key_start_idx = 108,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
@@ -4210,7 +4210,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = {
        .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
        .key_start_idx = 457,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
@@ -4282,7 +4282,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = {
        .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
        .key_start_idx = 526,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
@@ -4354,7 +4354,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = {
        .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
        .key_start_idx = 595,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
@@ -4426,7 +4426,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = {
        .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
        .key_start_idx = 664,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
@@ -4570,7 +4570,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = {
        .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
        .key_start_idx = 802,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
@@ -4998,7 +4998,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = {
        .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_UPDATE,
        .key_start_idx = 1151,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,