DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements
@ 2021-07-19 13:59 Hemant Agrawal
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 1/7] bus/dpaa: fix to use right type of memory free Hemant Agrawal
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Hemant Agrawal @ 2021-07-19 13:59 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Hemant Agrawal

This series add few minor fixes and enhancements for
the NXP DPAAx drivers.

Hemant Agrawal (3):
  bus/dpaa: fix to use right type of memory free
  bus/dpaa: reduce syscall usages
  doc: remove SDK info form individual dev guides

Nipun Gupta (2):
  net/dpaa: fix headroom in VSP case
  net/dpaa2: add per thread init PMD API

Rohit Raj (1):
  net/dpaa: add check for parsing default Rx queue

Vanshika Shukla (1):
  net/dpaa2: add input validation

 doc/guides/cryptodevs/dpaa2_sec.rst      |  6 ------
 doc/guides/eventdevs/dpaa2.rst           |  6 ------
 doc/guides/nics/dpaa2.rst                |  6 ------
 doc/guides/rawdevs/dpaa2_cmdif.rst       |  6 ------
 doc/guides/rawdevs/dpaa2_qdma.rst        |  6 ------
 drivers/bus/dpaa/base/fman/fman.c        | 18 ++++++++++++++++--
 drivers/bus/dpaa/dpaa_bus.c              |  3 +--
 drivers/bus/dpaa/include/fman.h          |  7 +++++--
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 19 +++++++++----------
 drivers/net/dpaa/dpaa_flow.c             |  5 ++++-
 drivers/net/dpaa/dpaa_fmc.c              |  5 ++++-
 drivers/net/dpaa2/base/dpaa2_hw_dpni.c   | 11 +++++++++++
 drivers/net/dpaa2/dpaa2_ethdev.c         | 20 ++++++++++++++++++--
 drivers/net/dpaa2/dpaa2_ethdev.h         |  1 +
 drivers/net/dpaa2/dpaa2_mux.c            |  3 +++
 drivers/net/dpaa2/rte_pmd_dpaa2.h        | 10 ++++++++++
 drivers/net/dpaa2/version.map            |  2 ++
 17 files changed, 84 insertions(+), 50 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 1/7] bus/dpaa: fix to use right type of memory free
  2021-07-19 13:59 [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Hemant Agrawal
@ 2021-07-19 13:59 ` Hemant Agrawal
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 2/7] net/dpaa: fix headroom in VSP case Hemant Agrawal
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Hemant Agrawal @ 2021-07-19 13:59 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Hemant Agrawal, stable

if was allocated with rte_malloc, free shall be equivalent.

Fixes: 4762b3d419c3 ("bus/dpaa: delay fman device list to bus probe")
Cc: stable@dpdk.org

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/base/fman/fman.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bus/dpaa/base/fman/fman.c b/drivers/bus/dpaa/base/fman/fman.c
index 692071b4b0..a14004d7fc 100644
--- a/drivers/bus/dpaa/base/fman/fman.c
+++ b/drivers/bus/dpaa/base/fman/fman.c
@@ -50,7 +50,7 @@ if_destructor(struct __fman_if *__if)
 		free(bp);
 	}
 cleanup:
-	free(__if);
+	rte_free(__if);
 }
 
 static int
-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 2/7] net/dpaa: fix headroom in VSP case
  2021-07-19 13:59 [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Hemant Agrawal
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 1/7] bus/dpaa: fix to use right type of memory free Hemant Agrawal
@ 2021-07-19 13:59 ` Hemant Agrawal
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 3/7] bus/dpaa: reduce syscall usages Hemant Agrawal
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Hemant Agrawal @ 2021-07-19 13:59 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Nipun Gupta, stable

From: Nipun Gupta <nipun.gupta@nxp.com>

This patch fixes providing the correct headroom size when
VSP is enabled.

Fixes: e4abd4ff183c ("net/dpaa: support virtual storage profile")
Cc: stable@dpdk.org

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
---
 drivers/net/dpaa/dpaa_flow.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dpaa/dpaa_flow.c b/drivers/net/dpaa/dpaa_flow.c
index a0087df670..c5b5ec8695 100644
--- a/drivers/net/dpaa/dpaa_flow.c
+++ b/drivers/net/dpaa/dpaa_flow.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2017-2019 NXP
+ * Copyright 2017-2019,2021 NXP
  */
 
 /* System headers */
