[dpdk-dev] [PATCH 12/36] net/bnxt: remove cache tbl id from the mapper class table
Somnath Kotur
somnath.kotur at broadcom.com
Fri Jun 12 14:50:00 CEST 2020
From: Kishore Padmanabha <kishore.padmanabha at broadcom.com>
The cache table id is not needed anymore since the value can
be calculated from resource sub type and direction.
Signed-off-by: Kishore Padmanabha <kishore.padmanabha at broadcom.com>
Reviewed-by: Michael Baucom <michael.baucom at broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur at broadcom.com>
---
drivers/net/bnxt/tf_ulp/ulp_mapper.c | 21 +++++++++++++++------
drivers/net/bnxt/tf_ulp/ulp_template_db.c | 5 -----
drivers/net/bnxt/tf_ulp/ulp_template_struct.h | 2 --
3 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/drivers/net/bnxt/tf_ulp/ulp_mapper.c b/drivers/net/bnxt/tf_ulp/ulp_mapper.c
index 35b5d72..5db0da7 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_mapper.c
+++ b/drivers/net/bnxt/tf_ulp/ulp_mapper.c
@@ -324,13 +324,14 @@ ulp_mapper_ident_fields_get(struct bnxt_ulp_mapper_class_tbl_info *tbl,
static struct bnxt_ulp_mapper_cache_entry *
ulp_mapper_cache_entry_get(struct bnxt_ulp_context *ulp,
- enum bnxt_ulp_cache_tbl_id id,
+ uint32_t id,
uint16_t key)
{
struct bnxt_ulp_mapper_data *mapper_data;
mapper_data = bnxt_ulp_cntxt_ptr2_mapper_data_get(ulp);
- if (!mapper_data || !mapper_data->cache_tbl[id]) {
+ if (!mapper_data || id >= BNXT_ULP_CACHE_TBL_MAX_SZ ||
+ !mapper_data->cache_tbl[id]) {
BNXT_TF_DBG(ERR, "Unable to acquire the cache tbl (%d)\n", id);
return NULL;
}
@@ -1691,8 +1692,15 @@ ulp_mapper_cache_tbl_process(struct bnxt_ulp_mapper_parms *parms,
*/
cache_key = ulp_blob_data_get(&key, &tmplen);
ckey = (uint16_t *)cache_key;
+
+ /*
+ * The id computed based on resource sub type and direction where
+ * dir is the bit0 and rest of the bits come from resource
+ * sub type.
+ */
cache_entry = ulp_mapper_cache_entry_get(parms->ulp_ctx,
- tbl->cache_tbl_id,
+ (tbl->resource_sub_type << 1 |
+ (tbl->direction & 0x1)),
*ckey);
/*
@@ -1756,12 +1764,13 @@ ulp_mapper_cache_tbl_process(struct bnxt_ulp_mapper_parms *parms,
fid_parms.resource_func = tbl->resource_func;
/*
- * Cache resource type is composed of both table_type and cache_tbl_id
- * need to set it appropriately via setter.
+ * Cache resource type is composed of table_type, resource
+ * sub type and direction, it needs to set appropriately via setter.
*/
ulp_mapper_cache_res_type_set(&fid_parms,
tbl->resource_type,
- tbl->cache_tbl_id);
+ (tbl->resource_sub_type << 1 |
+ (tbl->direction & 0x1)));
fid_parms.resource_hndl = (uint64_t)*ckey;
fid_parms.critical_resource = tbl->critical_resource;
rc = ulp_flow_db_resource_add(parms->ulp_ctx,
diff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db.c b/drivers/net/bnxt/tf_ulp/ulp_template_db.c
index 9b793a2..140f96a 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_template_db.c
+++ b/drivers/net/bnxt/tf_ulp/ulp_template_db.c
@@ -606,7 +606,6 @@ struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] = {
.ident_nums = 1,
.mark_enable = BNXT_ULP_MARK_ENABLE_NO,
.critical_resource = 0,
- .cache_tbl_id = BNXT_ULP_CACHE_TBL_ID_L2_CNTXT_TCAM_INGRESS,
.regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
},
{
@@ -627,7 +626,6 @@ struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] = {
.ident_nums = 0,
.mark_enable = BNXT_ULP_MARK_ENABLE_NO,
.critical_resource = 0,
- .cache_tbl_id = 0,
.regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
},
{
@@ -648,7 +646,6 @@ struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] = {
.ident_nums = 1,
.mark_enable = BNXT_ULP_MARK_ENABLE_NO,
.critical_resource = 0,
- .cache_tbl_id = BNXT_ULP_CACHE_TBL_ID_PROFILE_TCAM_INGRESS,
.regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
},
{
@@ -669,7 +666,6 @@ struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] = {
.ident_nums = 0,
.mark_enable = BNXT_ULP_MARK_ENABLE_NO,
.critical_resource = 0,
- .cache_tbl_id = 0,
.regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
},
{
@@ -690,7 +686,6 @@ struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] = {
.ident_nums = 0,
.mark_enable = BNXT_ULP_MARK_ENABLE_YES,
.critical_resource = 1,
- .cache_tbl_id = 0,
.regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
}
};
diff --git a/drivers/net/bnxt/tf_ulp/ulp_template_struct.h b/drivers/net/bnxt/tf_ulp/ulp_template_struct.h
index ce449d0..eebe035 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_template_struct.h
+++ b/drivers/net/bnxt/tf_ulp/ulp_template_struct.h
@@ -182,8 +182,6 @@ struct bnxt_ulp_mapper_class_tbl_info {
uint8_t mark_enable;
enum bnxt_ulp_regfile_index regfile_wr_idx;
-
- enum bnxt_ulp_cache_tbl_id cache_tbl_id;
};
struct bnxt_ulp_mapper_act_tbl_info {
--
2.7.4
More information about the dev
mailing list