DPDK patches and discussions
 help / color / mirror / Atom feed
From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: dev@dpdk.org, ferruh.yigit@intel.com
Cc: Jun Yang <jun.yang@nxp.com>
Subject: [dpdk-dev] [PATCH 16/37] net/dpaa: add VSP support in FMLIB
Date: Wed, 27 May 2020 18:53:05 +0530
Message-ID: <20200527132326.1382-17-hemant.agrawal@nxp.com> (raw)
In-Reply-To: <20200527132326.1382-1-hemant.agrawal@nxp.com>

From: Jun Yang <jun.yang@nxp.com>

This patch adds support for VSP (Virtual Storage Profile)
FMLIB routines.
VSP  allow a network interface to be divided into physical
and virtual instances.

Signed-off-by: Jun Yang <jun.yang@nxp.com>
---
 drivers/net/dpaa/Makefile           |   1 +
 drivers/net/dpaa/fmlib/fm_vsp.c     | 143 ++++++++++++++++++++++++++++
 drivers/net/dpaa/fmlib/fm_vsp_ext.h | 140 +++++++++++++++++++++++++++
 drivers/net/dpaa/meson.build        |   1 +
 4 files changed, 285 insertions(+)
 create mode 100644 drivers/net/dpaa/fmlib/fm_vsp.c
 create mode 100644 drivers/net/dpaa/fmlib/fm_vsp_ext.h

diff --git a/drivers/net/dpaa/Makefile b/drivers/net/dpaa/Makefile
index 0d2f32ba1..8db4e457f 100644
--- a/drivers/net/dpaa/Makefile
+++ b/drivers/net/dpaa/Makefile
@@ -28,6 +28,7 @@ EXPORT_MAP := rte_pmd_dpaa_version.map
 
 # Interfaces with DPDK
 SRCS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += fmlib/fm_lib.c
+SRCS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += fmlib/fm_vsp.c
 SRCS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa_ethdev.c
 SRCS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa_rxtx.c
 