@@ -999,6 +999,9 @@ static int dpaa_port_vsp_configure(struct dpaa_if *dpaa_intf,
 	buf_prefix_cont.pass_time_stamp = true;
 	buf_prefix_cont.pass_hash_result = false;
 	buf_prefix_cont.pass_all_other_pcdinfo = false;
+	buf_prefix_cont.manip_ext_space =
+		RTE_PKTMBUF_HEADROOM - DPAA_MBUF_HW_ANNOTATION;
+
 	ret = fm_vsp_config_buffer_prefix_content(dpaa_intf->vsp_handle[vsp_id],
 					       &buf_prefix_cont);
 	if (ret != E_OK) {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 3/7] bus/dpaa: reduce syscall usages
  2021-07-19 13:59 [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Hemant Agrawal
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 1/7] bus/dpaa: fix to use right type of memory free Hemant Agrawal
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 2/7] net/dpaa: fix headroom in VSP case Hemant Agrawal
@ 2021-07-19 13:59 ` Hemant Agrawal
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 4/7] net/dpaa: add check for parsing default Rx queue Hemant Agrawal
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Hemant Agrawal @ 2021-07-19 13:59 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Hemant Agrawal

Reuse dpdk rte_gettid instead of syscall.
It will help to reduce the dpaa portal allocation time.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c              | 3 +--
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 9 ++++-----
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index 2f48d4036b..e499305d85 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -12,7 +12,6 @@
 #include <signal.h>
 #include <pthread.h>
 #include <sys/types.h>
-#include <sys/syscall.h>
 #include <sys/eventfd.h>
 
 #include <rte_byteorder.h>
@@ -314,7 +313,7 @@ int rte_dpaa_portal_init(void *arg)
 
 	DPAA_PER_LCORE_PORTAL->qman_idx = qman_get_portal_index();
 	DPAA_PER_LCORE_PORTAL->bman_idx = bman_get_portal_index();
-	DPAA_PER_LCORE_PORTAL->tid = syscall(SYS_gettid);
+	DPAA_PER_LCORE_PORTAL->tid = rte_gettid();
 
 	ret = pthread_setspecific(dpaa_portal_key,
 				  (void *)DPAA_PER_LCORE_PORTAL);
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
index c6f8312a1d..c224a883ae 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
@@ -19,7 +19,6 @@
 #include <sys/ioctl.h>
 #include <sys/stat.h>
 #include <sys/mman.h>
-#include <sys/syscall.h>
 #include <sys/epoll.h>
 #include<sys/eventfd.h>
 
@@ -278,8 +277,8 @@ static struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(void)
 		return NULL;
 	}
 
-	DPAA2_BUS_DEBUG("New Portal %p (%d) affined thread - %lu",
-			dpio_dev, dpio_dev->index, syscall(SYS_gettid));
+	DPAA2_BUS_DEBUG("New Portal %p (%d) affined thread - %u",
+			dpio_dev, dpio_dev->index, rte_gettid());
 
 	/* Set the Stashing Destination */
 	cpu_id = dpaa2_get_core_id();
@@ -310,7 +309,7 @@ int
 dpaa2_affine_qbman_swp(void)
 {
 	struct dpaa2_dpio_dev *dpio_dev;
-	uint64_t tid = syscall(SYS_gettid);
+	uint64_t tid = rte_gettid();
 
 	/* Populate the dpaa2_io_portal structure */
 	if (!RTE_PER_LCORE(_dpaa2_io).dpio_dev) {
@@ -332,7 +331,7 @@ int
 dpaa2_affine_qbman_ethrx_swp(void)
 {
 	struct dpaa2_dpio_dev *dpio_dev;
-	uint64_t tid = syscall(SYS_gettid);
+	uint64_t tid = rte_gettid();
 
 	/* Populate the dpaa2_io_portal structure */
 	if (!RTE_PER_LCORE(_dpaa2_io).ethrx_dpio_dev) {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 4/7] net/dpaa: add check for parsing default Rx queue
  2021-07-19 13:59 [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Hemant Agrawal
                   ` (2 preceding siblings ...)
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 3/7] bus/dpaa: reduce syscall usages Hemant Agrawal
@ 2021-07-19 13:59 ` Hemant Agrawal
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 5/7] net/dpaa2: add per thread init PMD API Hemant Agrawal
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Hemant Agrawal @ 2021-07-19 13:59 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Rohit Raj

From: Rohit Raj <rohit.raj@nxp.com>

Add check for the PCD queue from the kernel interface
for default and error queues.

Signed-off-by: Rohit Raj <rohit.raj@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/base/fman/fman.c | 16 +++++++++++++++-
 drivers/bus/dpaa/include/fman.h   |  7 +++++--
 drivers/net/dpaa/dpaa_fmc.c       |  5 ++++-
 3 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/base/fman/fman.c b/drivers/bus/dpaa/base/fman/fman.c
index a14004d7fc..1814372a40 100644
--- a/drivers/bus/dpaa/base/fman/fman.c
+++ b/drivers/bus/dpaa/base/fman/fman.c
@@ -214,7 +214,7 @@ fman_if_init(const struct device_node *dpa_node)
 	const phandle *port_cell_idx, *ext_args_cell_idx;
 	const struct device_node *parent_node_ext_args;
 	uint64_t tx_phandle_host[4] = {0};
-	uint64_t rx_phandle_host[4] = {0};
+	uint64_t rx_phandle_host[6] = {0};
 	uint64_t regs_addr_host = 0;
 	uint64_t cell_idx_host = 0;
 	uint64_t port_cell_idx_val = 0;
@@ -511,6 +511,10 @@ fman_if_init(const struct device_node *dpa_node)
 		goto err;
 	}
 
+	/* Check if "fsl,qman-frame-queues-rx" in dtb file is valid entry or
+	 * not. A valid entry contains at least 4 entries, rx_error_queue,
+	 * rx_error_queue_count, fqid_rx_def and rx_error_queue_count.
+	 */
 	assert(lenp >= (4 * sizeof(phandle)));
 
 	na = of_n_addr_cells(mac_node);
@@ -519,11 +523,21 @@ fman_if_init(const struct device_node *dpa_node)
 	rx_phandle_host[1] = of_read_number(&rx_phandle[1], na);
 	rx_phandle_host[2] = of_read_number(&rx_phandle[2], na);
 	rx_phandle_host[3] = of_read_number(&rx_phandle[3], na);
+	rx_phandle_host[4] = of_read_number(&rx_phandle[4], na);
+	rx_phandle_host[5] = of_read_number(&rx_phandle[5], na);
 
 	assert((rx_phandle_host[1] == 1) && (rx_phandle_host[3] == 1));
 	__if->__if.fqid_rx_err = rx_phandle_host[0];
 	__if->__if.fqid_rx_def = rx_phandle_host[2];
 
+	/* If there are 6 entries in "fsl,qman-frame-queues-rx" in dtb file, it
+	 * means PCD queues are also available. Hence, store that information.
+	 */
+	if (lenp == 6 * sizeof(phandle)) {
+		__if->__if.fqid_rx_pcd = rx_phandle_host[4];
+		__if->__if.fqid_rx_pcd_count = rx_phandle_host[5];
+	}
+
 	/* Extract the Tx FQIDs */
 	tx_phandle = of_get_property(dpa_node,
 				     "fsl,qman-frame-queues-tx", &lenp);
diff --git a/drivers/bus/dpaa/include/fman.h b/drivers/bus/dpaa/include/fman.h
index 516c6c1515..3a6dd555a7 100644
--- a/drivers/bus/dpaa/include/fman.h
+++ b/drivers/bus/dpaa/include/fman.h
@@ -2,7 +2,7 @@
  *
  * Copyright 2010-2012 Freescale Semiconductor, Inc.
  * All rights reserved.
- * Copyright 2019-2020 NXP
+ * Copyright 2019-2021 NXP
  *
  */
 
@@ -329,8 +329,11 @@ struct fman_if {
 	uint8_t is_shared_mac;
 	/* The hard-coded FQIDs for this interface. Note: this doesn't cover
 	 * the PCD nor the "Rx default" FQIDs, which are configured via FMC
-	 * and its XML-based configuration.
+	 * and its XML-based configuration. These values are being parsed from
+	 * kernel device tree.
 	 */
+	uint32_t fqid_rx_pcd;
+	uint32_t fqid_rx_pcd_count;
 	uint32_t fqid_rx_def;
 	uint32_t fqid_rx_err;
 	uint32_t fqid_tx_err;
diff --git a/drivers/net/dpaa/dpaa_fmc.c b/drivers/net/dpaa/dpaa_fmc.c
index 0ef3622744..5195053361 100644
--- a/drivers/net/dpaa/dpaa_fmc.c
+++ b/drivers/net/dpaa/dpaa_fmc.c
@@ -243,7 +243,10 @@ static int dpaa_port_fmc_scheme_parse(struct fman_if *fif,
 			uint32_t fqid = fmc->scheme[idx].base_fqid + i;
 			int k, found = 0;
 
-			if (fqid == fif->fqid_rx_def) {
+			if (fqid == fif->fqid_rx_def ||
+			    (fqid >= fif->fqid_rx_pcd &&
+					fqid < (fif->fqid_rx_pcd +
+						fif->fqid_rx_pcd_count))) {
 				if (fif->is_shared_mac &&
 				fmc->scheme[idx].override_storage_profile &&
 				fmc->scheme[idx].storage_profile.direct &&
-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 5/7] net/dpaa2: add per thread init PMD API
  2021-07-19 13:59 [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Hemant Agrawal
                   ` (3 preceding siblings ...)
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 4/7] net/dpaa: add check for parsing default Rx queue Hemant Agrawal
@ 2021-07-19 13:59 ` Hemant Agrawal
  2021-09-09  7:09   ` Hemant Agrawal
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 6/7] net/dpaa2: add input validation Hemant Agrawal
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 10+ messages in thread
From: Hemant Agrawal @ 2021-07-19 13:59 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Nipun Gupta

