All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ori Kam <orika@mellanox.com>
To: jerinj@marvell.com, xiang.w.wang@intel.com, matan@mellanox.com,
	viacheslavo@mellanox.com
Cc: guyk@marvell.com, dev@dpdk.org, pbhagavatula@marvell.com,
	shahafs@mellanox.com, hemant.agrawal@nxp.com, opher@mellanox.com,
	alexr@mellanox.com, dovrat@marvell.com, pkapoor@marvell.com,
	nipun.gupta@nxp.com, bruce.richardson@intel.com,
	yang.a.hong@intel.com, harry.chang@intel.com,
	gu.jian1@zte.com.cn, shanjiangh@chinatelecom.cn,
	zhangy.yun@chinatelecom.cn, lixingfu@huachentel.com,
	wushuai@inspur.com, yuyingxia@yxlink.com,
	fanchenggang@sunyainfo.com, davidfgao@tencent.com,
	liuzhong1@chinaunicom.cn, zhaoyong11@huawei.com, oc@yunify.com,
	jim@netgate.com, hongjun.ni@intel.com, deri@ntop.org,
	fc@napatech.com, arthur.su@lionic.com, thomas@monjalon.net,
	orika@mellanox.com, rasland@mellanox.com
Subject: [dpdk-dev] [PATCH v2 15/20] regex/mlx5: add send queue support
Date: Sun, 12 Jul 2020 20:58:56 +0000	[thread overview]
Message-ID: <1594587541-110442-16-git-send-email-orika@mellanox.com> (raw)
In-Reply-To: <1594587541-110442-1-git-send-email-orika@mellanox.com>

This commit introduce the SQ creation.
The SQ is used for enqueuing a job.

In order to support out of order matches, we create number
os SQ per one applicaiton QP.

Signed-off-by: Ori Kam <orika@mellanox.com>
---
 drivers/regex/mlx5/mlx5_regex.h         |   2 +
 drivers/regex/mlx5/mlx5_regex_control.c | 168 ++++++++++++++++++++++++++++++++
 2 files changed, 170 insertions(+)

