DPDK patches and discussions
 help / color / mirror / Atom feed
From: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
To: dev@dpdk.org
Cc: Jay Ding <jay.ding@broadcom.com>,
	Randy Schacher <stuart.schacher@broadcom.com>,
	Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Subject: [dpdk-dev] [PATCH 04/58] net/bnxt: check resource reservation in TRUFLOW
Date: Sun, 30 May 2021 14:28:35 +0530	[thread overview]
Message-ID: <20210530085929.29695-5-venkatkumar.duvvuru@broadcom.com> (raw)
In-Reply-To: <20210530085929.29695-1-venkatkumar.duvvuru@broadcom.com>

From: Jay Ding <jay.ding@broadcom.com>

- Allow tf_open to continue if no resource is allocated
  for some table type.
- Close the session if binding fails for any table.
- Close the session if no resource is allocated for all tables.

Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
---
 drivers/net/bnxt/tf_core/tf_device.c  | 284 +++++++++++++++++++-------
 drivers/net/bnxt/tf_core/tf_session.c |   2 +-
 2 files changed, 207 insertions(+), 79 deletions(-)

diff --git a/drivers/net/bnxt/tf_core/tf_device.c b/drivers/net/bnxt/tf_core/tf_device.c
index 5116601a69..d4c93439ec 100644
--- a/drivers/net/bnxt/tf_core/tf_device.c
+++ b/drivers/net/bnxt/tf_core/tf_device.c
@@ -15,6 +15,44 @@ struct tf;
 static int tf_dev_unbind_p4(struct tf *tfp);
 static int tf_dev_unbind_p58(struct tf *tfp);
 
+/**
+ * Resource Reservation Check function
+ *
+ * [in] tfp
+ *   Pointer to TF handle
+ *
+ * [in] cfg
+ *   Pointer to rm element config
+ *
+ * [in] reservations
+ *   Pointer to resource reservation array
+ *
+ * Returns
+ *   - (n) number of tables that have non-zero reservation count.
+ */
+static int
+tf_dev_reservation_check(struct tf *tfp __rte_unused,
+			 uint16_t count,
+			 struct tf_rm_element_cfg *cfg,
+			 uint16_t *reservations)
+{
+	uint16_t cnt = 0;
+	uint16_t *rm_num;
+	int i, j;
+
+	for (i = 0; i < TF_DIR_MAX; i++) {
+		rm_num = (uint16_t *)reservations + i * count;
+		for (j = 0; j < count; j++) {
+			if ((cfg[j].cfg_type == TF_RM_ELEM_CFG_HCAPI ||
+			     cfg[j].cfg_type == TF_RM_ELEM_CFG_HCAPI_BA) &&
+			     rm_num[j] > 0)
+				cnt++;
+		}
+	}
+
+	return cnt;
+}
+
 /**
  * Device specific bind function, WH+
  *
@@ -42,6 +80,8 @@ tf_dev_bind_p4(struct tf *tfp,
 {
 	int rc;
 	int frc;
+	int rsv_cnt;
+	bool no_rsv_flag = true;
 	struct tf_ident_cfg_parms ident_cfg;
 	struct tf_tbl_cfg_parms tbl_cfg;
 	struct tf_tcam_cfg_parms tcam_cfg;
@@ -54,69 +94,117 @@ tf_dev_bind_p4(struct tf *tfp,
 
 	/* Initialize the modules */
 
-	ident_cfg.num_elements = TF_IDENT_TYPE_MAX;
-	ident_cfg.cfg = tf_ident_p4;
-	ident_cfg.shadow_copy = shadow_copy;
-	ident_cfg.resources = resources;
-	rc = tf_ident_bind(tfp, &ident_cfg);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "Identifier initialization failure\n");
-		goto fail;
+	rsv_cnt = tf_dev_reservation_check(tfp,
+					   TF_IDENT_TYPE_MAX,
+					   tf_ident_p4,
+					   (uint16_t *)resources->ident_cnt);
+	if (rsv_cnt) {
+		ident_cfg.num_elements = TF_IDENT_TYPE_MAX;
+		ident_cfg.cfg = tf_ident_p4;
+		ident_cfg.shadow_copy = shadow_copy;
+		ident_cfg.resources = resources;
+		rc = tf_ident_bind(tfp, &ident_cfg);
+		if (rc) {
+			TFP_DRV_LOG(ERR,
+				    "Identifier initialization failure\n");
+			goto fail;
+		}
+
+		no_rsv_flag = false;
 	}
 
