From: Nithin Dabilpuram <ndabilpuram@marvell.com>
To: <jerinj@marvell.com>, Nithin Dabilpuram <ndabilpuram@marvell.com>,
"Kiran Kumar K" <kirankumark@marvell.com>,
Sunil Kumar Kori <skori@marvell.com>,
Satha Rao <skoteshwar@marvell.com>
Cc: <dev@dpdk.org>
Subject: [dpdk-dev] [PATCH v3 05/28] common/cnxk: support NIX inline device IRQ
Date: Fri, 1 Oct 2021 19:09:59 +0530 [thread overview]
Message-ID: <20211001134022.22700-6-ndabilpuram@marvell.com> (raw)
In-Reply-To: <20211001134022.22700-1-ndabilpuram@marvell.com>
Add API to setup NIX inline device IRQ's. This registers
IRQ's for errors in case of NIX, CPT LF, SSOW and get wor
interrupt in case of SSO.
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
drivers/common/cnxk/meson.build | 1 +
drivers/common/cnxk/roc_api.h | 3 +
drivers/common/cnxk/roc_irq.c | 7 +-
drivers/common/cnxk/roc_nix_inl.h | 10 +
drivers/common/cnxk/roc_nix_inl_dev_irq.c | 359 ++++++++++++++++++++++++++++++
drivers/common/cnxk/roc_nix_inl_priv.h | 57 +++++
drivers/common/cnxk/roc_platform.h | 9 +-
drivers/common/cnxk/roc_priv.h | 3 +
8 files changed, 442 insertions(+), 7 deletions(-)
create mode 100644 drivers/common/cnxk/roc_nix_inl.h
create mode 100644 drivers/common/cnxk/roc_nix_inl_dev_irq.c
create mode 100644 drivers/common/cnxk/roc_nix_inl_priv.h
diff --git a/drivers/common/cnxk/meson.build b/drivers/common/cnxk/meson.build
index 258429d..3e836ce 100644
--- a/drivers/common/cnxk/meson.build
+++ b/drivers/common/cnxk/meson.build
@@ -28,6 +28,7 @@ sources = files(
'roc_nix_debug.c',
'roc_nix_fc.c',
'roc_nix_irq.c',
+ 'roc_nix_inl_dev_irq.c',
'roc_nix_mac.c',
'roc_nix_mcast.c',
'roc_nix_npc.c',
diff --git a/drivers/common/cnxk/roc_api.h b/drivers/common/cnxk/roc_api.h
index 7dec845..c1af95e 100644
--- a/drivers/common/cnxk/roc_api.h
+++ b/drivers/common/cnxk/roc_api.h
@@ -129,4 +129,7 @@
/* HASH computation */
#include "roc_hash.h"
+/* NIX Inline dev */
+#include "roc_nix_inl.h"
+
#endif /* _ROC_API_H_ */
diff --git a/drivers/common/cnxk/roc_irq.c b/drivers/common/cnxk/roc_irq.c
index 4c2b4c3..28fe691 100644
--- a/drivers/common/cnxk/roc_irq.c
+++ b/drivers/common/cnxk/roc_irq.c
@@ -138,9 +138,10 @@ dev_irq_register(struct plt_intr_handle *intr_handle, plt_intr_callback_fn cb,
irq_init(intr_handle);
}
- if (vec > intr_handle->max_intr) {
- plt_err("Vector=%d greater than max_intr=%d", vec,
- intr_handle->max_intr);
+ if (vec > intr_handle->max_intr || vec >= PLT_DIM(intr_handle->efds)) {
+ plt_err("Vector=%d greater than max_intr=%d or "
+ "max_efd=%" PRIu64,
+ vec, intr_handle->max_intr, PLT_DIM(intr_handle->efds));
return -EINVAL;
}
diff --git a/drivers/common/cnxk/roc_nix_inl.h b/drivers/common/cnxk/roc_nix_inl.h
new file mode 100644
index 0000000..1ec3dda
--- /dev/null
+++ b/drivers/common/cnxk/roc_nix_inl.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+#ifndef _ROC_NIX_INL_H_
+#define _ROC_NIX_INL_H_
+
+/* Inline device SSO Work callback */
+typedef void (*roc_nix_inl_sso_work_cb_t)(uint64_t *gw, void *args);
+
+#endif /* _ROC_NIX_INL_H_ */
diff --git a/drivers/common/cnxk/roc_nix_inl_dev_irq.c b/drivers/common/cnxk/roc_nix_inl_dev_irq.c
new file mode 100644
index 0000000..25ed42f
--- /dev/null
+++ b/drivers/common/cnxk/roc_nix_inl_dev_irq.c
@@ -0,0 +1,359 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include "roc_api.h"
+#include "roc_priv.h"
+
+static void
+nix_inl_sso_work_cb(struct nix_inl_dev *inl_dev)
+{
+ uintptr_t getwrk_op = inl_dev->ssow_base + SSOW_LF_GWS_OP_GET_WORK0;
+ uintptr_t tag_wqe_op = inl_dev->ssow_base + SSOW_LF_GWS_WQE0;
+ uint32_t wdata = BIT(16) | 1;
+ union {
+ __uint128_t get_work;
+ uint64_t u64[2];
+ } gw;
+ uint64_t work;
+
+again:
+ /* Try to do get work */
+ gw.get_work = wdata;
+ plt_write64(gw.u64[0], getwrk_op);
+ do {
+ roc_load_pair(gw.u64[0], gw.u64[1], tag_wqe_op);
+ } while (gw.u64[0] & BIT_ULL(63));
+
+ work = gw.u64[1];
+ /* Do we have any work? */
+ if (work) {
+ if (inl_dev->work_cb)
+ inl_dev->work_cb(gw.u64, inl_dev->cb_args);
+ else
+ plt_warn("Undelivered inl dev work gw0: %p gw1: %p",
+ (void *)gw.u64[0], (void *)gw.u64[1]);
+ goto again;
+ }
+
+ plt_atomic_thread_fence(__ATOMIC_ACQ_REL);
+}
+
+static int
+nix_inl_nix_reg_dump(struct nix_inl_dev *inl_dev)
+{
+ uintptr_t nix_base = inl_dev->nix_base;
+
+ /* General registers */
+ nix_lf_gen_reg_dump(nix_base, NULL);
+
+ /* Rx, Tx stat registers */
+ nix_lf_stat_reg_dump(nix_base, NULL, inl_dev->lf_tx_stats,
+ inl_dev->lf_rx_stats);
+
+ /* Intr registers */
+ nix_lf_int_reg_dump(nix_base, NULL, inl_dev->qints, inl_dev->cints);
+
+ return 0;
+}
+
+static void
+nix_inl_sso_hwgrp_irq(void *param)
+{
+ struct nix_inl_dev *inl_dev = (struct nix_inl_dev *)param;
+ uintptr_t sso_base = inl_dev->sso_base;
+ uint64_t intr;
+
+ intr = plt_read64(sso_base + SSO_LF_GGRP_INT);
+ if (intr == 0)
+ return;
+
+ /* Check for work executable interrupt */
+ if (intr & BIT(1))
+ nix_inl_sso_work_cb(inl_dev);
+
+ if (!(intr & BIT(1)))
+ plt_err("GGRP 0 GGRP_INT=0x%" PRIx64 "", intr);
+
+ /* Clear interrupt */
+ plt_write64(intr, sso_base + SSO_LF_GGRP_INT);
+}
+
+static void
+nix_inl_sso_hws_irq(void *param)
+{
+ struct nix_inl_dev *inl_dev = (struct nix_inl_dev *)param;
+ uintptr_t ssow_base = inl_dev->ssow_base;
+ uint64_t intr;
+
+ intr = plt_read64(ssow_base + SSOW_LF_GWS_INT);
+ if (intr == 0)
+ return;
+
+ plt_err("GWS 0 GWS_INT=0x%" PRIx64 "", intr);
+
+ /* Clear interrupt */
+ plt_write64(intr, ssow_base + SSOW_LF_GWS_INT);
+}
+
+int
+nix_inl_sso_register_irqs(struct nix_inl_dev *inl_dev)
+{
+ struct plt_intr_handle *handle = &inl_dev->pci_dev->intr_handle;
+ uintptr_t ssow_base = inl_dev->ssow_base;
+ uintptr_t sso_base = inl_dev->sso_base;
+ uint16_t sso_msixoff, ssow_msixoff;
+ int rc;
+
+ ssow_msixoff = inl_dev->ssow_msixoff;
+ sso_msixoff = inl_dev->sso_msixoff;
+ if (sso_msixoff == MSIX_VECTOR_INVALID ||
+ ssow_msixoff == MSIX_VECTOR_INVALID) {
+ plt_err("Invalid SSO/SSOW MSIX offsets (0x%x, 0x%x)",
+ sso_msixoff, ssow_msixoff);
+ return -EINVAL;
+ }
+
+ /*
+ * Setup SSOW interrupt
+ */
+
+ /* Clear SSOW interrupt enable */
+ plt_write64(~0ull, ssow_base + SSOW_LF_GWS_INT_ENA_W1C);
+ /* Register interrupt with vfio */
+ rc = dev_irq_register(handle, nix_inl_sso_hws_irq, inl_dev,
+ ssow_msixoff + SSOW_LF_INT_VEC_IOP);
+ /* Set SSOW interrupt enable */
+ plt_write64(~0ull, ssow_base + SSOW_LF_GWS_INT_ENA_W1S);
+
+ /*
+ * Setup SSO/HWGRP interrupt
+ */
+
+ /* Clear SSO interrupt enable */
+ plt_write64(~0ull, sso_base + SSO_LF_GGRP_INT_ENA_W1C);
+ /* Register IRQ */
+ rc |= dev_irq_register(handle, nix_inl_sso_hwgrp_irq, (void *)inl_dev,
+ sso_msixoff + SSO_LF_INT_VEC_GRP);
+ /* Enable hw interrupt */
+ plt_write64(~0ull, sso_base + SSO_LF_GGRP_INT_ENA_W1S);
+
+ /* Setup threshold for work exec interrupt to 1 wqe in IAQ */
+ plt_write64(0x1ull, sso_base + SSO_LF_GGRP_INT_THR);
+
+ return rc;
+}
+
+void
+nix_inl_sso_unregister_irqs(struct nix_inl_dev *inl_dev)
+{
+ struct plt_intr_handle *handle = &inl_dev->pci_dev->intr_handle;
+ uintptr_t ssow_base = inl_dev->ssow_base;
+ uintptr_t sso_base = inl_dev->sso_base;
+ uint16_t sso_msixoff, ssow_msixoff;
+
+ ssow_msixoff = inl_dev->ssow_msixoff;
+ sso_msixoff = inl_dev->sso_msixoff;
+
+ /* Clear SSOW interrupt enable */
+ plt_write64(~0ull, ssow_base + SSOW_LF_GWS_INT_ENA_W1C);
+ /* Clear SSO/HWGRP interrupt enable */
+ plt_write64(~0ull, sso_base + SSO_LF_GGRP_INT_ENA_W1C);
+ /* Clear SSO threshold */
+ plt_write64(0, sso_base + SSO_LF_GGRP_INT_THR);
+
+ /* Unregister IRQ */
+ dev_irq_unregister(handle, nix_inl_sso_hws_irq, (void *)inl_dev,
+ ssow_msixoff + SSOW_LF_INT_VEC_IOP);
+ dev_irq_unregister(handle, nix_inl_sso_hwgrp_irq, (void *)inl_dev,
+ sso_msixoff + SSO_LF_INT_VEC_GRP);
+}
+
+static void
+nix_inl_nix_q_irq(void *param)
+{
+ struct nix_inl_dev *inl_dev = (struct nix_inl_dev *)param;
+ uintptr_t nix_base = inl_dev->nix_base;
+ struct dev *dev = &inl_dev->dev;
+ volatile void *ctx;
+ uint64_t reg, intr;
+ uint8_t irq;
+ int rc;
+
+ intr = plt_read64(nix_base + NIX_LF_QINTX_INT(0));
+ if (intr == 0)
+ return;
+
+ plt_err("Queue_intr=0x%" PRIx64 " qintx 0 pf=%d, vf=%d", intr, dev->pf,
+ dev->vf);
+
+ /* Get and clear RQ0 interrupt */
+ reg = roc_atomic64_add_nosync(0,
+ (int64_t *)(nix_base + NIX_LF_RQ_OP_INT));
+ if (reg & BIT_ULL(42) /* OP_ERR */) {
+ plt_err("Failed to get rq_int");
+ return;
+ }
+ irq = reg & 0xff;
+ plt_write64(0 | irq, nix_base + NIX_LF_RQ_OP_INT);
+
+ if (irq & BIT_ULL(NIX_RQINT_DROP))
+ plt_err("RQ=0 NIX_RQINT_DROP");
+
+ if (irq & BIT_ULL(NIX_RQINT_RED))
+ plt_err("RQ=0 NIX_RQINT_RED");
+
+ /* Clear interrupt */
+ plt_write64(intr, nix_base + NIX_LF_QINTX_INT(0));
+
+ /* Dump registers to std out */
+ nix_inl_nix_reg_dump(inl_dev);
+
+ /* Dump RQ 0 */
+ rc = nix_q_ctx_get(dev, NIX_AQ_CTYPE_RQ, 0, &ctx);
+ if (rc) {
+ plt_err("Failed to get rq context");
+ return;
+ }
+ nix_lf_rq_dump(ctx);
+}
+
+static void
+nix_inl_nix_ras_irq(void *param)
+{
+ struct nix_inl_dev *inl_dev = (struct nix_inl_dev *)param;
+ uintptr_t nix_base = inl_dev->nix_base;
+ struct dev *dev = &inl_dev->dev;
+ volatile void *ctx;
+ uint64_t intr;
+ int rc;
+
+ intr = plt_read64(nix_base + NIX_LF_RAS);
+ if (intr == 0)
+ return;
+
+ plt_err("Ras_intr=0x%" PRIx64 " pf=%d, vf=%d", intr, dev->pf, dev->vf);
+ /* Clear interrupt */
+ plt_write64(intr, nix_base + NIX_LF_RAS);
+
+ /* Dump registers to std out */
+ nix_inl_nix_reg_dump(inl_dev);
+
+ /* Dump RQ 0 */
+ rc = nix_q_ctx_get(dev, NIX_AQ_CTYPE_RQ, 0, &ctx);
+ if (rc) {
+ plt_err("Failed to get rq context");
+ return;
+ }
+ nix_lf_rq_dump(ctx);
+}
+
+static void
+nix_inl_nix_err_irq(void *param)
+{
+ struct nix_inl_dev *inl_dev = (struct nix_inl_dev *)param;
+ uintptr_t nix_base = inl_dev->nix_base;
+ struct dev *dev = &inl_dev->dev;
+ volatile void *ctx;
+ uint64_t intr;
+ int rc;
+
+ intr = plt_read64(nix_base + NIX_LF_ERR_INT);
+ if (intr == 0)
+ return;
+
+ plt_err("Err_irq=0x%" PRIx64 " pf=%d, vf=%d", intr, dev->pf, dev->vf);
+
+ /* Clear interrupt */
+ plt_write64(intr, nix_base + NIX_LF_ERR_INT);
+
+ /* Dump registers to std out */
+ nix_inl_nix_reg_dump(inl_dev);
+
+ /* Dump RQ 0 */
+ rc = nix_q_ctx_get(dev, NIX_AQ_CTYPE_RQ, 0, &ctx);
+ if (rc) {
+ plt_err("Failed to get rq context");
+ return;
+ }
+ nix_lf_rq_dump(ctx);
+}
+
+int
+nix_inl_nix_register_irqs(struct nix_inl_dev *inl_dev)
+{
+ struct plt_intr_handle *handle = &inl_dev->pci_dev->intr_handle;
+ uintptr_t nix_base = inl_dev->nix_base;
+ uint16_t msixoff;
+ int rc;
+
+ msixoff = inl_dev->nix_msixoff;
+ if (msixoff == MSIX_VECTOR_INVALID) {
+ plt_err("Invalid NIXLF MSIX vector offset: 0x%x", msixoff);
+ return -EINVAL;
+ }
+
+ /* Disable err interrupts */
+ plt_write64(~0ull, nix_base + NIX_LF_ERR_INT_ENA_W1C);
+ /* DIsable RAS interrupts */
+ plt_write64(~0ull, nix_base + NIX_LF_RAS_ENA_W1C);
+
+ /* Register err irq */
+ rc = dev_irq_register(handle, nix_inl_nix_err_irq, inl_dev,
+ msixoff + NIX_LF_INT_VEC_ERR_INT);
+ rc |= dev_irq_register(handle, nix_inl_nix_ras_irq, inl_dev,
+ msixoff + NIX_LF_INT_VEC_POISON);
+
+ /* Enable all nix lf error irqs except RQ_DISABLED and CQ_DISABLED */
+ plt_write64(~(BIT_ULL(11) | BIT_ULL(24)),
+ nix_base + NIX_LF_ERR_INT_ENA_W1S);
+ /* Enable RAS interrupts */
+ plt_write64(~0ull, nix_base + NIX_LF_RAS_ENA_W1S);
+
+ /* Setup queue irq for RQ 0 */
+
+ /* Clear QINT CNT, interrupt */
+ plt_write64(0, nix_base + NIX_LF_QINTX_CNT(0));
+ plt_write64(~0ull, nix_base + NIX_LF_QINTX_ENA_W1C(0));
+
+ /* Register queue irq vector */
+ rc |= dev_irq_register(handle, nix_inl_nix_q_irq, inl_dev,
+ msixoff + NIX_LF_INT_VEC_QINT_START);
+
+ plt_write64(0, nix_base + NIX_LF_QINTX_CNT(0));
+ plt_write64(0, nix_base + NIX_LF_QINTX_INT(0));
+ /* Enable QINT interrupt */
+ plt_write64(~0ull, nix_base + NIX_LF_QINTX_ENA_W1S(0));
+
+ return rc;
+}
+
+void
+nix_inl_nix_unregister_irqs(struct nix_inl_dev *inl_dev)
+{
+ struct plt_intr_handle *handle = &inl_dev->pci_dev->intr_handle;
+ uintptr_t nix_base = inl_dev->nix_base;
+ uint16_t msixoff;
+
+ msixoff = inl_dev->nix_msixoff;
+ /* Disable err interrupts */
+ plt_write64(~0ull, nix_base + NIX_LF_ERR_INT_ENA_W1C);
+ /* DIsable RAS interrupts */
+ plt_write64(~0ull, nix_base + NIX_LF_RAS_ENA_W1C);
+
+ dev_irq_unregister(handle, nix_inl_nix_err_irq, inl_dev,
+ msixoff + NIX_LF_INT_VEC_ERR_INT);
+ dev_irq_unregister(handle, nix_inl_nix_ras_irq, inl_dev,
+ msixoff + NIX_LF_INT_VEC_POISON);
+
+ /* Clear QINT CNT */
+ plt_write64(0, nix_base + NIX_LF_QINTX_CNT(0));
+ plt_write64(0, nix_base + NIX_LF_QINTX_INT(0));
+
+ /* Disable QINT interrupt */
+ plt_write64(~0ull, nix_base + NIX_LF_QINTX_ENA_W1C(0));
+
+ /* Unregister queue irq vector */
+ dev_irq_unregister(handle, nix_inl_nix_q_irq, inl_dev,
+ msixoff + NIX_LF_INT_VEC_QINT_START);
+}
diff --git a/drivers/common/cnxk/roc_nix_inl_priv.h b/drivers/common/cnxk/roc_nix_inl_priv.h
new file mode 100644
index 0000000..f424009
--- /dev/null
+++ b/drivers/common/cnxk/roc_nix_inl_priv.h
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+#ifndef _ROC_NIX_INL_PRIV_H_
+#define _ROC_NIX_INL_PRIV_H_
+
+struct nix_inl_dev {
+ /* Base device object */
+ struct dev dev;
+
+ /* PCI device */
+ struct plt_pci_device *pci_dev;
+
+ /* LF specific BAR2 regions */
+ uintptr_t nix_base;
+ uintptr_t ssow_base;
+ uintptr_t sso_base;
+
+ /* MSIX vector offsets */
+ uint16_t nix_msixoff;
+ uint16_t ssow_msixoff;
+ uint16_t sso_msixoff;
+
+ /* SSO data */
+ uint32_t xaq_buf_size;
+ uint32_t xae_waes;
+ uint32_t iue;
+ uint64_t xaq_aura;
+ void *xaq_mem;
+ roc_nix_inl_sso_work_cb_t work_cb;
+ void *cb_args;
+
+ /* NIX data */
+ uint8_t lf_tx_stats;
+ uint8_t lf_rx_stats;
+ uint16_t cints;
+ uint16_t qints;
+ struct roc_nix_rq rq;
+ uint16_t rq_refs;
+ bool is_nix1;
+
+ /* NIX/CPT data */
+ void *inb_sa_base;
+ uint16_t inb_sa_sz;
+
+ /* Device arguments */
+ uint8_t selftest;
+ uint16_t ipsec_in_max_spi;
+};
+
+int nix_inl_sso_register_irqs(struct nix_inl_dev *inl_dev);
+void nix_inl_sso_unregister_irqs(struct nix_inl_dev *inl_dev);
+
+int nix_inl_nix_register_irqs(struct nix_inl_dev *inl_dev);
+void nix_inl_nix_unregister_irqs(struct nix_inl_dev *inl_dev);
+
+#endif /* _ROC_NIX_INL_PRIV_H_ */
diff --git a/drivers/common/cnxk/roc_platform.h b/drivers/common/cnxk/roc_platform.h
index 285b24b..177db3d 100644
--- a/drivers/common/cnxk/roc_platform.h
+++ b/drivers/common/cnxk/roc_platform.h
@@ -113,10 +113,11 @@
#define plt_write64(val, addr) \
rte_write64_relaxed((val), (volatile void *)(addr))
-#define plt_wmb() rte_wmb()
-#define plt_rmb() rte_rmb()
-#define plt_io_wmb() rte_io_wmb()
-#define plt_io_rmb() rte_io_rmb()
+#define plt_wmb() rte_wmb()
+#define plt_rmb() rte_rmb()
+#define plt_io_wmb() rte_io_wmb()
+#define plt_io_rmb() rte_io_rmb()
+#define plt_atomic_thread_fence rte_atomic_thread_fence
#define plt_mmap mmap
#define PLT_PROT_READ PROT_READ
diff --git a/drivers/common/cnxk/roc_priv.h b/drivers/common/cnxk/roc_priv.h
index 7494b8d..f72bbd5 100644
--- a/drivers/common/cnxk/roc_priv.h
+++ b/drivers/common/cnxk/roc_priv.h
@@ -38,4 +38,7 @@
/* CPT */
#include "roc_cpt_priv.h"
+/* NIX Inline dev */
+#include "roc_nix_inl_priv.h"
+
#endif /* _ROC_PRIV_H_ */
--
2.8.4
next prev parent reply other threads:[~2021-10-01 13:41 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-02 2:14 [dpdk-dev] [PATCH 00/27] net/cnxk: support for inline ipsec Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 01/27] common/cnxk: add security support for cn9k fast path Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 02/27] common/cnxk: add helper API to dump cpt parse header Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 03/27] common/cnxk: allow reuse of SSO API for inline dev Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 04/27] common/cnxk: change nix debug API and queue API interface Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 05/27] common/cnxk: add nix inline device irq API Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 06/27] common/cnxk: add nix inline device init and fini Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 07/27] common/cnxk: add nix inline inbound and outbound support API Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 08/27] common/cnxk: dump cpt lf registers on error intr Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 09/27] common/cnxk: align cpt lf enable/disable sequence Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 10/27] common/cnxk: restore nix sqb pool limit before destroy Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 11/27] common/cnxk: add cq enable support in nix Tx path Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 12/27] common/cnxk: setup aura bp conf based on nix Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 13/27] common/cnxk: add anti-replay check implementation for cn9k Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 14/27] common/cnxk: add inline IPsec support in rte flow Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 15/27] net/cnxk: add inline security support for cn9k Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 16/27] net/cnxk: add inline security support for cn10k Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 17/27] net/cnxk: add cn9k Rx support for security offload Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 18/27] net/cnxk: add cn9k Tx " Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 19/27] net/cnxk: add cn10k Rx " Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 20/27] net/cnxk: add cn10k Tx " Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 21/27] net/cnxk: add cn9k anti replay " Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 22/27] net/cnxk: add cn10k IPsec transport mode support Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 23/27] net/cnxk: update ethertype for mixed IPsec tunnel versions Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 24/27] net/cnxk: allow zero udp6 checksum for non inline device Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 25/27] net/cnxk: add crypto capabilities for AES CBC and HMAC SHA1 Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 26/27] net/cnxk: add devargs for configuring channel mask Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 27/27] net/cnxk: reflect globally enabled offloads in queue conf Nithin Dabilpuram
2021-09-29 12:44 ` [dpdk-dev] [PATCH 00/27] net/cnxk: support for inline ipsec Jerin Jacob
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 00/28] " Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 01/28] common/cnxk: support cn9k fast path security session Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 02/28] common/cnxk: support CPT parse header dump Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 03/28] common/cnxk: allow reuse of SSO API for inline dev Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 04/28] common/cnxk: change NIX debug API and queue API interface Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 05/28] common/cnxk: support NIX inline device IRQ Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 06/28] common/cnxk: support NIX inline device init and fini Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 07/28] common/cnxk: support NIX inline inbound and outbound setup Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 08/28] common/cnxk: disable CQ drop when inline inbound is enabled Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 09/28] common/cnxk: dump CPT LF registers on error intr Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 10/28] common/cnxk: align CPT LF enable/disable sequence Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 11/28] common/cnxk: restore NIX sqb pool limit before destroy Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 12/28] common/cnxk: add CQ enable support in NIX Tx path Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 13/28] common/cnxk: setup aura BP conf based on nix Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 14/28] common/cnxk: support anti-replay check in SW for cn9k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 15/28] common/cnxk: support inline IPsec rte flow action Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 16/28] net/cnxk: support inline security setup for cn9k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 17/28] net/cnxk: support inline security setup for cn10k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 18/28] net/cnxk: support Rx security offload on cn9k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 19/28] net/cnxk: support Tx " Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 20/28] net/cnxk: support Rx security offload on cn10k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 21/28] net/cnxk: support Tx " Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 22/28] net/cnxk: support IPsec anti replay in cn9k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 23/28] net/cnxk: support IPsec transport mode in cn10k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 24/28] net/cnxk: update ethertype for mixed IPsec tunnel versions Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 25/28] net/cnxk: allow zero udp6 checksum for non inline device Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 26/28] net/cnxk: add crypto capabilities for AES CBC and HMAC SHA1 Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 27/28] net/cnxk: support configuring channel mask via devargs Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 28/28] net/cnxk: reflect globally enabled offloads in queue conf Nithin Dabilpuram
2021-10-01 5:37 ` [dpdk-dev] [PATCH v2 00/28] net/cnxk: support for inline ipsec Jerin Jacob
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 " Nithin Dabilpuram
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 01/28] common/cnxk: support cn9k fast path security session Nithin Dabilpuram
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 02/28] common/cnxk: support CPT parse header dump Nithin Dabilpuram
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 03/28] common/cnxk: allow reuse of SSO API for inline dev Nithin Dabilpuram
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 04/28] common/cnxk: change NIX debug API and queue API interface Nithin Dabilpuram
2021-10-01 13:39 ` Nithin Dabilpuram [this message]
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 06/28] common/cnxk: support NIX inline device init and fini Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 07/28] common/cnxk: support NIX inline inbound and outbound setup Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 08/28] common/cnxk: disable CQ drop when inline inbound is enabled Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 09/28] common/cnxk: dump CPT LF registers on error intr Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 10/28] common/cnxk: align CPT LF enable/disable sequence Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 11/28] common/cnxk: restore NIX sqb pool limit before destroy Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 12/28] common/cnxk: add CQ enable support in NIX Tx path Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 13/28] common/cnxk: setup aura BP conf based on nix Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 14/28] common/cnxk: support anti-replay check in SW for cn9k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 15/28] common/cnxk: support inline IPsec rte flow action Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 16/28] net/cnxk: support inline security setup for cn9k Nithin Dabilpuram
2021-10-06 16:21 ` Ferruh Yigit
2021-10-06 16:44 ` Nithin Kumar Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 17/28] net/cnxk: support inline security setup for cn10k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 18/28] net/cnxk: support Rx security offload on cn9k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 19/28] net/cnxk: support Tx " Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 20/28] net/cnxk: support Rx security offload on cn10k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 21/28] net/cnxk: support Tx " Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 22/28] net/cnxk: support IPsec anti replay in cn9k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 23/28] net/cnxk: support IPsec transport mode in cn10k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 24/28] net/cnxk: update ethertype for mixed IPsec tunnel versions Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 25/28] net/cnxk: allow zero udp6 checksum for non inline device Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 26/28] net/cnxk: add crypto capabilities for AES CBC and HMAC SHA1 Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 27/28] net/cnxk: support configuring channel mask via devargs Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 28/28] net/cnxk: reflect globally enabled offloads in queue conf Nithin Dabilpuram
2021-10-02 13:49 ` [dpdk-dev] [PATCH v3 00/28] net/cnxk: support for inline ipsec Jerin Jacob
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=20211001134022.22700-6-ndabilpuram@marvell.com \
--to=ndabilpuram@marvell.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=kirankumark@marvell.com \
--cc=skori@marvell.com \
--cc=skoteshwar@marvell.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).