diff --git a/drivers/net/dpaa/fmlib/fm_vsp.c b/drivers/net/dpaa/fmlib/fm_vsp.c
new file mode 100644
index 000000000..b511b5159
--- /dev/null
+++ b/drivers/net/dpaa/fmlib/fm_vsp.c
@@ -0,0 +1,143 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2019-2020 NXP
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+#include <stdbool.h>
+
+#include <rte_common.h>
+#include "fm_ext.h"
+#include "fm_pcd_ext.h"
+#include "fm_port_ext.h"
+#include "fm_vsp_ext.h"
+#include <dpaa_ethdev.h>
+
+uint32_t FM_PORT_VSPAlloc(t_Handle h_FmPort,
+		t_FmPortVSPAllocParams *p_Params)
+{
+	t_Device *p_Dev = (t_Device *)h_FmPort;
+	ioc_fm_port_vsp_alloc_params_t params;
+
+	_fml_dbg("Calling...\n");
+	memset(&params, 0, sizeof(ioc_fm_port_vsp_alloc_params_t));
+	memcpy(&params.params, p_Params, sizeof(t_FmPortVSPAllocParams));
+
+	if (ioctl(p_Dev->fd, FM_PORT_IOC_VSP_ALLOC, &params))
+		RETURN_ERROR(MINOR, E_INVALID_OPERATION, NO_MSG);
+
+	_fml_dbg("Called.\n");
+
+	return E_OK;
+}
+
+t_Handle FM_VSP_Config(t_FmVspParams *p_FmVspParams)
+{
+	t_Device *p_Dev = NULL;
+	t_Device *p_VspDev = NULL;
+	ioc_fm_vsp_params_t param;
+
+	p_Dev = p_FmVspParams->h_Fm;
+
+	_fml_dbg("Performing VSP Configuration...\n");
+
+	memset(&param, 0, sizeof(ioc_fm_vsp_params_t));
+	memcpy(&param, p_FmVspParams, sizeof(t_FmVspParams));
+	param.vsp_params.h_Fm = UINT_TO_PTR(p_Dev->id);
+	param.id = NULL;
+
+	if (ioctl(p_Dev->fd, FM_IOC_VSP_CONFIG, &param)) {
+		DPAA_PMD_ERR("%s ioctl error\n", __func__);
+		return NULL;
+	}
+
+	p_VspDev = (t_Device *)malloc(sizeof(t_Device));
+	if (!p_VspDev) {
+		DPAA_PMD_ERR("FM VSP Params!\n");
+		return NULL;
+	}
+	memset(p_VspDev, 0, sizeof(t_Device));
+	p_VspDev->h_UserPriv = (t_Handle)p_Dev;
+	p_Dev->owners++;
+	p_VspDev->id = PTR_TO_UINT(param.id);
+
+	_fml_dbg("VSP Configuration completed\n");
+
+	return (t_Handle)p_VspDev;
+}
+
+uint32_t FM_VSP_Init(t_Handle h_FmVsp)
+{
+	t_Device *p_Dev = NULL;
+	t_Device *p_VspDev = (t_Device *)h_FmVsp;
+	ioc_fm_obj_t id;
+
+	_fml_dbg("Calling...\n");
+
+	p_Dev = (t_Device *)p_VspDev->h_UserPriv;
+	id.obj = UINT_TO_PTR(p_VspDev->id);
+
+	if (ioctl(p_Dev->fd, FM_IOC_VSP_INIT, &id)) {
+		DPAA_PMD_ERR("%s ioctl error\n", __func__);
+		RETURN_ERROR(MINOR, E_INVALID_OPERATION, NO_MSG);
+	}
+
+	_fml_dbg("Called.\n");
+
+	return E_OK;
+}
+
+uint32_t FM_VSP_Free(t_Handle h_FmVsp)
+{
+	t_Device *p_Dev = NULL;
+	t_Device *p_VspDev = (t_Device *)h_FmVsp;
+	ioc_fm_obj_t id;
+
+	_fml_dbg("Calling...\n");
+
+	p_Dev = (t_Device *)p_VspDev->h_UserPriv;
+	id.obj = UINT_TO_PTR(p_VspDev->id);
+
+	if (ioctl(p_Dev->fd, FM_IOC_VSP_FREE, &id)) {
+		DPAA_PMD_ERR("%s ioctl error\n", __func__);
+		RETURN_ERROR(MINOR, E_INVALID_OPERATION, NO_MSG);
+	}
+
+	p_Dev->owners--;
+	free(p_VspDev);
+
+	_fml_dbg("Called.\n");
+
+	return E_OK;
+}
+
+uint32_t FM_VSP_ConfigBufferPrefixContent(t_Handle h_FmVsp,
+		t_FmBufferPrefixContent *p_FmBufferPrefixContent)
+{
+	t_Device *p_Dev = NULL;
+	t_Device *p_VspDev = (t_Device *)h_FmVsp;
+	ioc_fm_buffer_prefix_content_params_t params;
+
+	_fml_dbg("Calling...\n");
+
+	p_Dev = (t_Device *)p_VspDev->h_UserPriv;
+	params.p_fm_vsp = UINT_TO_PTR(p_VspDev->id);
+	memcpy(&params.fm_buffer_prefix_content,
+	       p_FmBufferPrefixContent, sizeof(*p_FmBufferPrefixContent));
+
+	if (ioctl(p_Dev->fd, FM_IOC_VSP_CONFIG_BUFFER_PREFIX_CONTENT,
+		  &params)) {
+		DPAA_PMD_ERR("%s ioctl error\n", __func__);
+		RETURN_ERROR(MINOR, E_INVALID_OPERATION, NO_MSG);
+	}
+
+	_fml_dbg("Called.\n");
+
+	return E_OK;
+}
diff --git a/drivers/net/dpaa/fmlib/fm_vsp_ext.h b/drivers/net/dpaa/fmlib/fm_vsp_ext.h
new file mode 100644
index 000000000..097d25d4e
--- /dev/null
+++ b/drivers/net/dpaa/fmlib/fm_vsp_ext.h
@@ -0,0 +1,140 @@
+/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
+ *
+ * Copyright 2008-2012 Freescale Semiconductor, Inc
+ * Copyright 2019-2020 NXP
+ *
+ */
+
+/**
+ @File          fm_vsp_ext.h
+
+ @Description   FM Virtual Storage-Profile
+*/
+#ifndef __FM_VSP_EXT_H
+#define __FM_VSP_EXT_H
+#include "ncsw_ext.h"
+#include "fm_ext.h"
+#include "net_ext.h"
+
+typedef struct t_FmVspParams {
+	t_Handle	h_Fm;
+			/**< A handle to the FM object this VSP related to */
+	t_FmExtPools	extBufPools;/**< Which external buffer pools are used
+			(up to FM_PORT_MAX_NUM_OF_EXT_POOLS), and their sizes.
+			parameter associated with Rx / OP port */
+	uint16_t	liodnOffset;	/**< VSP's LIODN offset */
+	struct {
+		e_FmPortType	portType; /**< Port type */
+		uint8_t	portId;           /**< Port Id - relative to type */
+	} portParams;
+	uint8_t	relativeProfileId;  /**< VSP Id - relative to VSP's range
+				defined in relevant FM object */
+} t_FmVspParams;
+
+typedef struct ioc_fm_vsp_params_t {
+	struct t_FmVspParams vsp_params;
+	void		*id;		/**< return value */
+} ioc_fm_vsp_params_t;
+
+typedef struct t_FmPortVSPAllocParams {
+	uint8_t     numOfProfiles;
+		/**< Number of Virtual Storage Profiles; must be a power of 2 */
+	uint8_t     dfltRelativeId;
+	/**< The default Virtual-Storage-Profile-id dedicated to Rx/OP port
+	The same default Virtual-Storage-Profile-id will be for coupled Tx port
+	if relevant function called for Rx port */
+} t_FmPortVSPAllocParams;
+
+typedef struct ioc_fm_port_vsp_alloc_params_t {
+	struct t_FmPortVSPAllocParams params;
+	void	*p_fm_tx_port;
+	/**< Handle to coupled Tx Port; not relevant for OP port. */
+} ioc_fm_port_vsp_alloc_params_t;
+
+typedef struct ioc_fm_buffer_prefix_content_t {
+	uint16_t priv_data_size;
+		/**< Number of bytes to be left at the beginning
+		of the external buffer; Note that the private-area will
+		start from the base of the buffer address. */
+	bool pass_prs_result;
+			/**< TRUE to pass the parse result to/from the FM;
+			User may use FM_PORT_GetBufferPrsResult() in order to
+			get the parser-result from a buffer. */
+	bool pass_time_stamp;
+			/**< TRUE to pass the timeStamp to/from the FM
+			User may use FM_PORT_GetBufferTimeStamp() in order to
+			get the parser-result from a buffer. */
+	bool pass_hash_result;
+			/**< TRUE to pass the KG hash result to/from the FM
+			User may use FM_PORT_GetBufferHashResult() in order to
+			get the parser-result from a buffer. */
+	bool pass_all_other_pcd_info;
+			/**< Add all other Internal-Context information:
+			AD, hash-result, key, etc. */
+	uint16_t data_align; /**< 0 to use driver's default alignment [64],
+			other value for selecting a data alignment
+			(must be a power of 2);
+			if write optimization is used, must be >= 16. */
+	uint8_t manip_extra_space;
+			/**< Maximum extra size needed
+			 * (insertion-size minus removal-size);
+			 * Note that this field impacts the size of the
+			 * buffer-prefix (i.e. it pushes the data offset);
+			 * This field is irrelevant if DPAA_VERSION==10
+			 */
+} ioc_fm_buffer_prefix_content_t;
+
+typedef struct ioc_fm_buffer_prefix_content_params_t {
+	void    *p_fm_vsp;
+	ioc_fm_buffer_prefix_content_t fm_buffer_prefix_content;
+} ioc_fm_buffer_prefix_content_params_t;
+
+uint32_t FM_PORT_VSPAlloc(
+		t_Handle h_FmPort,
+		t_FmPortVSPAllocParams *p_Params);
+
+t_Handle FM_VSP_Config(t_FmVspParams *p_FmVspParams);
+
+uint32_t FM_VSP_Init(t_Handle h_FmVsp);
+
+uint32_t FM_VSP_Free(t_Handle h_FmVsp);
+
+uint32_t FM_VSP_ConfigBufferPrefixContent(t_Handle h_FmVsp,
+		t_FmBufferPrefixContent *p_FmBufferPrefixContent);
+
+#if defined(CONFIG_COMPAT)
+#define FM_PORT_IOC_VSP_ALLOC_COMPAT \
+	_IOW(FM_IOC_TYPE_BASE, FM_PORT_IOC_NUM(38), ioc_compat_fm_port_vsp_alloc_params_t)
+#endif
+#define FM_PORT_IOC_VSP_ALLOC \
+	_IOW(FM_IOC_TYPE_BASE, FM_PORT_IOC_NUM(38), ioc_fm_port_vsp_alloc_params_t)
+
+#if defined(CONFIG_COMPAT)
+#define FM_IOC_VSP_CONFIG_COMPAT \
+	_IOWR(FM_IOC_TYPE_BASE, FM_IOC_NUM(8), ioc_compat_fm_vsp_params_t)
+#endif
+#define FM_IOC_VSP_CONFIG \
+	_IOWR(FM_IOC_TYPE_BASE, FM_IOC_NUM(8), ioc_fm_vsp_params_t)
+
+#if defined(CONFIG_COMPAT)
+#define FM_IOC_VSP_INIT_COMPAT \
+	_IOW(FM_IOC_TYPE_BASE, FM_IOC_NUM(9), ioc_compat_fm_obj_t)
+#endif
+#define FM_IOC_VSP_INIT	\
+	_IOW(FM_IOC_TYPE_BASE, FM_IOC_NUM(9), ioc_fm_obj_t)
+
+#if defined(CONFIG_COMPAT)
+#define FM_IOC_VSP_FREE_COMPAT	\
+	_IOW(FM_IOC_TYPE_BASE, FM_IOC_NUM(10), ioc_compat_fm_obj_t)
+#endif
+#define FM_IOC_VSP_FREE	\
+	_IOW(FM_IOC_TYPE_BASE, FM_IOC_NUM(10), ioc_fm_obj_t)
+
+#if defined(CONFIG_COMPAT)
+#define FM_IOC_VSP_CONFIG_BUFFER_PREFIX_CONTENT_COMPAT \
+	_IOW(FM_IOC_TYPE_BASE, FM_IOC_NUM(12), ioc_compat_fm_buffer_prefix_content_params_t)
+#endif
+#define FM_IOC_VSP_CONFIG_BUFFER_PREFIX_CONTENT \
+	_IOW(FM_IOC_TYPE_BASE, FM_IOC_NUM(12), ioc_fm_buffer_prefix_content_params_t)
+
+#endif /* __FM_VSP_EXT_H */
diff --git a/drivers/net/dpaa/meson.build b/drivers/net/dpaa/meson.build
index 67803cd34..94d509528 100644
--- a/drivers/net/dpaa/meson.build
+++ b/drivers/net/dpaa/meson.build
@@ -9,6 +9,7 @@ deps += ['mempool_dpaa']
 
 sources = files('dpaa_ethdev.c',
 		'fmlib/fm_lib.c',
+		'fmlib/fm_vsp.c',
 		'dpaa_rxtx.c')
 
 if cc.has_argument('-Wno-pointer-arith')
