From: "De Lara Guarch, Pablo" <pablo.de.lara.guarch@intel.com>
To: "Coyle, David" <david.coyle@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "Doherty, Declan" <declan.doherty@intel.com>,
"Trahe, Fiona" <fiona.trahe@intel.com>,
"Ryan, Brendan" <brendan.ryan@intel.com>,
"shreyansh.jain@nxp.com" <shreyansh.jain@nxp.com>,
"hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>,
"O'loingsigh, Mairtin" <mairtin.oloingsigh@intel.com>
Subject: Re: [dpdk-dev] [PATCH v2 1/4] raw/common: add multi-function interface
Date: Mon, 6 Apr 2020 16:09:05 +0000 [thread overview]
Message-ID: <SN6PR11MB3101417EF4DE2140F7083EA184C20@SN6PR11MB3101.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20200403163656.60545-2-david.coyle@intel.com>
Hi David,
> -----Original Message-----
> From: Coyle, David <david.coyle@intel.com>
> Sent: Friday, April 3, 2020 5:37 PM
> To: dev@dpdk.org
> Cc: Doherty, Declan <declan.doherty@intel.com>; Trahe, Fiona
> <fiona.trahe@intel.com>; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>; Ryan, Brendan <brendan.ryan@intel.com>;
> shreyansh.jain@nxp.com; hemant.agrawal@nxp.com; Coyle, David
> <david.coyle@intel.com>; O'loingsigh, Mairtin <mairtin.oloingsigh@intel.com>
> Subject: [PATCH v2 1/4] raw/common: add multi-function interface
>
> The multi-function interface provides a flexible and extensible way of combining
> one or more packet processing functions into a single operation. The interface
> can be used by applications to send the combined operations to a optimized
> software or hardware accelerator via a raw device.
>
> Signed-off-by: David Coyle <david.coyle@intel.com>
> Signed-off-by: Mairtin o Loingsigh <mairtin.oloingsigh@intel.com>
> ---
>
> In particular, looking for feedback on the meson script changes that were
> required to build the drivers/raw/common/multi_fn directory. Thank you.
>
> config/common_base | 5 +
> drivers/meson.build | 5 +
> drivers/raw/Makefile | 1 +
> drivers/raw/common/Makefile | 8 +
> drivers/raw/common/meson.build | 7 +
> drivers/raw/common/multi_fn/Makefile | 27 ++
> drivers/raw/common/multi_fn/meson.build | 9 +
> .../multi_fn/rte_common_multi_fn_version.map | 11 +
> drivers/raw/common/multi_fn/rte_multi_fn.c | 166 +++++++++
> drivers/raw/common/multi_fn/rte_multi_fn.h | 350 ++++++++++++++++++
> .../raw/common/multi_fn/rte_multi_fn_driver.h | 55 +++
> meson.build | 4 +
> mk/rte.app.mk | 1 +
> 13 files changed, 649 insertions(+)
> create mode 100644 drivers/raw/common/Makefile create mode 100644
> drivers/raw/common/meson.build create mode 100644
> drivers/raw/common/multi_fn/Makefile
> create mode 100644 drivers/raw/common/multi_fn/meson.build
> create mode 100644
> drivers/raw/common/multi_fn/rte_common_multi_fn_version.map
> create mode 100644 drivers/raw/common/multi_fn/rte_multi_fn.c
> create mode 100644 drivers/raw/common/multi_fn/rte_multi_fn.h
> create mode 100644 drivers/raw/common/multi_fn/rte_multi_fn_driver.h
>
> diff --git a/config/common_base b/config/common_base index
> c31175f9d..4f004968b 100644
> --- a/config/common_base
> +++ b/config/common_base
> @@ -818,6 +818,11 @@
> CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV=y
> #
> CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV=y
>
> +#
> +# Compile multi-fn raw device interface #
> +CONFIG_RTE_LIBRTE_MULTI_FN_COMMON=n
This can be enabled by default, right? It doesn't have any external dependency.
...
> +++ b/drivers/raw/common/multi_fn/rte_common_multi_fn_version.map
> @@ -0,0 +1,11 @@
> +EXPERIMENTAL {
> + global:
> +
> + rte_multi_fn_session_create;
> + rte_multi_fn_session_destroy;
> + rte_multi_fn_op_pool_create;
> + rte_multi_fn_op_bulk_alloc;
> + rte_multi_fn_op_free;
This list should be sorted alphabetically.
> +
> + local: *;
> +};
> diff --git a/drivers/raw/common/multi_fn/rte_multi_fn.c
> b/drivers/raw/common/multi_fn/rte_multi_fn.c
> new file mode 100644
> index 000000000..4f8e7fd94
> --- /dev/null
> +++ b/drivers/raw/common/multi_fn/rte_multi_fn.c
> @@ -0,0 +1,166 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2020 Intel Corporation.
> + */
> +
> +#include <ctype.h>
> +#include <stdio.h>
...
> +#include <rte_rawdev.h>
A bunch of these includes are not needed.
From what I could see, only <inttypes.h>, <rte_log.h>, <rte_common.h>,
<rte_rawdev.h> and <rte_mempool.h> are needed, apart from the two below.
> +
> +#include "rte_multi_fn_driver.h"
> +#include "rte_multi_fn.h"
...
> +++ b/drivers/raw/common/multi_fn/rte_multi_fn.h
> @@ -0,0 +1,350 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2020 Intel Corporation.
> + */
> +
> +#ifndef _RTE_MULTI_FN_H_
> +#define _RTE_MULTI_FN_H_
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +#include <rte_compat.h>
> +#include <rte_common.h>
> +#include <rte_mbuf.h>
> +#include <rte_memory.h>
> +#include <rte_mempool.h>
> +#include <rte_comp.h>
> +#include <rte_crypto.h>
> +#include <rte_rawdev.h>
Only <rte_comp.h> and <rte_crypto.h> are needed.
> +
...
> +__rte_experimental
> +static inline void
This is a public API, so I'd say this shouldn't be inline, right?
> +rte_multi_fn_op_free(struct rte_multi_fn_op *op) {
> + if (op != NULL && op->mempool != NULL)
> + rte_mempool_put(op->mempool, op);
> +}
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* _RTE_MULTI_FN_H_ */
> diff --git a/drivers/raw/common/multi_fn/rte_multi_fn_driver.h
> b/drivers/raw/common/multi_fn/rte_multi_fn_driver.h
> new file mode 100644
> index 000000000..7e1e57fa3
> --- /dev/null
> +++ b/drivers/raw/common/multi_fn/rte_multi_fn_driver.h
> @@ -0,0 +1,55 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2020 Intel Corporation.
> + */
> +
> +#ifndef _RTE_MULTI_FN_DRIVER_H_
> +#define _RTE_MULTI_FN_DRIVER_H_
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +#include <rte_compat.h>
> +#include <rte_common.h>
> +#include <rte_rawdev.h>
> +#include <rte_multi_fn.h>
> +
Only <rte_rawdev.h> and <rte_multi_fn.h> are needed.
Actually, since rte_multi_fn.h is in the same folder, you can use double quotes.
next prev parent reply other threads:[~2020-04-06 16:09 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-03 16:36 [dpdk-dev] [PATCH v2 0/4] introduce multi-function processing support David Coyle
2020-04-03 16:36 ` [dpdk-dev] [PATCH v2 1/4] raw/common: add multi-function interface David Coyle
2020-04-06 16:09 ` De Lara Guarch, Pablo [this message]
2020-04-10 14:33 ` Coyle, David
2020-04-07 18:56 ` De Lara Guarch, Pablo
2020-04-10 14:35 ` Coyle, David
2020-04-03 16:36 ` [dpdk-dev] [PATCH v2 2/4] raw/aesni_mb: add aesni_mb raw device David Coyle
2020-04-07 18:51 ` De Lara Guarch, Pablo
2020-04-08 10:44 ` De Lara Guarch, Pablo
2020-04-10 14:34 ` Coyle, David
2020-04-03 16:36 ` [dpdk-dev] [PATCH v2 3/4] test/rawdev: add aesni_mb raw device tests David Coyle
2020-04-03 16:36 ` [dpdk-dev] [PATCH v2 4/4] app/crypto-perf: add support for multi-function processing David Coyle
2020-04-07 18:55 ` De Lara Guarch, Pablo
2020-04-10 14:34 ` Coyle, David
2020-04-06 14:28 ` [dpdk-dev] [PATCH v2 0/4] introduce multi-function processing support Ferruh Yigit
2020-04-07 11:27 ` Coyle, David
2020-04-07 18:05 ` Trahe, Fiona
2020-04-09 9:25 ` Coyle, David
2020-04-09 9:37 ` Trahe, Fiona
2020-04-09 11:55 ` Coyle, David
2020-04-09 13:05 ` Trahe, Fiona
2020-04-08 9:18 ` 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=SN6PR11MB3101417EF4DE2140F7083EA184C20@SN6PR11MB3101.namprd11.prod.outlook.com \
--to=pablo.de.lara.guarch@intel.com \
--cc=brendan.ryan@intel.com \
--cc=david.coyle@intel.com \
--cc=declan.doherty@intel.com \
--cc=dev@dpdk.org \
--cc=fiona.trahe@intel.com \
--cc=hemant.agrawal@nxp.com \
--cc=mairtin.oloingsigh@intel.com \
--cc=shreyansh.jain@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
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).