-	tbl_cfg.num_elements = TF_TBL_TYPE_MAX;
-	tbl_cfg.cfg = tf_tbl_p4;
-	tbl_cfg.shadow_copy = shadow_copy;
-	tbl_cfg.resources = resources;
-	rc = tf_tbl_bind(tfp, &tbl_cfg);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "Table initialization failure\n");
-		goto fail;
+	rsv_cnt = tf_dev_reservation_check(tfp,
+					   TF_TBL_TYPE_MAX,
+					   tf_tbl_p4,
+					   (uint16_t *)resources->tbl_cnt);
+	if (rsv_cnt) {
+		tbl_cfg.num_elements = TF_TBL_TYPE_MAX;
+		tbl_cfg.cfg = tf_tbl_p4;
+		tbl_cfg.shadow_copy = shadow_copy;
+		tbl_cfg.resources = resources;
+		rc = tf_tbl_bind(tfp, &tbl_cfg);
+		if (rc) {
+			TFP_DRV_LOG(ERR,
+				    "Table initialization failure\n");
+			goto fail;
+		}
+
+		no_rsv_flag = false;
 	}
 
-	tcam_cfg.num_elements = TF_TCAM_TBL_TYPE_MAX;
-	tcam_cfg.cfg = tf_tcam_p4;
-	tcam_cfg.shadow_copy = shadow_copy;
-	tcam_cfg.resources = resources;
-	rc = tf_tcam_bind(tfp, &tcam_cfg);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "TCAM initialization failure\n");
-		goto fail;
+	rsv_cnt = tf_dev_reservation_check(tfp,
+					   TF_TCAM_TBL_TYPE_MAX,
+					   tf_tcam_p4,
+					   (uint16_t *)resources->tcam_cnt);
+	if (rsv_cnt) {
+		tcam_cfg.num_elements = TF_TCAM_TBL_TYPE_MAX;
+		tcam_cfg.cfg = tf_tcam_p4;
+		tcam_cfg.shadow_copy = shadow_copy;
+		tcam_cfg.resources = resources;
+		rc = tf_tcam_bind(tfp, &tcam_cfg);
+		if (rc) {
+			TFP_DRV_LOG(ERR,
+				    "TCAM initialization failure\n");
+			goto fail;
+		}
+		no_rsv_flag = false;
 	}
 
 	/*
 	 * EEM
 	 */
-	em_cfg.num_elements = TF_EM_TBL_TYPE_MAX;
 	if (dev_handle->type == TF_DEVICE_TYPE_WH)
 		em_cfg.cfg = tf_em_ext_p4;
 	else
 		em_cfg.cfg = tf_em_ext_p45;
-	em_cfg.resources = resources;
-	em_cfg.mem_type = TF_EEM_MEM_TYPE_HOST;
-	rc = tf_em_ext_common_bind(tfp, &em_cfg);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "EEM initialization failure\n");
-		goto fail;
+
+	rsv_cnt = tf_dev_reservation_check(tfp,
+					   TF_EM_TBL_TYPE_MAX,
+					   em_cfg.cfg,
+					   (uint16_t *)resources->em_cnt);
+	if (rsv_cnt) {
+		em_cfg.num_elements = TF_EM_TBL_TYPE_MAX;
+		em_cfg.resources = resources;
+		em_cfg.mem_type = TF_EEM_MEM_TYPE_HOST;
+		rc = tf_em_ext_common_bind(tfp, &em_cfg);
+		if (rc) {
+			TFP_DRV_LOG(ERR,
+				    "EEM initialization failure\n");
+			goto fail;
+		}
+		no_rsv_flag = false;
 	}
 
 	/*
 	 * EM
 	 */