-- 
2.17.1


  parent reply	other threads:[~2020-05-27 13:29 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-27 13:22 [dpdk-dev] [PATCH 00/37] NXP DPAAx enhancements Hemant Agrawal
2020-05-27 13:22 ` [dpdk-dev] [PATCH 01/37] bus/fslmc: fix getting the FD error Hemant Agrawal
2020-05-27 18:07   ` Akhil Goyal
2020-05-27 13:22 ` [dpdk-dev] [PATCH 02/37] net/dpaa: fix fd offset data type Hemant Agrawal
2020-05-27 18:08   ` Akhil Goyal
2020-05-27 13:22 ` [dpdk-dev] [PATCH 03/37] net/dpaa2: enable timestamp for Rx offload case as well Hemant Agrawal
2020-05-27 13:22 ` [dpdk-dev] [PATCH 04/37] bus/fslmc: combine thread specific variables Hemant Agrawal
2020-05-27 13:22 ` [dpdk-dev] [PATCH 05/37] bus/fslmc: rework portal allocation to a per thread basis Hemant Agrawal
2020-07-01  7:23   ` Ferruh Yigit
2020-05-27 13:22 ` [dpdk-dev] [PATCH 06/37] bus/fslmc: support handle portal alloc failure Hemant Agrawal
2020-05-27 13:22 ` [dpdk-dev] [PATCH 07/37] bus/fslmc: support portal migration Hemant Agrawal
2020-05-27 13:22 ` [dpdk-dev] [PATCH 08/37] bus/fslmc: rename the cinh read functions used for ls1088 Hemant Agrawal
2020-05-27 13:22 ` [dpdk-dev] [PATCH 09/37] net/dpaa: enable Tx queue taildrop Hemant Agrawal
2020-05-27 13:22 ` [dpdk-dev] [PATCH 10/37] net/dpaa: add 2.5G support Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 11/37] net/dpaa: update process specific device info Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 12/37] drivers: optimize thread local storage for dpaa Hemant Agrawal
2020-05-27 18:13   ` Akhil Goyal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 13/37] bus/dpaa: enable link state interrupt Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 14/37] bus/dpaa: enable set link status Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 15/37] net/dpaa: add support for fmlib in dpdk Hemant Agrawal
2020-06-30 17:00   ` Ferruh Yigit
2020-07-01  4:18     ` Hemant Agrawal
2020-07-01  7:35       ` Ferruh Yigit
2020-05-27 13:23 ` Hemant Agrawal [this message]
2020-05-27 13:23 ` [dpdk-dev] [PATCH 17/37] net/dpaa: add support for fmcless mode Hemant Agrawal
2020-06-30 17:01   ` Ferruh Yigit
2020-07-01  4:04     ` Hemant Agrawal
2020-07-01  7:37       ` Ferruh Yigit
2020-05-27 13:23 ` [dpdk-dev] [PATCH 18/37] bus/dpaa: add shared MAC support Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 19/37] bus/dpaa: add Virtual Storage Profile port init Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 20/37] net/dpaa: add support for Virtual Storage Profile Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 21/37] net/dpaa: add fmc parser support for VSP Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 22/37] net/dpaa: add RSS update func with FMCless Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 23/37] net/dpaa2: dynamic flow control support Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 24/37] net/dpaa2: key extracts of flow API Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 25/37] net/dpaa2: sanity check for flow extracts Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 26/37] net/dpaa2: free flow rule memory Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 27/37] net/dpaa2: flow QoS or FS table entry indexing Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 28/37] net/dpaa2: define the size of table entry Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 29/37] net/dpaa2: log of flow extracts and rules Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 30/37] net/dpaa2: discrimination between IPv4 and IPv6 Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 31/37] net/dpaa2: distribution size set on multiple TCs Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 32/37] net/dpaa2: index of queue action for flow Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 33/37] net/dpaa2: flow data sanity check Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 34/37] net/dpaa2: flow API QoS setup follows FS setup Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 35/37] net/dpaa2: flow API FS miss action configuration Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 36/37] net/dpaa2: configure per class distribution size Hemant Agrawal
2020-05-27 13:23 ` [dpdk-dev] [PATCH 37/37] net/dpaa2: support raw flow classification Hemant Agrawal
2020-06-30 17:01 ` [dpdk-dev] [PATCH 00/37] NXP DPAAx enhancements Ferruh Yigit
2020-07-01  4:08   ` Hemant Agrawal
2020-07-07  9:22 ` [dpdk-dev] [PATCH v2 00/29] " Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 01/29] bus/fslmc: fix getting the FD error Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 02/29] net/dpaa: fix fd offset data type Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 03/29] net/dpaa2: enable timestamp for Rx offload case as well Hemant Agrawal
2020-07-11 13:46     ` Thomas Monjalon
2020-07-13  3:47       ` Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 04/29] bus/fslmc: combine thread specific variables Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 05/29] bus/fslmc: rework portal allocation to a per thread basis Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 06/29] bus/fslmc: support handle portal alloc failure Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 07/29] bus/fslmc: support portal migration Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 08/29] bus/fslmc: rename the cinh read functions used for ls1088 Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 09/29] net/dpaa: enable Tx queue taildrop Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 10/29] net/dpaa: add 2.5G support Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 11/29] net/dpaa: update process specific device info Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 12/29] drivers: optimize thread local storage for dpaa Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 13/29] bus/dpaa: enable link state interrupt Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 14/29] bus/dpaa: enable set link status Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 15/29] net/dpaa2: support dynamic flow control Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 16/29] net/dpaa2: support key extracts of flow API Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 17/29] net/dpaa2: add sanity check for flow extracts Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 18/29] net/dpaa2: free flow rule memory Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 19/29] net/dpaa2: support QoS or FS table entry indexing Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 20/29] net/dpaa2: define the size of table entry Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 21/29] net/dpaa2: add logging of flow extracts and rules Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 22/29] net/dpaa2: support iscrimination between IPv4 and IPv6 Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 23/29] net/dpaa2: support distribution size set on multiple TCs Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 24/29] net/dpaa2: support ndex of queue action for flow Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 25/29] net/dpaa2: add flow data sanity check Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 26/29] net/dpaa2: modify flow API QoS setup to follow FS setup Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 27/29] net/dpaa2: support flow API FS miss action configuration Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 28/29] net/dpaa2: configure per class distribution size Hemant Agrawal
2020-07-07  9:22   ` [dpdk-dev] [PATCH v2 29/29] net/dpaa2: support raw flow classification Hemant Agrawal
2020-07-09  1:54   ` [dpdk-dev] [PATCH v2 00/29] NXP DPAAx enhancements Ferruh Yigit

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=20200527132326.1382-17-hemant.agrawal@nxp.com \
    --to=hemant.agrawal@nxp.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=jun.yang@nxp.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

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git