From: Akhil Goyal <gakhil@marvell.com>
To: <dev@dpdk.org>
Cc: <anoobj@marvell.com>, <radu.nicolau@intel.com>,
<declan.doherty@intel.com>, <hemant.agrawal@nxp.com>,
<matan@nvidia.com>, <konstantin.ananyev@intel.com>,
<thomas@monjalon.net>, <roy.fan.zhang@intel.com>,
<asomalap@amd.com>, <ruifeng.wang@arm.com>,
<ajit.khaparde@broadcom.com>, <pablo.de.lara.guarch@intel.com>,
<fiona.trahe@intel.com>, <adwivedi@marvell.com>,
<michaelsh@marvell.com>, <rnagadheeraj@marvell.com>,
<jianjay.zhou@huawei.com>, Akhil Goyal <gakhil@marvell.com>
Subject: [dpdk-dev] [PATCH v3 2/4] cryptodev: change valid dev API
Date: Wed, 8 Sep 2021 00:30:18 +0530 [thread overview]
Message-ID: <20210907190020.2968234-3-gakhil@marvell.com> (raw)
In-Reply-To: <20210907190020.2968234-1-gakhil@marvell.com>
The API rte_cryptodev_pmd_is_valid_dev, can be used
by the application as well as PMD to check whether
the device is valid or not. Hence, _pmd is removed
from the API.
The applications and drivers which use this API are
also updated.
Signed-off-by: Akhil Goyal <gakhil@marvell.com>
---
doc/guides/rel_notes/release_21_11.rst | 4 ++
.../net/softnic/rte_eth_softnic_cryptodev.c | 2 +-
examples/fips_validation/main.c | 2 +-
examples/ip_pipeline/cryptodev.c | 3 +-
lib/cryptodev/rte_cryptodev.c | 50 +++++++++----------
lib/cryptodev/rte_cryptodev.h | 11 ++++
lib/cryptodev/rte_cryptodev_pmd.h | 11 ----
lib/cryptodev/version.map | 2 +-
lib/eventdev/rte_event_crypto_adapter.c | 4 +-
lib/eventdev/rte_eventdev.c | 2 +-
lib/pipeline/rte_table_action.c | 2 +-
11 files changed, 48 insertions(+), 45 deletions(-)
diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst
index 411fa9530a..e7ad50ba09 100644
--- a/doc/guides/rel_notes/release_21_11.rst
+++ b/doc/guides/rel_notes/release_21_11.rst
@@ -102,6 +102,10 @@ API Changes
Also, make sure to start the actual text at the margin.
=======================================================
+* cryptodev: The API rte_cryptodev_pmd_is_valid_dev is modified to
+ rte_cryptodev_is_valid_dev as it can be used by the application as
+ well as PMD to check whether the device is valid or not.
+
ABI Changes
-----------
diff --git a/drivers/net/softnic/rte_eth_softnic_cryptodev.c b/drivers/net/softnic/rte_eth_softnic_cryptodev.c
index a1a4ca5650..8e278801c5 100644
--- a/drivers/net/softnic/rte_eth_softnic_cryptodev.c
+++ b/drivers/net/softnic/rte_eth_softnic_cryptodev.c
@@ -82,7 +82,7 @@ softnic_cryptodev_create(struct pmd_internals *p,
dev_id = (uint32_t)status;
} else {
- if (rte_cryptodev_pmd_is_valid_dev(params->dev_id) == 0)
+ if (rte_cryptodev_is_valid_dev(params->dev_id) == 0)
return NULL;
dev_id = params->dev_id;
diff --git a/examples/fips_validation/main.c b/examples/fips_validation/main.c
index c175fe6ac2..e892078f0e 100644
--- a/examples/fips_validation/main.c
+++ b/examples/fips_validation/main.c
@@ -196,7 +196,7 @@ parse_cryptodev_id_arg(char *arg)
}
- if (!rte_cryptodev_pmd_is_valid_dev(cryptodev_id)) {
+ if (!rte_cryptodev_is_valid_dev(cryptodev_id)) {
RTE_LOG(ERR, USER1, "Error %i: invalid cryptodev id %s\n",
cryptodev_id, arg);
return -1;
diff --git a/examples/ip_pipeline/cryptodev.c b/examples/ip_pipeline/cryptodev.c
index b0d9f3d217..9997d97456 100644
--- a/examples/ip_pipeline/cryptodev.c
+++ b/examples/ip_pipeline/cryptodev.c
@@ -6,7 +6,6 @@
#include <stdio.h>
#include <rte_cryptodev.h>
-#include <rte_cryptodev_pmd.h>
#include <rte_string_fns.h>
#include "cryptodev.h"
@@ -74,7 +73,7 @@ cryptodev_create(const char *name, struct cryptodev_params *params)
dev_id = (uint32_t)status;
} else {
- if (rte_cryptodev_pmd_is_valid_dev(params->dev_id) == 0)
+ if (rte_cryptodev_is_valid_dev(params->dev_id) == 0)
return NULL;
dev_id = params->dev_id;
diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.c
index 447aa9d519..37502b9b3c 100644
--- a/lib/cryptodev/rte_cryptodev.c
+++ b/lib/cryptodev/rte_cryptodev.c
@@ -663,7 +663,7 @@ rte_cryptodev_is_valid_device_data(uint8_t dev_id)
}
unsigned int
-rte_cryptodev_pmd_is_valid_dev(uint8_t dev_id)
+rte_cryptodev_is_valid_dev(uint8_t dev_id)
{
struct rte_cryptodev *dev = NULL;
@@ -761,7 +761,7 @@ rte_cryptodev_socket_id(uint8_t dev_id)
{
struct rte_cryptodev *dev;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id))
+ if (!rte_cryptodev_is_valid_dev(dev_id))
return -1;
dev = rte_cryptodev_pmd_get_dev(dev_id);
@@ -1032,7 +1032,7 @@ rte_cryptodev_configure(uint8_t dev_id, struct rte_cryptodev_config *config)
struct rte_cryptodev *dev;
int diag;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -EINVAL;
}
@@ -1080,7 +1080,7 @@ rte_cryptodev_start(uint8_t dev_id)
CDEV_LOG_DEBUG("Start dev_id=%" PRIu8, dev_id);
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -EINVAL;
}
@@ -1110,7 +1110,7 @@ rte_cryptodev_stop(uint8_t dev_id)
{
struct rte_cryptodev *dev;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return;
}
@@ -1136,7 +1136,7 @@ rte_cryptodev_close(uint8_t dev_id)
struct rte_cryptodev *dev;
int retval;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -1;
}
@@ -1176,7 +1176,7 @@ rte_cryptodev_get_qp_status(uint8_t dev_id, uint16_t queue_pair_id)
{
struct rte_cryptodev *dev;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -EINVAL;
}
@@ -1207,7 +1207,7 @@ rte_cryptodev_queue_pair_setup(uint8_t dev_id, uint16_t queue_pair_id,
{
struct rte_cryptodev *dev;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -EINVAL;
}
@@ -1283,7 +1283,7 @@ rte_cryptodev_add_enq_callback(uint8_t dev_id,
return NULL;
}
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%d", dev_id);
rte_errno = ENODEV;
return NULL;
@@ -1349,7 +1349,7 @@ rte_cryptodev_remove_enq_callback(uint8_t dev_id,
return -EINVAL;
}
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%d", dev_id);
return -ENODEV;
}
@@ -1418,7 +1418,7 @@ rte_cryptodev_add_deq_callback(uint8_t dev_id,
return NULL;
}
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%d", dev_id);
rte_errno = ENODEV;
return NULL;
@@ -1484,7 +1484,7 @@ rte_cryptodev_remove_deq_callback(uint8_t dev_id,
return -EINVAL;
}
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%d", dev_id);
return -ENODEV;
}
@@ -1542,7 +1542,7 @@ rte_cryptodev_stats_get(uint8_t dev_id, struct rte_cryptodev_stats *stats)
{
struct rte_cryptodev *dev;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%d", dev_id);
return -ENODEV;
}
@@ -1565,7 +1565,7 @@ rte_cryptodev_stats_reset(uint8_t dev_id)
{
struct rte_cryptodev *dev;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return;
}
@@ -1581,7 +1581,7 @@ rte_cryptodev_info_get(uint8_t dev_id, struct rte_cryptodev_info *dev_info)
{
struct rte_cryptodev *dev;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%d", dev_id);
return;
}
@@ -1608,7 +1608,7 @@ rte_cryptodev_callback_register(uint8_t dev_id,
if (!cb_fn)
return -EINVAL;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -EINVAL;
}
@@ -1652,7 +1652,7 @@ rte_cryptodev_callback_unregister(uint8_t dev_id,
if (!cb_fn)
return -EINVAL;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -EINVAL;
}
@@ -1720,7 +1720,7 @@ rte_cryptodev_sym_session_init(uint8_t dev_id,
uint8_t index;
int ret;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -EINVAL;
}
@@ -1765,7 +1765,7 @@ rte_cryptodev_asym_session_init(uint8_t dev_id,
uint8_t index;
int ret;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -EINVAL;
}
@@ -1939,7 +1939,7 @@ rte_cryptodev_sym_session_clear(uint8_t dev_id,
struct rte_cryptodev *dev;
uint8_t driver_id;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -EINVAL;
}
@@ -1969,7 +1969,7 @@ rte_cryptodev_asym_session_clear(uint8_t dev_id,
{
struct rte_cryptodev *dev;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
return -EINVAL;
}
@@ -2079,7 +2079,7 @@ rte_cryptodev_sym_get_private_session_size(uint8_t dev_id)
struct rte_cryptodev *dev;
unsigned int priv_sess_size;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id))
+ if (!rte_cryptodev_is_valid_dev(dev_id))
return 0;
dev = rte_cryptodev_pmd_get_dev(dev_id);
@@ -2099,7 +2099,7 @@ rte_cryptodev_asym_get_private_session_size(uint8_t dev_id)
unsigned int header_size = sizeof(void *) * nb_drivers;
unsigned int priv_sess_size;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id))
+ if (!rte_cryptodev_is_valid_dev(dev_id))
return 0;
dev = rte_cryptodev_pmd_get_dev(dev_id);
@@ -2156,7 +2156,7 @@ rte_cryptodev_sym_cpu_crypto_process(uint8_t dev_id,
{
struct rte_cryptodev *dev;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
+ if (!rte_cryptodev_is_valid_dev(dev_id)) {
sym_crypto_fill_status(vec, EINVAL);
return 0;
}
@@ -2179,7 +2179,7 @@ rte_cryptodev_get_raw_dp_ctx_size(uint8_t dev_id)
int32_t size = sizeof(struct rte_crypto_raw_dp_ctx);
int32_t priv_size;
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id))
+ if (!rte_cryptodev_is_valid_dev(dev_id))
return -EINVAL;
dev = rte_cryptodev_pmd_get_dev(dev_id);
diff --git a/lib/cryptodev/rte_cryptodev.h b/lib/cryptodev/rte_cryptodev.h
index 11f4e6fdbf..bb01f0f195 100644
--- a/lib/cryptodev/rte_cryptodev.h
+++ b/lib/cryptodev/rte_cryptodev.h
@@ -1368,6 +1368,17 @@ __rte_experimental
unsigned int
rte_cryptodev_asym_get_private_session_size(uint8_t dev_id);
+/**
+ * Validate if the crypto device index is valid attached crypto device.
+ *
+ * @param dev_id Crypto device index.
+ *
+ * @return
+ * - If the device index is valid (1) or not (0).
+ */
+unsigned int
+rte_cryptodev_is_valid_dev(uint8_t dev_id);
+
/**
* Provide driver identifier.
*
diff --git a/lib/cryptodev/rte_cryptodev_pmd.h b/lib/cryptodev/rte_cryptodev_pmd.h
index 1274436870..dd2a4940a2 100644
--- a/lib/cryptodev/rte_cryptodev_pmd.h
+++ b/lib/cryptodev/rte_cryptodev_pmd.h
@@ -94,17 +94,6 @@ rte_cryptodev_pmd_get_dev(uint8_t dev_id);
struct rte_cryptodev *
rte_cryptodev_pmd_get_named_dev(const char *name);
-/**
- * Validate if the crypto device index is valid attached crypto device.
- *
- * @param dev_id Crypto device index.
- *
- * @return
- * - If the device index is valid (1) or not (0).
- */
-unsigned int
-rte_cryptodev_pmd_is_valid_dev(uint8_t dev_id);
-
/**
* The pool of rte_cryptodev structures.
*/
diff --git a/lib/cryptodev/version.map b/lib/cryptodev/version.map
index 979d823a7c..1a7f759c57 100644
--- a/lib/cryptodev/version.map
+++ b/lib/cryptodev/version.map
@@ -25,6 +25,7 @@ DPDK_22 {
rte_cryptodev_get_feature_name;
rte_cryptodev_get_sec_ctx;
rte_cryptodev_info_get;
+ rte_cryptodev_is_valid_dev;
rte_cryptodev_name_get;
rte_cryptodev_pmd_allocate;
rte_cryptodev_pmd_callback_process;
@@ -33,7 +34,6 @@ DPDK_22 {
rte_cryptodev_pmd_destroy;
rte_cryptodev_pmd_get_dev;
rte_cryptodev_pmd_get_named_dev;
- rte_cryptodev_pmd_is_valid_dev;
rte_cryptodev_pmd_parse_input_args;
rte_cryptodev_pmd_release_device;
rte_cryptodev_queue_pair_count;
diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c
index e1d38d383d..2d38389858 100644
--- a/lib/eventdev/rte_event_crypto_adapter.c
+++ b/lib/eventdev/rte_event_crypto_adapter.c
@@ -781,7 +781,7 @@ rte_event_crypto_adapter_queue_pair_add(uint8_t id,
EVENT_CRYPTO_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL);
- if (!rte_cryptodev_pmd_is_valid_dev(cdev_id)) {
+ if (!rte_cryptodev_is_valid_dev(cdev_id)) {
RTE_EDEV_LOG_ERR("Invalid dev_id=%" PRIu8, cdev_id);
return -EINVAL;
}
@@ -898,7 +898,7 @@ rte_event_crypto_adapter_queue_pair_del(uint8_t id, uint8_t cdev_id,
EVENT_CRYPTO_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL);
- if (!rte_cryptodev_pmd_is_valid_dev(cdev_id)) {
+ if (!rte_cryptodev_is_valid_dev(cdev_id)) {
RTE_EDEV_LOG_ERR("Invalid dev_id=%" PRIu8, cdev_id);
return -EINVAL;
}
diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c
index 594dd5e759..cb0ed7b620 100644
--- a/lib/eventdev/rte_eventdev.c
+++ b/lib/eventdev/rte_eventdev.c
@@ -165,7 +165,7 @@ rte_event_crypto_adapter_caps_get(uint8_t dev_id, uint8_t cdev_id,
struct rte_cryptodev *cdev;
RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL);
- if (!rte_cryptodev_pmd_is_valid_dev(cdev_id))
+ if (!rte_cryptodev_is_valid_dev(cdev_id))
return -EINVAL;
dev = &rte_eventdevs[dev_id];
diff --git a/lib/pipeline/rte_table_action.c b/lib/pipeline/rte_table_action.c
index 98f3438774..54721ed96a 100644
--- a/lib/pipeline/rte_table_action.c
+++ b/lib/pipeline/rte_table_action.c
@@ -1732,7 +1732,7 @@ struct sym_crypto_data {
static int
sym_crypto_cfg_check(struct rte_table_action_sym_crypto_config *cfg)
{
- if (!rte_cryptodev_pmd_is_valid_dev(cfg->cryptodev_id))
+ if (!rte_cryptodev_is_valid_dev(cfg->cryptodev_id))
return -EINVAL;
if (cfg->mp_create == NULL || cfg->mp_init == NULL)
return -EINVAL;
--
2.25.1
next prev parent reply other threads:[~2021-09-07 19:00 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-05 20:02 [dpdk-dev] [PATCH 0/4] cryptodev: expose driver interface as internal Akhil Goyal
2021-08-05 20:02 ` [dpdk-dev] [PATCH 1/4] test/crypto: remove illegal header include Akhil Goyal
2021-08-30 20:16 ` Zhang, Roy Fan
2021-08-05 20:02 ` [dpdk-dev] [PATCH 2/4] cryptodev: change valid dev API Akhil Goyal
2021-08-30 20:16 ` Zhang, Roy Fan
2021-08-05 20:02 ` [dpdk-dev] [PATCH 3/4] examples/fips_validation: remove illegal usage of APIs Akhil Goyal
2021-08-05 20:02 ` [dpdk-dev] [PATCH 4/4] cryptodev: expose driver interface as internal Akhil Goyal
2021-08-10 19:50 ` [dpdk-dev] [PATCH v2 0/4] " Akhil Goyal
2021-08-10 19:50 ` [dpdk-dev] [PATCH v2 1/4] test/crypto: remove illegal header include Akhil Goyal
2021-08-11 6:52 ` Matan Azrad
2021-08-10 19:50 ` [dpdk-dev] [PATCH v2 2/4] cryptodev: change valid dev API Akhil Goyal
2021-08-11 6:54 ` Matan Azrad
2021-08-11 8:12 ` Akhil Goyal
2021-08-10 19:50 ` [dpdk-dev] [PATCH v2 3/4] examples/fips_validation: remove illegal usage of APIs Akhil Goyal
2021-08-11 6:56 ` Matan Azrad
2021-08-11 8:19 ` Akhil Goyal
2021-08-30 20:27 ` Zhang, Roy Fan
2021-08-31 7:03 ` Akhil Goyal
2021-08-31 8:38 ` Zhang, Roy Fan
2021-08-10 19:50 ` [dpdk-dev] [PATCH v2 4/4] cryptodev: expose driver interface as internal Akhil Goyal
2021-08-11 7:00 ` Matan Azrad
2021-08-11 8:20 ` Akhil Goyal
2021-08-30 20:30 ` Zhang, Roy Fan
2021-09-07 19:00 ` [dpdk-dev] [PATCH v3 0/4] " Akhil Goyal
2021-09-07 19:00 ` [dpdk-dev] [PATCH v3 1/4] test/crypto: remove illegal header include Akhil Goyal
2021-09-07 19:00 ` Akhil Goyal [this message]
2021-09-07 19:00 ` [dpdk-dev] [PATCH v3 3/4] examples/fips_validation: remove illegal usage of APIs Akhil Goyal
2021-09-07 19:00 ` [dpdk-dev] [PATCH v3 4/4] cryptodev: expose driver interface as internal Akhil Goyal
2021-09-07 19:22 ` [dpdk-dev] [PATCH v4 0/4] " Akhil Goyal
2021-09-07 19:22 ` [dpdk-dev] [PATCH v4 1/4] test/crypto: remove illegal header include Akhil Goyal
2021-09-08 6:38 ` Hemant Agrawal
2021-09-08 8:05 ` [dpdk-dev] [EXT] " Akhil Goyal
2021-09-07 19:22 ` [dpdk-dev] [PATCH v4 2/4] cryptodev: change valid dev API Akhil Goyal
2021-09-08 15:16 ` Akhil Goyal
2021-09-07 19:22 ` [dpdk-dev] [PATCH v4 3/4] examples/fips_validation: remove illegal usage of APIs Akhil Goyal
2021-09-07 19:22 ` [dpdk-dev] [PATCH v4 4/4] cryptodev: expose driver interface as internal Akhil Goyal
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=20210907190020.2968234-3-gakhil@marvell.com \
--to=gakhil@marvell.com \
--cc=adwivedi@marvell.com \
--cc=ajit.khaparde@broadcom.com \
--cc=anoobj@marvell.com \
--cc=asomalap@amd.com \
--cc=declan.doherty@intel.com \
--cc=dev@dpdk.org \
--cc=fiona.trahe@intel.com \
--cc=hemant.agrawal@nxp.com \
--cc=jianjay.zhou@huawei.com \
--cc=konstantin.ananyev@intel.com \
--cc=matan@nvidia.com \
--cc=michaelsh@marvell.com \
--cc=pablo.de.lara.guarch@intel.com \
--cc=radu.nicolau@intel.com \
--cc=rnagadheeraj@marvell.com \
--cc=roy.fan.zhang@intel.com \
--cc=ruifeng.wang@arm.com \
--cc=thomas@monjalon.net \
/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).