From: Nipun Gupta <nipun.gupta@nxp.com>

DPAA2 hardware require a hardware portal context.
If a thread doing DPAA2 i/o do not have portal, it will
allocate it on run-time. This may cause a delay in the
datapath at run-time. To avoid it, it is better to allocate
a hw context portal at the start of thread expected to do
i/o with DPAA2 hardware.

This patch makes necessary changes for the same and creates
a pmd API to allocate a hw context portal for a thread.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
---
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 10 +++++-----
 drivers/net/dpaa2/dpaa2_ethdev.c         | 16 ++++++++++++++++
 drivers/net/dpaa2/rte_pmd_dpaa2.h        | 10 ++++++++++
 drivers/net/dpaa2/version.map            |  2 ++
 4 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
index c224a883ae..1a1e437ed1 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
@@ -20,7 +20,8 @@
 #include <sys/stat.h>
 #include <sys/mman.h>
 #include <sys/epoll.h>
-#include<sys/eventfd.h>
+#include <sys/eventfd.h>
+#include <sys/syscall.h>
 
 #include <rte_mbuf.h>
 #include <ethdev_driver.h>
@@ -168,7 +169,7 @@ dpaa2_affine_dpio_intr_to_respective_core(int32_t dpio_id, int cpu_id)
 	fclose(file);
 }
 