-	em_cfg.num_elements = TF_EM_TBL_TYPE_MAX;
-	em_cfg.cfg = tf_em_int_p4;
-	em_cfg.resources = resources;
-	em_cfg.mem_type = 0; /* Not used by EM */
+	rsv_cnt = tf_dev_reservation_check(tfp,
+					   TF_EM_TBL_TYPE_MAX,
+					   tf_em_int_p4,
+					   (uint16_t *)resources->em_cnt);
+	if (rsv_cnt) {
+		em_cfg.num_elements = TF_EM_TBL_TYPE_MAX;
+		em_cfg.cfg = tf_em_int_p4;
+		em_cfg.resources = resources;
+		em_cfg.mem_type = 0; /* Not used by EM */
+
+		rc = tf_em_int_bind(tfp, &em_cfg);
+		if (rc) {
+			TFP_DRV_LOG(ERR,
+				    "EM initialization failure\n");
+			goto fail;
+		}
+		no_rsv_flag = false;
+	}
 
-	rc = tf_em_int_bind(tfp, &em_cfg);
-	if (rc) {
+	/*
+	 * There is no rm reserved for any tables
+	 *
+	 */
+	if (no_rsv_flag) {
 		TFP_DRV_LOG(ERR,
-			    "EM initialization failure\n");
-		goto fail;
+			    "No rm reserved for any tables\n");
+		return -ENOMEM;
 	}
 
 	/*
@@ -263,6 +351,8 @@ tf_dev_bind_p58(struct tf *tfp,
 {
 	int rc;
 	int frc;
+	int rsv_cnt;
+	bool no_rsv_flag = true;
 	struct tf_ident_cfg_parms ident_cfg;
 	struct tf_tbl_cfg_parms tbl_cfg;
 	struct tf_tcam_cfg_parms tcam_cfg;
@@ -275,52 +365,90 @@ tf_dev_bind_p58(struct tf *tfp,
 
 	/* Initialize the modules */
 
-	ident_cfg.num_elements = TF_IDENT_TYPE_MAX;
-	ident_cfg.cfg = tf_ident_p58;
-	ident_cfg.shadow_copy = shadow_copy;
-	ident_cfg.resources = resources;
-	rc = tf_ident_bind(tfp, &ident_cfg);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "Identifier initialization failure\n");
-		goto fail;
+	rsv_cnt = tf_dev_reservation_check(tfp,
+					   TF_IDENT_TYPE_MAX,
+					   tf_ident_p58,
+					   (uint16_t *)resources->ident_cnt);
+	if (rsv_cnt) {
+		ident_cfg.num_elements = TF_IDENT_TYPE_MAX;
+		ident_cfg.cfg = tf_ident_p58;
+		ident_cfg.shadow_copy = shadow_copy;
+		ident_cfg.resources = resources;
+		rc = tf_ident_bind(tfp, &ident_cfg);
+		if (rc) {
+			TFP_DRV_LOG(ERR,
+				    "Identifier initialization failure\n");
+			goto fail;
+		}
+		no_rsv_flag = false;
 	}
 
-	tbl_cfg.num_elements = TF_TBL_TYPE_MAX;
-	tbl_cfg.cfg = tf_tbl_p58;
-	tbl_cfg.shadow_copy = shadow_copy;
-	tbl_cfg.resources = resources;
-	rc = tf_tbl_bind(tfp, &tbl_cfg);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "Table initialization failure\n");
-		goto fail;
+	rsv_cnt = tf_dev_reservation_check(tfp,
+					   TF_TBL_TYPE_MAX,
+					   tf_tbl_p58,
+					   (uint16_t *)resources->tbl_cnt);
+	if (rsv_cnt) {
+		tbl_cfg.num_elements = TF_TBL_TYPE_MAX;
+		tbl_cfg.cfg = tf_tbl_p58;
+		tbl_cfg.shadow_copy = shadow_copy;
+		tbl_cfg.resources = resources;
+		rc = tf_tbl_bind(tfp, &tbl_cfg);
+		if (rc) {
+			TFP_DRV_LOG(ERR,
+				    "Table initialization failure\n");
+			goto fail;
+		}
+		no_rsv_flag = false;
 	}
 