diff --git a/drivers/regex/mlx5/mlx5_regex.h b/drivers/regex/mlx5/mlx5_regex.h
index 515c9f4..12033e8 100644
--- a/drivers/regex/mlx5/mlx5_regex.h
+++ b/drivers/regex/mlx5/mlx5_regex.h
@@ -25,6 +25,7 @@ struct mlx5_regex_sq {
 	uint32_t dbr_umem; /* Door bell record umem id. */
 	uint8_t *wqe; /* The SQ ring buffer. */
 	struct mlx5dv_devx_umem *wqe_umem; /* SQ buffer umem. */
+	uint32_t *dbr;
 };
 
 struct mlx5_regex_cq {
@@ -34,6 +35,7 @@ struct mlx5_regex_cq {
 	uint32_t dbr_umem; /* Door bell record umem id. */
 	volatile struct mlx5_cqe *cqe; /* The CQ ring buffer. */
 	struct mlx5dv_devx_umem *cqe_umem; /* CQ buffer umem. */
+	uint32_t *dbr;
 };
 
 struct mlx5_regex_qp {
diff --git a/drivers/regex/mlx5/mlx5_regex_control.c b/drivers/regex/mlx5/mlx5_regex_control.c
index 577965f..d378f48 100644
--- a/drivers/regex/mlx5/mlx5_regex_control.c
+++ b/drivers/regex/mlx5/mlx5_regex_control.c
@@ -105,6 +105,9 @@
 		goto error;
 	}
 	cq->dbr_umem = mlx5_os_get_umem_id(dbr_page->umem);
+	cq->dbr = (uint32_t *)((uintptr_t)dbr_page->dbrs +
+			       (uintptr_t)cq->dbr_offset);
+
 	buf = rte_calloc(NULL, 1, sizeof(struct mlx5_cqe) * cq_size, 4096);
 	if (!buf) {
 		DRV_LOG(ERR, "Can't allocate cqe buffer.");
@@ -145,6 +148,159 @@
 	return -rte_errno;
 }
 
+static int
+regex_get_pdn(void *pd, uint32_t *pdn)
+{
+	struct mlx5dv_obj obj;
+	struct mlx5dv_pd pd_info;
+	int ret = 0;
+
+	obj.pd.in = pd;
+	obj.pd.out = &pd_info;
+	ret = mlx5_glue->dv_init_obj(&obj, MLX5DV_OBJ_PD);
+	if (ret) {
+		DRV_LOG(DEBUG, "Fail to get PD object info");
+		return ret;
+	}
+	*pdn = pd_info.pdn;
+	return 0;
+}
+
+/**
+ * create the SQ object.
+ *
+ * @param priv
+ *   Pointer to the priv object.
+ * @param qp
+ *   Pointer to the QP element
+ * @param q_ind
+ *   The index of the queue.
+ * @param log_nb_desc
+ *   Log 2 of the number of descriptors to be used.
+ *
+ * @return
+ *   0 on success, a negative errno value otherwise and rte_errno is set.
+ */
+static int
+regex_ctrl_create_sq(struct mlx5_regex_priv *priv, struct mlx5_regex_qp *qp,
+		     uint16_t q_ind, uint16_t log_nb_desc)
+{
+	struct mlx5_devx_create_sq_attr attr = { 0 };
+	struct mlx5_devx_modify_sq_attr modify_attr = { 0 };
+	struct mlx5_devx_wq_attr *wq_attr = &attr.wq_attr;
+	struct mlx5_devx_dbr_page *dbr_page = NULL;
+	struct mlx5_regex_sq *sq = &qp->sqs[q_ind];
+	void *buf = NULL;
+	uint32_t sq_size;
+	uint32_t pd_num = 0;
+	int ret;
+
+	sq->log_nb_desc = log_nb_desc;
+	sq_size = 1 << sq->log_nb_desc;
+	sq->dbr_offset = mlx5_get_dbr(priv->ctx, &priv->dbrpgs, &dbr_page);
+	if (sq->dbr_offset < 0) {
+		DRV_LOG(ERR, "Can't allocate sq door bell record.");
+		rte_errno  = ENOMEM;
+		goto error;
+	}
+	sq->dbr_umem = mlx5_os_get_umem_id(dbr_page->umem);
+	sq->dbr = (uint32_t *)((uintptr_t)dbr_page->dbrs +
+			       (uintptr_t)sq->dbr_offset);
+
+	buf = rte_calloc(NULL, 1, 64 * sq_size, 4096);
+	if (!buf) {
+		DRV_LOG(ERR, "Can't allocate wqe buffer.");
+		rte_errno  = ENOMEM;
+		goto error;
+	}
+	sq->wqe = buf;
+	sq->wqe_umem = mlx5_glue->devx_umem_reg(priv->ctx, buf, 64 * sq_size,
+						7);
+	if (!sq->wqe_umem) {
+		DRV_LOG(ERR, "Can't register wqe mem.");
+		rte_errno  = ENOMEM;
+		goto error;
+	}
+	attr.state = MLX5_SQC_STATE_RST;
+	attr.tis_lst_sz = 0;
+	attr.tis_num = 0;
+	attr.user_index = q_ind;
+	attr.cqn = qp->cq.obj->id;
+	wq_attr->uar_page = priv->uar->page_id;
+	regex_get_pdn(priv->pd, &pd_num);
+	wq_attr->pd = pd_num;
+	wq_attr->wq_type = MLX5_WQ_TYPE_CYCLIC;
+	wq_attr->dbr_umem_id = sq->dbr_umem;
+	wq_attr->dbr_addr = sq->dbr_offset;
+	wq_attr->dbr_umem_valid = 1;
+	wq_attr->wq_umem_id = mlx5_os_get_umem_id(sq->wqe_umem);
+	wq_attr->wq_umem_offset = 0;
+	wq_attr->wq_umem_valid = 1;
+	wq_attr->log_wq_stride = 6;
+	wq_attr->log_wq_sz = sq->log_nb_desc;
+	sq->obj = mlx5_devx_cmd_create_sq(priv->ctx, &attr);
+	if (!sq->obj) {
+		DRV_LOG(ERR, "Can't create sq object.");
+		rte_errno  = ENOMEM;
+		goto error;
+	}
+	modify_attr.state = MLX5_SQC_STATE_RDY;
+	ret = mlx5_devx_cmd_modify_sq(sq->obj, &modify_attr);
+	if (ret) {
+		DRV_LOG(ERR, "Can't change sq state to ready.");
+		rte_errno  = ENOMEM;
+		goto error;
+	}
+
+	return 0;
+error:
+	if (sq->wqe_umem)
+		mlx5_glue->devx_umem_dereg(sq->wqe_umem);
+	if (buf)
+		rte_free(buf);
+	if (sq->dbr_offset)
+		mlx5_release_dbr(&priv->dbrpgs, sq->dbr_umem, sq->dbr_offset);
+	return -rte_errno;
+}
+
+/**
+ * Destroy the SQ object.
+ *
+ * @param priv
+ *   Pointer to the priv object.
+ * @param qp
+ *   Pointer to the QP element
+ * @param q_ind
+ *   The index of the queue.
+ *
+ * @return
+ *   0 on success, a negative errno value otherwise and rte_errno is set.
+ */
+static int
+regex_ctrl_destroy_sq(struct mlx5_regex_priv *priv, struct mlx5_regex_qp *qp,
+		      uint16_t q_ind)
+{
+	struct mlx5_regex_sq *sq = &qp->sqs[q_ind];
+
+	if (sq->wqe_umem) {
+		mlx5_glue->devx_umem_dereg(sq->wqe_umem);
+		sq->wqe_umem = NULL;
+	}
+	if (sq->wqe) {
+		rte_free((void *)(uintptr_t)sq->wqe);
+		sq->wqe = NULL;
+	}
+	if (sq->dbr_offset) {
+		mlx5_release_dbr(&priv->dbrpgs, sq->dbr_umem, sq->dbr_offset);
+		sq->dbr_offset = -1;
+	}
+	if (sq->obj) {
+		mlx5_devx_cmd_destroy(sq->obj);
+		sq->obj = NULL;
+	}
+	return 0;
+}
+
 /**
  * Setup the qp.
  *
@@ -164,7 +320,9 @@
 {
 	struct mlx5_regex_priv *priv = dev->data->dev_private;
 	struct mlx5_regex_qp *qp;
+	int i;
 	int ret;
+	uint16_t log_desc;
 
 	qp = &priv->qps[qp_ind];
 	qp->flags = cfg->qp_conf_flags;
@@ -181,15 +339,25 @@
 		rte_errno  = ENOMEM;
 		return -rte_errno;
 	}
+	log_desc = rte_log2_u32(qp->nb_desc / qp->nb_obj);
 	ret = regex_ctrl_create_cq(priv, &qp->cq);
 	if (ret) {
 		DRV_LOG(ERR, "Can't create cq.");
 		goto error;
 	}
+	for (i = 0; i < qp->nb_obj; i++) {
+		ret = regex_ctrl_create_sq(priv, qp, i, log_desc);
+		if (ret) {
+			DRV_LOG(ERR, "Can't create sq.");
+			goto error;
+		}
+	}
 	return 0;
 
 error:
 	regex_ctrl_destroy_cq(priv, &qp->cq);
+	for (i = 0; i < qp->nb_obj; i++)
+		ret = regex_ctrl_destroy_sq(priv, qp, i);
 	return -rte_errno;
 
 }
-- 
1.8.3.1


  parent reply	other threads:[~2020-07-12 21:01 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-05  9:23 [dpdk-dev] [PATCH 00/20] add Mellanox RegEx PMD Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 01/20] regex/mlx5: add RegEx PMD layer and mlx5 driver Ori Kam
2020-07-05 10:59   ` Wang, Haiyue
2020-07-05 11:32     ` Ori Kam
2020-07-06 22:47   ` Thomas Monjalon
2020-07-05  9:23 ` [dpdk-dev] [PATCH 02/20] regex/mlx5: add log utils Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 03/20] common/mlx5: add MMO and regexp structs/opcodes Ori Kam
2020-07-08  7:32   ` Slava Ovsiienko
2020-07-05  9:23 ` [dpdk-dev] [PATCH 04/20] common/mlx5: add mlx5 regex command structs Ori Kam
2020-07-08  7:32   ` Slava Ovsiienko
2020-07-05  9:23 ` [dpdk-dev] [PATCH 05/20] common/mlx5: add support for regex capability query Ori Kam
2020-07-08  7:32   ` Slava Ovsiienko
2020-07-05  9:23 ` [dpdk-dev] [PATCH 06/20] regex/mlx5: add probe function Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 07/20] common/mlx5: add rxp database set cmd Ori Kam
2020-07-08  7:32   ` Slava Ovsiienko
2020-07-05  9:23 ` [dpdk-dev] [PATCH 08/20] regex/mlx5: add RXP register definitions Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 09/20] common/mlx5: add write and read RXP registers Ori Kam
2020-07-08  7:32   ` Slava Ovsiienko
2020-07-05  9:23 ` [dpdk-dev] [PATCH 10/20] regex/mlx5: add engine status check Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 11/20] regex/mlx5: add get info function Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 12/20] regex/mlx5: add configure function Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 13/20] regex/mlx5: add program rules support Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 14/20] regex/mlx5: add completion queue creation Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 15/20] regex/mlx5: add send queue support Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 16/20] common/mlx5: add match tuple hw layout Ori Kam
2020-07-08  7:32   ` Slava Ovsiienko
2020-07-05  9:23 ` [dpdk-dev] [PATCH 17/20] regex/mlx5: fastpath setup Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 18/20] regex/mlx5: add enqueue implementation Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 19/20] regex/mlx5: implement dequeue function Ori Kam
2020-07-05  9:23 ` [dpdk-dev] [PATCH 20/20] maintainers: add maintainers to regexdev lib Ori Kam
2020-07-12 20:58 ` [dpdk-dev] [PATCH v2 00/20] add Mellanox RegEx PMD Ori Kam
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 01/20] regex/mlx5: add RegEx PMD layer and mlx5 driver Ori Kam
2020-07-15 17:20     ` Thomas Monjalon
2020-07-15 17:29     ` Thomas Monjalon
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 02/20] regex/mlx5: add log utils Ori Kam
2020-07-15 17:32     ` Thomas Monjalon
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 03/20] common/mlx5: add MMO and regexp structs/opcodes Ori Kam
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 04/20] common/mlx5: add mlx5 regex command structs Ori Kam
2020-07-15 17:24     ` Thomas Monjalon
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 05/20] common/mlx5: add support for regex capability query Ori Kam
2020-07-15 17:26     ` Thomas Monjalon
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 06/20] regex/mlx5: add probe function Ori Kam
2020-07-15 17:38     ` Thomas Monjalon
2020-07-15 19:02     ` Thomas Monjalon
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 07/20] common/mlx5: add rxp database set cmd Ori Kam
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 08/20] regex/mlx5: add RXP register definitions Ori Kam
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 09/20] common/mlx5: add write and read RXP registers Ori Kam
2020-07-15 17:34     ` Thomas Monjalon
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 10/20] regex/mlx5: add engine status check Ori Kam
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 11/20] regex/mlx5: add get info function Ori Kam
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 12/20] regex/mlx5: add configure function Ori Kam
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 13/20] regex/mlx5: add program rules support Ori Kam
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 14/20] regex/mlx5: add completion queue creation Ori Kam
2020-07-12 20:58   ` Ori Kam [this message]
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 16/20] common/mlx5: add match tuple hw layout Ori Kam
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 17/20] regex/mlx5: fastpath setup Ori Kam
2020-07-12 20:58   ` [dpdk-dev] [PATCH v2 18/20] regex/mlx5: add enqueue implementation Ori Kam
2020-07-12 20:59   ` [dpdk-dev] [PATCH v2 19/20] regex/mlx5: implement dequeue function Ori Kam
2020-07-12 20:59   ` [dpdk-dev] [PATCH v2 20/20] regex/mlx5: add start stop functions Ori Kam
2020-07-15 16:48   ` [dpdk-dev] [PATCH v2 00/20] add Mellanox RegEx PMD Thomas Monjalon
2020-07-17 10:27 ` [dpdk-dev] [PATCH v3 00/13] " Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 01/13] regex/mlx5: add RegEx PMD layer and mlx5 driver Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 02/13] regex/mlx5: add log utils Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 03/13] regex/mlx5: add probe function Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 04/13] regex/mlx5: add get info function Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 05/13] regex/mlx5: add engine status check Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 06/13] regex/mlx5: add configure function Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 07/13] regex/mlx5: add program rules support Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 08/13] regex/mlx5: add completion queue creation Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 09/13] regex/mlx5: add send queue support Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 10/13] regex/mlx5: fastpath setup Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 11/13] regex/mlx5: add enqueue implementation Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 12/13] regex/mlx5: implement dequeue function Ori Kam
2020-07-17 10:27   ` [dpdk-dev] [PATCH v3 13/13] regex/mlx5: add start stop functions Ori Kam
2020-07-17 11:10 ` [dpdk-dev] [PATCH v4 00/13] add Mellanox RegEx PMD Ori Kam
2020-07-17 11:10   ` [dpdk-dev] [PATCH v4 01/13] regex/mlx5: add RegEx PMD layer and mlx5 driver Ori Kam
2020-07-17 11:10   ` [dpdk-dev] [PATCH v4 02/13] regex/mlx5: add log utils Ori Kam
2020-07-17 11:10   ` [dpdk-dev] [PATCH v4 03/13] regex/mlx5: add probe function Ori Kam
2020-07-17 11:10   ` [dpdk-dev] [PATCH v4 04/13] regex/mlx5: add get info function Ori Kam
2020-07-17 11:10   ` [dpdk-dev] [PATCH v4 05/13] regex/mlx5: add engine status check Ori Kam
2020-07-17 11:10   ` [dpdk-dev] [PATCH v4 06/13] regex/mlx5: add configure function Ori Kam
2020-07-17 11:10   ` [dpdk-dev] [PATCH v4 07/13] regex/mlx5: add program rules support Ori Kam
2020-07-17 11:10   ` [dpdk-dev] [PATCH v4 08/13] regex/mlx5: add completion queue creation Ori Kam
2020-07-17 11:10   ` [dpdk-dev] [PATCH v4 09/13] regex/mlx5: add send queue support Ori Kam
2020-07-17 11:11   ` [dpdk-dev] [PATCH v4 10/13] regex/mlx5: fastpath setup Ori Kam
2020-07-17 11:11   ` [dpdk-dev] [PATCH v4 11/13] regex/mlx5: add enqueue implementation Ori Kam
2020-07-17 11:11   ` [dpdk-dev] [PATCH v4 12/13] regex/mlx5: implement dequeue function Ori Kam
2020-07-17 11:11   ` [dpdk-dev] [PATCH v4 13/13] regex/mlx5: add start stop functions Ori Kam
2020-07-19 18:09 ` [dpdk-dev] [PATCH v5 00/13] add Mellanox RegEx PMD Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 01/13] regex/mlx5: add RegEx PMD layer and mlx5 driver Ori Kam
2020-07-19 22:15     ` Thomas Monjalon
2020-07-20  4:50       ` Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 02/13] regex/mlx5: add log utils Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 03/13] regex/mlx5: add probe function Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 04/13] regex/mlx5: add get info function Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 05/13] regex/mlx5: add engine status check Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 06/13] regex/mlx5: add configure function Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 07/13] regex/mlx5: add program rules support Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 08/13] regex/mlx5: add completion queue creation Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 09/13] regex/mlx5: add send queue support Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 10/13] regex/mlx5: fastpath setup Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 11/13] regex/mlx5: add enqueue implementation Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 12/13] regex/mlx5: implement dequeue function Ori Kam
2020-07-19 18:09   ` [dpdk-dev] [PATCH v5 13/13] regex/mlx5: add start stop functions Ori Kam
2020-07-20  6:26 ` [dpdk-dev] [PATCH v6 00/13] add Mellanox RegEx PMD Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 01/13] regex/mlx5: add RegEx PMD layer and mlx5 driver Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 02/13] regex/mlx5: add log utils Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 03/13] regex/mlx5: add probe function Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 04/13] regex/mlx5: add get info function Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 05/13] regex/mlx5: add engine status check Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 06/13] regex/mlx5: add configure function Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 07/13] regex/mlx5: add program rules support Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 08/13] regex/mlx5: add completion queue creation Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 09/13] regex/mlx5: add send queue support Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 10/13] regex/mlx5: fastpath setup Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 11/13] regex/mlx5: add enqueue implementation Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 12/13] regex/mlx5: implement dequeue function Ori Kam
2020-07-20  6:26   ` [dpdk-dev] [PATCH v6 13/13] regex/mlx5: add start stop functions Ori Kam
2020-07-21 17:06   ` [dpdk-dev] [PATCH v6 00/13] add Mellanox RegEx PMD Thomas Monjalon

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=1594587541-110442-16-git-send-email-orika@mellanox.com \
    --to=orika@mellanox.com \
    --cc=alexr@mellanox.com \
    --cc=arthur.su@lionic.com \
    --cc=bruce.richardson@intel.com \
    --cc=davidfgao@tencent.com \
    --cc=deri@ntop.org \
    --cc=dev@dpdk.org \
    --cc=dovrat@marvell.com \
    --cc=fanchenggang@sunyainfo.com \
    --cc=fc@napatech.com \
    --cc=gu.jian1@zte.com.cn \
    --cc=guyk@marvell.com \
    --cc=harry.chang@intel.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=hongjun.ni@intel.com \
    --cc=jerinj@marvell.com \
    --cc=jim@netgate.com \
    --cc=liuzhong1@chinaunicom.cn \
    --cc=lixingfu@huachentel.com \
    --cc=matan@mellanox.com \
    --cc=nipun.gupta@nxp.com \
    --cc=oc@yunify.com \
    --cc=opher@mellanox.com \
    --cc=pbhagavatula@marvell.com \
    --cc=pkapoor@marvell.com \
    --cc=rasland@mellanox.com \
    --cc=shahafs@mellanox.com \
    --cc=shanjiangh@chinatelecom.cn \
    --cc=thomas@monjalon.net \
    --cc=viacheslavo@mellanox.com \
    --cc=wushuai@inspur.com \
    --cc=xiang.w.wang@intel.com \
    --cc=yang.a.hong@intel.com \
    --cc=yuyingxia@yxlink.com \
    --cc=zhangy.yun@chinatelecom.cn \
    --cc=zhaoyong11@huawei.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.