-static int dpaa2_dpio_intr_init(struct dpaa2_dpio_dev *dpio_dev, int cpu_id)
+static int dpaa2_dpio_intr_init(struct dpaa2_dpio_dev *dpio_dev)
 {
 	struct epoll_event epoll_ev;
 	int eventfd, dpio_epoll_fd, ret;
@@ -205,8 +206,6 @@ static int dpaa2_dpio_intr_init(struct dpaa2_dpio_dev *dpio_dev, int cpu_id)
 	}
 	dpio_dev->epoll_fd = dpio_epoll_fd;
 
-	dpaa2_affine_dpio_intr_to_respective_core(dpio_dev->hw_id, cpu_id);
-
 	return 0;
 }
 
@@ -242,10 +241,11 @@ dpaa2_configure_stashing(struct dpaa2_dpio_dev *dpio_dev, int cpu_id)
 	}
 
 #ifdef RTE_EVENT_DPAA2
-	if (dpaa2_dpio_intr_init(dpio_dev, cpu_id)) {
+	if (dpaa2_dpio_intr_init(dpio_dev)) {
 		DPAA2_BUS_ERR("Interrupt registration failed for dpio");
 		return -1;
 	}
+	dpaa2_affine_dpio_intr_to_respective_core(dpio_dev->hw_id, cpu_id);
 #endif
 
 	return 0;
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 8b803b8542..d892819a7e 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -2382,6 +2382,22 @@ dpaa2_tm_ops_get(struct rte_eth_dev *dev __rte_unused, void *ops)
 	return 0;
 }
 