-	tcam_cfg.num_elements = TF_TCAM_TBL_TYPE_MAX;
-	tcam_cfg.cfg = tf_tcam_p58;
-	tcam_cfg.shadow_copy = shadow_copy;
-	tcam_cfg.resources = resources;
-	rc = tf_tcam_bind(tfp, &tcam_cfg);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "TCAM initialization failure\n");
-		goto fail;
+	rsv_cnt = tf_dev_reservation_check(tfp,
+					   TF_TCAM_TBL_TYPE_MAX,
+					   tf_tcam_p58,
+					   (uint16_t *)resources->tcam_cnt);
+	if (rsv_cnt) {
+		tcam_cfg.num_elements = TF_TCAM_TBL_TYPE_MAX;
+		tcam_cfg.cfg = tf_tcam_p58;
+		tcam_cfg.shadow_copy = shadow_copy;
+		tcam_cfg.resources = resources;
+		rc = tf_tcam_bind(tfp, &tcam_cfg);
+		if (rc) {
+			TFP_DRV_LOG(ERR,
+				    "TCAM initialization failure\n");
+			goto fail;
+		}
+		no_rsv_flag = false;
 	}
 
 	/*
 	 * EM
 	 */
-	em_cfg.num_elements = TF_EM_TBL_TYPE_MAX;
-	em_cfg.cfg = tf_em_int_p58;
-	em_cfg.resources = resources;
-	em_cfg.mem_type = 0; /* Not used by EM */
+	rsv_cnt = tf_dev_reservation_check(tfp,
+					   TF_EM_TBL_TYPE_MAX,
+					   tf_em_int_p58,
+					   (uint16_t *)resources->em_cnt);
+	if (rsv_cnt) {
+		em_cfg.num_elements = TF_EM_TBL_TYPE_MAX;
+		em_cfg.cfg = tf_em_int_p58;
+		em_cfg.resources = resources;
+		em_cfg.mem_type = 0; /* Not used by EM */
+
+		rc = tf_em_int_bind(tfp, &em_cfg);
+		if (rc) {
+			TFP_DRV_LOG(ERR,
+				    "EM initialization failure\n");
+			goto fail;
+		}
+		no_rsv_flag = false;
+	}
 
-	rc = tf_em_int_bind(tfp, &em_cfg);
-	if (rc) {
+	/*
+	 * There is no rm reserved for any tables
+	 *
+	 */
+	if (no_rsv_flag) {
 		TFP_DRV_LOG(ERR,
-			    "EM initialization failure\n");
-		goto fail;
+			    "No rm reserved for any tables\n");
+		return -ENOMEM;
 	}
 
 	/*
diff --git a/drivers/net/bnxt/tf_core/tf_session.c b/drivers/net/bnxt/tf_core/tf_session.c
index b3fa7e13ff..d2b24f5e20 100644
--- a/drivers/net/bnxt/tf_core/tf_session.c
+++ b/drivers/net/bnxt/tf_core/tf_session.c
@@ -180,7 +180,7 @@ tf_session_create(struct tf *tfp,
 			 &session->dev);
 	/* Logging handled by dev_bind */
 	if (rc)
-		return rc;
+		goto cleanup;
 
 	if (session->dev.ops->tf_dev_get_mailbox == NULL) {
 		/* Log error */
-- 
2.17.1


  parent reply	other threads:[~2021-05-30  9:01 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-30  8:58 [dpdk-dev] [PATCH 00/58] enhancements to host based flow table management Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 01/58] net/bnxt: add CFA folder to HCAPI directory Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 02/58] net/bnxt: add base TRUFLOW support for Thor Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 03/58] net/bnxt: add mailbox selection via dev op Venkat Duvvuru