+void
+rte_pmd_dpaa2_thread_init(void)
+{
+	int ret;
+
+	if (unlikely(!DPAA2_PER_LCORE_DPIO)) {
+		ret = dpaa2_affine_qbman_swp();
+		if (ret) {
+			DPAA2_PMD_ERR(
+				"Failed to allocate IO portal, tid: %d\n",
+				rte_gettid());
+			return;
+		}
+	}
+}
+
 static struct eth_dev_ops dpaa2_ethdev_ops = {
 	.dev_configure	  = dpaa2_eth_dev_configure,
 	.dev_start	      = dpaa2_dev_start,
diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2.h b/drivers/net/dpaa2/rte_pmd_dpaa2.h
index 7204a8f951..84ac9d38d1 100644
--- a/drivers/net/dpaa2/rte_pmd_dpaa2.h
+++ b/drivers/net/dpaa2/rte_pmd_dpaa2.h
@@ -84,4 +84,14 @@ rte_pmd_dpaa2_set_custom_hash(uint16_t port_id,
 			      uint16_t offset,
 			      uint8_t size);
 
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Do thread specific initialization
+ */
+__rte_experimental
+void
+rte_pmd_dpaa2_thread_init(void);
+
 #endif /* _RTE_PMD_DPAA2_H */
diff --git a/drivers/net/dpaa2/version.map b/drivers/net/dpaa2/version.map
index b50da13bcb..49f69dacd2 100644
--- a/drivers/net/dpaa2/version.map
+++ b/drivers/net/dpaa2/version.map
@@ -6,6 +6,8 @@ EXPERIMENTAL {
 
 	# added in 21.05
 	rte_pmd_dpaa2_mux_rx_frame_len;
+	# added in 21.08
+	rte_pmd_dpaa2_thread_init;
 };
 
 INTERNAL {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 6/7] net/dpaa2: add input validation
  2021-07-19 13:59 [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Hemant Agrawal
                   ` (4 preceding siblings ...)
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 5/7] net/dpaa2: add per thread init PMD API Hemant Agrawal
@ 2021-07-19 13:59 ` Hemant Agrawal
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 7/7] doc: remove SDK info form individual dev guides Hemant Agrawal
  2021-07-23 18:34 ` [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Thomas Monjalon
  7 siblings, 0 replies; 10+ messages in thread
From: Hemant Agrawal @ 2021-07-19 13:59 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Vanshika Shukla

From: Vanshika Shukla <vanshika.shukla@nxp.com>

This patch adds validation of the port id for
rte_pmd_dpaa2_set_custom_hash API to check if the
port is a valid DPAA2 port. Also handles some
edge cases in the rte_pmd_dpaa2_mux_flow_create API.

Signed-off-by: Vanshika Shukla <vanshika.shukla@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/net/dpaa2/base/dpaa2_hw_dpni.c | 11 +++++++++++
 drivers/net/dpaa2/dpaa2_ethdev.c       |  4 ++--
 drivers/net/dpaa2/dpaa2_ethdev.h       |  1 +
 drivers/net/dpaa2/dpaa2_mux.c          |  3 +++
 4 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c
index b901b4342f..641e7027f1 100644
--- a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c
+++ b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c
@@ -41,6 +41,17 @@ rte_pmd_dpaa2_set_custom_hash(uint16_t port_id,
 	void *p_params;
 	int ret, tc_index = 0;
 
+	if (!rte_eth_dev_is_valid_port(port_id)) {
+		DPAA2_PMD_WARN("Invalid port id %u", port_id);
+		return -EINVAL;
+	}
+
+	if (strcmp(eth_dev->device->driver->name,
+			RTE_STR(NET_DPAA2_PMD_DRIVER_NAME))) {
+		DPAA2_PMD_WARN("Not a valid dpaa2 port");
+		return -EINVAL;
+	}
+
 	p_params = rte_zmalloc(
 		NULL, DIST_PARAM_IOVA_SIZE, RTE_CACHE_LINE_SIZE);
 	if (!p_params) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index d892819a7e..c12169578e 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -2905,8 +2905,8 @@ static struct rte_dpaa2_driver rte_dpaa2_pmd = {
 	.remove = rte_dpaa2_remove,
 };
 
-RTE_PMD_REGISTER_DPAA2(net_dpaa2, rte_dpaa2_pmd);
-RTE_PMD_REGISTER_PARAM_STRING(net_dpaa2,
+RTE_PMD_REGISTER_DPAA2(NET_DPAA2_PMD_DRIVER_NAME, rte_dpaa2_pmd);
+RTE_PMD_REGISTER_PARAM_STRING(NET_DPAA2_PMD_DRIVER_NAME,
 		DRIVER_LOOPBACK_MODE "=<int> "
 		DRIVER_NO_PREFETCH_MODE "=<int>"
 		DRIVER_TX_CONF "=<int>"
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 7b76ca7b2d..b9c729f6cd 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -19,6 +19,7 @@
 
 #define DPAA2_MIN_RX_BUF_SIZE 512
 #define DPAA2_MAX_RX_PKT_LEN  10240 /*WRIOP support*/
+#define NET_DPAA2_PMD_DRIVER_NAME net_dpaa2
 
 #define MAX_TCS			DPNI_MAX_TC
 #define MAX_RX_QUEUES		128
diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c
index 811f417491..d347f4df51 100644
--- a/drivers/net/dpaa2/dpaa2_mux.c
+++ b/drivers/net/dpaa2/dpaa2_mux.c
@@ -68,6 +68,9 @@ rte_pmd_dpaa2_mux_flow_create(uint32_t dpdmux_id,
 	int ret;
 	static int i;
 
+	if (!pattern || !actions || !pattern[0] || !actions[0])
+		return NULL;
+
 	/* Find the DPDMUX from dpdmux_id in our list */
 	dpdmux_dev = get_dpdmux_from_id(dpdmux_id);
 	if (!dpdmux_dev) {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 7/7] doc: remove SDK info form individual dev guides
  2021-07-19 13:59 [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Hemant Agrawal
                   ` (5 preceding siblings ...)
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 6/7] net/dpaa2: add input validation Hemant Agrawal
@ 2021-07-19 13:59 ` Hemant Agrawal
  2021-07-23 18:34 ` [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Thomas Monjalon
  7 siblings, 0 replies; 10+ messages in thread
From: Hemant Agrawal @ 2021-07-19 13:59 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Hemant Agrawal

The prerequisite info is already present in the platform guide.
No need to repeat it in individual dev guides.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 doc/guides/cryptodevs/dpaa2_sec.rst | 6 ------
 doc/guides/eventdevs/dpaa2.rst      | 6 ------
 doc/guides/nics/dpaa2.rst           | 6 ------
 doc/guides/rawdevs/dpaa2_cmdif.rst  | 6 ------
 doc/guides/rawdevs/dpaa2_qdma.rst   | 6 ------
 5 files changed, 30 deletions(-)

diff --git a/doc/guides/cryptodevs/dpaa2_sec.rst b/doc/guides/cryptodevs/dpaa2_sec.rst
index a7fc9cef99..06de988d51 100644
--- a/doc/guides/cryptodevs/dpaa2_sec.rst
+++ b/doc/guides/cryptodevs/dpaa2_sec.rst
@@ -161,12 +161,6 @@ The following dependencies are not part of DPDK and must be installed separately
 
 See :doc:`../platform/dpaa2` for setup information
 
-Currently supported by DPDK:
-
-- NXP SDK **19.09+**.
-- MC Firmware version **10.18.0** and higher.
-- Supported architectures:  **arm64 LE**.
-
 - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
 
 
diff --git a/doc/guides/eventdevs/dpaa2.rst b/doc/guides/eventdevs/dpaa2.rst
index 33f13d0543..538d0be8b0 100644
--- a/doc/guides/eventdevs/dpaa2.rst
+++ b/doc/guides/eventdevs/dpaa2.rst
@@ -36,12 +36,6 @@ Prerequisites
 
 See :doc:`../platform/dpaa2` for setup information
 
-Currently supported by DPDK:
-
-- NXP SDK **19.09+**.
-- MC Firmware version **10.18.0** and higher.
-- Supported architectures:  **arm64 LE**.
-
 - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
 
 .. note::
diff --git a/doc/guides/nics/dpaa2.rst b/doc/guides/nics/dpaa2.rst
index 6470f1c05a..df23a5704d 100644
--- a/doc/guides/nics/dpaa2.rst
+++ b/doc/guides/nics/dpaa2.rst
@@ -421,12 +421,6 @@ Prerequisites
 
 See :doc:`../platform/dpaa2` for setup information
 
-Currently supported by DPDK:
-
-- NXP LSDK **19.08+**.
-- MC Firmware version **10.18.0** and higher.
-- Supported architectures:  **arm64 LE**.
-
 - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
 
 .. note::
diff --git a/doc/guides/rawdevs/dpaa2_cmdif.rst b/doc/guides/rawdevs/dpaa2_cmdif.rst
index 7ac3963938..4eed661c8e 100644
--- a/doc/guides/rawdevs/dpaa2_cmdif.rst
+++ b/doc/guides/rawdevs/dpaa2_cmdif.rst
@@ -31,12 +31,6 @@ Prerequisites
 
 See :doc:`../platform/dpaa2` for setup information
 
-Currently supported by DPDK:
-
-- NXP SDK **19.09+**.
-- MC Firmware version **10.18.0** and higher.
-- Supported architectures:  **arm64 LE**.
-
 - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
 
 .. note::
diff --git a/doc/guides/rawdevs/dpaa2_qdma.rst b/doc/guides/rawdevs/dpaa2_qdma.rst
index 92921fafdd..1b619ea1e1 100644
--- a/doc/guides/rawdevs/dpaa2_qdma.rst
+++ b/doc/guides/rawdevs/dpaa2_qdma.rst
@@ -35,12 +35,6 @@ Prerequisites
 
 See :doc:`../platform/dpaa2` for setup information
 
-Currently supported by DPDK:
-
-- NXP SDK **19.09+**.
-- MC Firmware version **10.18.0** and higher.
-- Supported architectures:  **arm64 LE**.
-
 - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
 
 .. note::
-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements
  2021-07-19 13:59 [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Hemant Agrawal
                   ` (6 preceding siblings ...)
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 7/7] doc: remove SDK info form individual dev guides Hemant Agrawal
@ 2021-07-23 18:34 ` Thomas Monjalon
  7 siblings, 0 replies; 10+ messages in thread
From: Thomas Monjalon @ 2021-07-23 18:34 UTC (permalink / raw)
  To: Hemant Agrawal; +Cc: dev, ferruh.yigit

19/07/2021 15:59, Hemant Agrawal:
> This series add few minor fixes and enhancements for
> the NXP DPAAx drivers.
> 
> Hemant Agrawal (3):
>   bus/dpaa: fix to use right type of memory free
>   bus/dpaa: reduce syscall usages
>   doc: remove SDK info form individual dev guides
> 
> Nipun Gupta (2):
>   net/dpaa: fix headroom in VSP case
>   net/dpaa2: add per thread init PMD API
> 
> Rohit Raj (1):
>   net/dpaa: add check for parsing default Rx queue
> 
> Vanshika Shukla (1):
>   net/dpaa2: add input validation

Applied, thanks.




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH 5/7] net/dpaa2: add per thread init PMD API
  2021-07-19 13:59 ` [dpdk-dev] [PATCH 5/7] net/dpaa2: add per thread init PMD API Hemant Agrawal
@ 2021-09-09  7:09   ` Hemant Agrawal
  0 siblings, 0 replies; 10+ messages in thread
From: Hemant Agrawal @ 2021-09-09  7:09 UTC (permalink / raw)
  To: dev

Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-09-09  7:09 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-19 13:59 [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Hemant Agrawal
2021-07-19 13:59 ` [dpdk-dev] [PATCH 1/7] bus/dpaa: fix to use right type of memory free Hemant Agrawal
2021-07-19 13:59 ` [dpdk-dev] [PATCH 2/7] net/dpaa: fix headroom in VSP case Hemant Agrawal
2021-07-19 13:59 ` [dpdk-dev] [PATCH 3/7] bus/dpaa: reduce syscall usages Hemant Agrawal
2021-07-19 13:59 ` [dpdk-dev] [PATCH 4/7] net/dpaa: add check for parsing default Rx queue Hemant Agrawal
2021-07-19 13:59 ` [dpdk-dev] [PATCH 5/7] net/dpaa2: add per thread init PMD API Hemant Agrawal
2021-09-09  7:09   ` Hemant Agrawal
2021-07-19 13:59 ` [dpdk-dev] [PATCH 6/7] net/dpaa2: add input validation Hemant Agrawal
2021-07-19 13:59 ` [dpdk-dev] [PATCH 7/7] doc: remove SDK info form individual dev guides Hemant Agrawal
2021-07-23 18:34 ` [dpdk-dev] [PATCH 0/7] NXP DPAAx fixes and improvements Thomas Monjalon

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).