2021-05-30  8:58 ` Venkat Duvvuru [this message]
2021-05-30  8:58 ` [dpdk-dev] [PATCH 05/58] net/bnxt: update TRUFLOW resources Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 06/58] net/bnxt: add support for EM with FKB Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 07/58] net/bnxt: add L2 Context TCAM get support Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 08/58] net/bnxt: add action SRAM Translation Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 09/58] net/bnxt: add Thor WC TCAM support Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 10/58] net/bnxt: add 64B SRAM record management with RM Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 11/58] net/bnxt: add hashing changes for Thor Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 12/58] net/bnxt: modify TRUFLOW HWRM messages Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 13/58] net/bnxt: change RM database type Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 14/58] net/bnxt: add shared session support Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 15/58] net/bnxt: add dpool allocator for EM allocation Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 16/58] net/bnxt: update shared session functionality Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 17/58] net/bnxt: modify resource reservation strategy Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 18/58] net/bnxt: shared TCAM region support Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 19/58] net/bnxt: cleanup session open/close messages Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 20/58] net/bnxt: add WC TCAM hi/lo move support Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 21/58] net/bnxt: add API to get shared table increments Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 22/58] net/bnxt: modify host session failure cleanup Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 23/58] net/bnxt: cleanup of WC TCAM shared unbind Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 24/58] net/bnxt: add support for WC TCAM shared session Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 25/58] net/bnxt: add API to clear hi/lo WC region Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 26/58] net/bnxt: check FW capability to support TRUFLOW Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 27/58] net/bnxt: add support for generic table processing Venkat Duvvuru
2021-05-30  8:58 ` [dpdk-dev] [PATCH 28/58] net/bnxt: add support for mapper flow database opcodes Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 29/58] net/bnxt: add conditional execution and rejection Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 30/58] net/bnxt: modify TCAM opcode processing Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 31/58] net/bnxt: modify VXLAN decap for multichannel mode Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 32/58] net/bnxt: modify table processing Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 33/58] net/bnxt: modify ULP priority opcode processing Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 34/58] net/bnxt: add support for conflict resolution Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 35/58] net/bnxt: add support for conditional goto processing Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 36/58] net/bnxt: set shared handle for generic table Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 37/58] net/bnxt: modify ULP template Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 38/58] net/bnxt: add conditional opcode and L4 port fields Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 39/58] net/bnxt: refactor TF ULP Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 40/58] net/bnxt: add partial header field processing Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 41/58] net/bnxt: add support for wild card pattern match Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 42/58] net/bnxt: add support for GRE flows Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 43/58] net/bnxt: enable extended exact match support Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 44/58] net/bnxt: refactor ULP mapper and parser Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 45/58] net/bnxt: add support for generic hash table Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 46/58] net/bnxt: add support for Thor platform Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 47/58] net/bnxt: refactor flow parser in ULP Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 48/58] net/bnxt: add shared session support to ULP Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 49/58] net/bnxt: add field opcodes in ULP Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 50/58] net/bnxt: add support for application ID in ULP matcher Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 51/58] net/bnxt: process resource lists before session open Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 52/58] net/bnxt: add support for shared sessions in ULP Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 53/58] net/bnxt: add HA support " Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 54/58] net/bnxt: add support for icmp6 ULP parsing Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 55/58] net/bnxt: add support for ULP context list for timers Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 56/58] net/bnxt: cleanup ULP parser and mapper Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 57/58] net/bnxt: reorganize ULP template directory structure Venkat Duvvuru
2021-05-30  8:59 ` [dpdk-dev] [PATCH 58/58] net/bnxt: add Thor template support Venkat Duvvuru
2021-06-13  0:05 ` [dpdk-dev] [PATCH v2 00/58] enhancements to host based flow table management Ajit Khaparde
2021-06-13  0:05   ` [dpdk-dev] [PATCH v2 01/58] net/bnxt: add CFA folder to HCAPI directory Ajit Khaparde
2021-06-13  0:05   ` [dpdk-dev] [PATCH v2 02/58] net/bnxt: add base TRUFLOW support for Thor Ajit Khaparde
2021-06-13  0:05   ` [dpdk-dev] [PATCH v2 03/58] net/bnxt: add mailbox selection via dev op Ajit Khaparde
2021-06-13  0:05   ` [dpdk-dev] [PATCH v2 04/58] net/bnxt: check resource reservation in TRUFLOW Ajit Khaparde
2021-06-13  0:05   ` [dpdk-dev] [PATCH v2 05/58] net/bnxt: update TRUFLOW resources Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 06/58] net/bnxt: add support for EM with FKB Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 07/58] net/bnxt: support L2 Context TCAM ops Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 08/58] net/bnxt: add action SRAM translation Ajit Khaparde
2021-07-05 21:23     ` Thomas Monjalon
2021-07-06 22:37       ` [dpdk-dev] [PATCH v3] " Ajit Khaparde
2021-07-06 22:58       ` [dpdk-dev] [PATCH v2 08/58] " Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 09/58] net/bnxt: add Thor WC TCAM support Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 10/58] net/bnxt: add 64B SRAM record management with RM Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 11/58] net/bnxt: add hashing changes for Thor Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 12/58] net/bnxt: modify TRUFLOW HWRM messages Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 13/58] net/bnxt: change RM database type Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 14/58] net/bnxt: add shared session support Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 15/58] net/bnxt: add dpool allocator for EM allocation Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 16/58] net/bnxt: update shared session functionality Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 17/58] net/bnxt: modify resource reservation strategy Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 18/58] net/bnxt: shared TCAM region support Ajit Khaparde
2021-07-05 21:27     ` Thomas Monjalon
2021-07-06 22:39       ` [dpdk-dev] [PATCH v3] " Ajit Khaparde
2021-07-06 22:57       ` [dpdk-dev] [PATCH v2 18/58] " Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 19/58] net/bnxt: cleanup logs in session handling paths Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 20/58] net/bnxt: add WC TCAM management support Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 21/58] net/bnxt: add API to get shared table increments Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 22/58] net/bnxt: refactor host session failure cleanup Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 23/58] net/bnxt: cleanup WC TCAM shared pool Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 24/58] net/bnxt: add support for WC TCAM shared session Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 25/58] net/bnxt: add API to clear TCAM regions Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 26/58] net/bnxt: check FW capability to support TRUFLOW Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 27/58] net/bnxt: add support for generic table processing Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 28/58] net/bnxt: add support for mapper flow database opcodes Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 29/58] net/bnxt: add conditional processing of templates Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 30/58] net/bnxt: modify TCAM opcode processing Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 31/58] net/bnxt: modify VXLAN decap for multichannel mode Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 32/58] net/bnxt: modify table processing Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 33/58] net/bnxt: add ULP priority opcode processing Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 34/58] net/bnxt: add support to identify duplicate flows Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 35/58] net/bnxt: add conditional goto processing Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 36/58] net/bnxt: set shared handle for generic table Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 37/58] net/bnxt: modify ULP template Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 38/58] net/bnxt: add conditional opcode and L4 port fields Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 39/58] net/bnxt: refactor TRUFLOW processing Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 40/58] net/bnxt: add partial header field processing Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 41/58] net/bnxt: add support for wild card pattern match Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 42/58] net/bnxt: add support for GRE flows Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 43/58] net/bnxt: enable extended exact match support Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 44/58] net/bnxt: refactor ULP mapper Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 45/58] net/bnxt: add support for generic hash table Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 46/58] net/bnxt: add support for Thor platform Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 47/58] net/bnxt: refactor flow parser in ULP Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 48/58] net/bnxt: add shared session support to ULP Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 49/58] net/bnxt: add field opcodes in ULP Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 50/58] net/bnxt: add support for application ID in ULP matcher Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 51/58] net/bnxt: process resource lists before session open Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 52/58] net/bnxt: add templates for shared sessions Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 53/58] net/bnxt: add HA support in ULP Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 54/58] net/bnxt: add ICMPv6 parser to ULP Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 55/58] net/bnxt: add context list for timers Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 56/58] net/bnxt: cleanup ULP parser and mapper Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 57/58] net/bnxt: reorganize ULP template directory structure Ajit Khaparde
2021-06-13  0:06   ` [dpdk-dev] [PATCH v2 58/58] net/bnxt: add Thor template support Ajit Khaparde
2021-06-15 19:33   ` [dpdk-dev] [PATCH v2 00/58] enhancements to host based flow table management Ajit Khaparde
2021-07-07  8:43     ` Thomas Monjalon
2021-07-08  3:57       ` Ajit Khaparde
2021-07-08 12:51         ` Thomas Monjalon
2021-07-08 14:37           ` Ajit Khaparde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210530085929.29695-5-venkatkumar.duvvuru@broadcom.com \
    --to=venkatkumar.duvvuru@broadcom.com \
    --cc=dev@dpdk.org \
    --cc=jay.ding@broadcom.com \
    --cc=stuart.schacher@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).