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>, <jerinj@marvell.com>,
Akhil Goyal <gakhil@marvell.com>
Subject: [dpdk-dev] [PATCH 5/8] drivers/crypto: use new framework for datapath
Date: Sun, 29 Aug 2021 18:21:36 +0530 [thread overview]
Message-ID: <20210829125139.2173235-6-gakhil@marvell.com> (raw)
In-Reply-To: <20210829125139.2173235-1-gakhil@marvell.com>
All crypto drivers are updated to use the new API
for all enqueue and dequeue paths.
Signed-off-by: Akhil Goyal <gakhil@marvell.com>
---
drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 10 ++++++++--
drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 11 +++++++++--
drivers/crypto/armv8/rte_armv8_pmd.c | 11 +++++++++--
drivers/crypto/bcmfs/bcmfs_sym_pmd.c | 11 +++++++++--
drivers/crypto/caam_jr/caam_jr.c | 11 +++++++++--
drivers/crypto/ccp/ccp_dev.c | 1 +
drivers/crypto/ccp/rte_ccp_pmd.c | 11 +++++++++--
drivers/crypto/cnxk/cn10k_cryptodev_ops.c | 8 ++++++--
drivers/crypto/cnxk/cn10k_cryptodev_ops.h | 3 +++
drivers/crypto/cnxk/cn10k_ipsec.c | 1 +
drivers/crypto/cnxk/cn9k_cryptodev_ops.c | 9 +++++++--
drivers/crypto/cnxk/cn9k_cryptodev_ops.h | 3 +++
.../crypto/cnxk/cnxk_cryptodev_capabilities.c | 1 +
drivers/crypto/cnxk/cnxk_cryptodev_sec.c | 1 +
drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 12 ++++++++++--
drivers/crypto/dpaa_sec/dpaa_sec.c | 11 +++++++++--
drivers/crypto/kasumi/rte_kasumi_pmd.c | 11 +++++++++--
drivers/crypto/mlx5/mlx5_crypto.c | 11 +++++++++--
drivers/crypto/mvsam/rte_mrvl_pmd.c | 11 +++++++++--
drivers/crypto/nitrox/nitrox_sym.c | 11 +++++++++--
drivers/crypto/nitrox/nitrox_sym_reqmgr.c | 1 +
drivers/crypto/null/null_crypto_pmd.c | 11 +++++++++--
.../crypto/octeontx/otx_cryptodev_hw_access.c | 1 +
drivers/crypto/octeontx/otx_cryptodev_ops.c | 16 ++++++++++++----
drivers/crypto/octeontx/otx_cryptodev_ops.h | 5 +++++
drivers/crypto/octeontx2/otx2_cryptodev_mbox.c | 1 +
drivers/crypto/octeontx2/otx2_cryptodev_ops.c | 11 +++++++++--
drivers/crypto/openssl/rte_openssl_pmd.c | 11 +++++++++--
drivers/crypto/qat/qat_asym_pmd.c | 11 +++++++++--
drivers/crypto/qat/qat_sym_pmd.c | 10 ++++++++--
drivers/crypto/snow3g/rte_snow3g_pmd.c | 11 +++++++++--
drivers/crypto/virtio/virtio_cryptodev.c | 10 ++++++----
drivers/crypto/virtio/virtio_cryptodev.h | 2 ++
drivers/crypto/virtio/virtio_rxtx.c | 2 ++
drivers/crypto/zuc/rte_zuc_pmd.c | 11 +++++++++--
35 files changed, 223 insertions(+), 50 deletions(-)
diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
index 330aad8157..35c89318fe 100644
--- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
+++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
@@ -14,6 +14,8 @@
#include "aesni_gcm_pmd_private.h"
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(aesni_gcm_pmd_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(aesni_gcm_pmd_dequeue_burst);
/* setup session handlers */
static void
@@ -758,6 +760,7 @@ aesni_gcm_pmd_dequeue_burst(void *queue_pair,
return i;
}
+_RTE_CRYPTO_DEQ_DEF(aesni_gcm_pmd_dequeue_burst)
static uint16_t
aesni_gcm_pmd_enqueue_burst(void *queue_pair,
@@ -773,6 +776,7 @@ aesni_gcm_pmd_enqueue_burst(void *queue_pair,
return nb_enqueued;
}
+_RTE_CRYPTO_ENQ_DEF(aesni_gcm_pmd_enqueue_burst)
static int aesni_gcm_remove(struct rte_vdev_device *vdev);
@@ -807,8 +811,10 @@ aesni_gcm_create(const char *name,
dev->dev_ops = rte_aesni_gcm_pmd_ops;
/* register rx/tx burst functions for data path */
- dev->dequeue_burst = aesni_gcm_pmd_dequeue_burst;
- dev->enqueue_burst = aesni_gcm_pmd_enqueue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(aesni_gcm_pmd_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(aesni_gcm_pmd_dequeue_burst));
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
index 60963a8208..bd7a928583 100644
--- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
+++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
@@ -30,6 +30,8 @@ static RTE_DEFINE_PER_LCORE(MB_MGR *, sync_mb_mgr);
typedef void (*hash_one_block_t)(const void *data, void *digest);
typedef void (*aes_keyexp_t)(const void *key, void *enc_exp_keys, void *dec_exp_keys);
+_RTE_CRYPTO_ENQ_PROTO(aesni_mb_pmd_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(aesni_mb_pmd_dequeue_burst);
/**
* Calculate the authentication pre-computes
*
@@ -1005,6 +1007,7 @@ aesni_mb_pmd_enqueue_burst(void *__qp, struct rte_crypto_op **ops,
return nb_enqueued;
}
+_RTE_CRYPTO_ENQ_DEF(aesni_mb_pmd_enqueue_burst)
/** Get multi buffer session */
static inline struct aesni_mb_session *
@@ -1872,6 +1875,8 @@ aesni_mb_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
return processed_jobs;
}
+_RTE_CRYPTO_DEQ_DEF(aesni_mb_pmd_dequeue_burst)
+
static MB_MGR *
alloc_init_mb_mgr(enum aesni_mb_vector_mode vector_mode)
@@ -2097,8 +2102,10 @@ cryptodev_aesni_mb_create(const char *name,
dev->dev_ops = rte_aesni_mb_pmd_ops;
/* register rx/tx burst functions for data path */
- dev->dequeue_burst = aesni_mb_pmd_dequeue_burst;
- dev->enqueue_burst = aesni_mb_pmd_enqueue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(aesni_mb_pmd_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(aesni_mb_pmd_dequeue_burst));
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/armv8/rte_armv8_pmd.c b/drivers/crypto/armv8/rte_armv8_pmd.c
index 36a1a9bb4f..6a283df3b7 100644
--- a/drivers/crypto/armv8/rte_armv8_pmd.c
+++ b/drivers/crypto/armv8/rte_armv8_pmd.c
@@ -18,6 +18,9 @@
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(armv8_crypto_pmd_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(armv8_crypto_pmd_dequeue_burst);
+
static int cryptodev_armv8_crypto_uninit(struct rte_vdev_device *vdev);
/**
@@ -731,6 +734,7 @@ armv8_crypto_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
qp->stats.enqueue_err_count++;
return retval;
}
+_RTE_CRYPTO_ENQ_DEF(armv8_crypto_pmd_enqueue_burst)
/** Dequeue burst */
static uint16_t
@@ -747,6 +751,7 @@ armv8_crypto_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
return nb_dequeued;
}
+_RTE_CRYPTO_DEQ_DEF(armv8_crypto_pmd_dequeue_burst)
/** Create ARMv8 crypto device */
static int
@@ -789,8 +794,10 @@ cryptodev_armv8_crypto_create(const char *name,
dev->dev_ops = rte_armv8_crypto_pmd_ops;
/* register rx/tx burst functions for data path */
- dev->dequeue_burst = armv8_crypto_pmd_dequeue_burst;
- dev->enqueue_burst = armv8_crypto_pmd_enqueue_burst;
+ rte_crypto_set_enq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(armv8_crypto_pmd_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(armv8_crypto_pmd_dequeue_burst));
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/bcmfs/bcmfs_sym_pmd.c b/drivers/crypto/bcmfs/bcmfs_sym_pmd.c
index d1dd22823e..f2f6f53e71 100644
--- a/drivers/crypto/bcmfs/bcmfs_sym_pmd.c
+++ b/drivers/crypto/bcmfs/bcmfs_sym_pmd.c
@@ -19,6 +19,9 @@
uint8_t cryptodev_bcmfs_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(bcmfs_sym_pmd_enqueue_op_burst);
+_RTE_CRYPTO_DEQ_PROTO(bcmfs_sym_pmd_dequeue_op_burst);
+
static int bcmfs_sym_qp_release(struct rte_cryptodev *dev,
uint16_t queue_pair_id);
@@ -298,6 +301,7 @@ bcmfs_sym_pmd_enqueue_op_burst(void *queue_pair,
return enq;
}
+_RTE_CRYPTO_ENQ_DEF(bcmfs_sym_pmd_enqueue_op_burst)
static void bcmfs_sym_set_request_status(struct rte_crypto_op *op,
struct bcmfs_sym_request *out)
@@ -339,6 +343,7 @@ bcmfs_sym_pmd_dequeue_op_burst(void *queue_pair,
return pkts;
}
+_RTE_CRYPTO_DEQ_DEF(bcmfs_sym_pmd_dequeue_op_burst)
/*
* An rte_driver is needed in the registration of both the
@@ -380,8 +385,10 @@ bcmfs_sym_dev_create(struct bcmfs_device *fsdev)
cryptodev->driver_id = cryptodev_bcmfs_driver_id;
cryptodev->dev_ops = &crypto_bcmfs_ops;
- cryptodev->enqueue_burst = bcmfs_sym_pmd_enqueue_op_burst;
- cryptodev->dequeue_burst = bcmfs_sym_pmd_dequeue_op_burst;
+ rte_crypto_set_enq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(bcmfs_sym_pmd_enqueue_op_burst));
+ rte_crypto_set_deq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(bcmfs_sym_pmd_dequeue_op_burst));
cryptodev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/caam_jr/caam_jr.c b/drivers/crypto/caam_jr/caam_jr.c
index 258750afe7..ffc88de1af 100644
--- a/drivers/crypto/caam_jr/caam_jr.c
+++ b/drivers/crypto/caam_jr/caam_jr.c
@@ -36,6 +36,9 @@
#define CRYPTODEV_NAME_CAAM_JR_PMD crypto_caam_jr
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(caam_jr_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(caam_jr_dequeue_burst);
+
/* Lists the states possible for the SEC user space driver. */
enum sec_driver_state_e {
SEC_DRIVER_STATE_IDLE, /* Driver not initialized */
@@ -697,6 +700,7 @@ caam_jr_dequeue_burst(void *qp, struct rte_crypto_op **ops,
return num_rx;
}
+_RTE_CRYPTO_DEQ_DEF(caam_jr_dequeue_burst)
/**
* packet looks like:
@@ -1485,6 +1489,7 @@ caam_jr_enqueue_burst(void *qp, struct rte_crypto_op **ops,
return num_tx;
}
+_RTE_CRYPTO_ENQ_DEF(caam_jr_enqueue_burst)
/* Release queue pair */
static int
@@ -2333,8 +2338,10 @@ caam_jr_dev_init(const char *name,
dev->dev_ops = &caam_jr_ops;
/* register rx/tx burst functions for data path */
- dev->dequeue_burst = caam_jr_dequeue_burst;
- dev->enqueue_burst = caam_jr_enqueue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(caam_jr_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(caam_jr_dequeue_burst));
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_HW_ACCELERATED |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/ccp/ccp_dev.c b/drivers/crypto/ccp/ccp_dev.c
index 0eb1b0328e..60533cb5fc 100644
--- a/drivers/crypto/ccp/ccp_dev.c
+++ b/drivers/crypto/ccp/ccp_dev.c
@@ -12,6 +12,7 @@
#include <sys/file.h>
#include <unistd.h>
+#include <cryptodev_pmd.h>
#include <rte_hexdump.h>
#include <rte_memzone.h>
#include <rte_malloc.h>
diff --git a/drivers/crypto/ccp/rte_ccp_pmd.c b/drivers/crypto/ccp/rte_ccp_pmd.c
index a54d81de46..67b880f2ca 100644
--- a/drivers/crypto/ccp/rte_ccp_pmd.c
+++ b/drivers/crypto/ccp/rte_ccp_pmd.c
@@ -34,6 +34,9 @@ struct ccp_pmd_init_params {
#define CCP_CRYPTODEV_PARAM_MAX_NB_QP ("max_nb_queue_pairs")
#define CCP_CRYPTODEV_PARAM_AUTH_OPT ("ccp_auth_opt")
+_RTE_CRYPTO_ENQ_PROTO(ccp_pmd_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(ccp_pmd_dequeue_burst);
+
const char *ccp_pmd_valid_params[] = {
CCP_CRYPTODEV_PARAM_NAME,
CCP_CRYPTODEV_PARAM_SOCKET_ID,
@@ -140,6 +143,7 @@ ccp_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
qp->qp_stats.enqueued_count += enq_cnt;
return enq_cnt;
}
+_RTE_CRYPTO_ENQ_DEF(ccp_pmd_enqueue_burst)
static uint16_t
ccp_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
@@ -176,6 +180,7 @@ ccp_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
return nb_dequeued;
}
+_RTE_CRYPTO_DEQ_DEF(ccp_pmd_dequeue_burst)
/*
* The set of PCI devices this driver supports
@@ -257,8 +262,10 @@ cryptodev_ccp_create(const char *name,
/* register rx/tx burst functions for data path */
dev->dev_ops = ccp_pmd_ops;
- dev->enqueue_burst = ccp_pmd_enqueue_burst;
- dev->dequeue_burst = ccp_pmd_dequeue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(ccp_pmd_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(ccp_pmd_dequeue_burst));
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_HW_ACCELERATED |
diff --git a/drivers/crypto/cnxk/cn10k_cryptodev_ops.c b/drivers/crypto/cnxk/cn10k_cryptodev_ops.c
index d9b53128bc..4081bd778c 100644
--- a/drivers/crypto/cnxk/cn10k_cryptodev_ops.c
+++ b/drivers/crypto/cnxk/cn10k_cryptodev_ops.c
@@ -256,6 +256,7 @@ cn10k_cpt_enqueue_burst(void *qptr, struct rte_crypto_op **ops, uint16_t nb_ops)
return count + i;
}
+_RTE_CRYPTO_ENQ_DEF(cn10k_cpt_enqueue_burst)
static inline void
cn10k_cpt_sec_post_process(struct rte_crypto_op *cop,
@@ -414,12 +415,15 @@ cn10k_cpt_dequeue_burst(void *qptr, struct rte_crypto_op **ops, uint16_t nb_ops)
return i;
}
+_RTE_CRYPTO_DEQ_DEF(cn10k_cpt_dequeue_burst)
void
cn10k_cpt_set_enqdeq_fns(struct rte_cryptodev *dev)
{
- dev->enqueue_burst = cn10k_cpt_enqueue_burst;
- dev->dequeue_burst = cn10k_cpt_dequeue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(cn10k_cpt_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(cn10k_cpt_dequeue_burst));
rte_mb();
}
diff --git a/drivers/crypto/cnxk/cn10k_cryptodev_ops.h b/drivers/crypto/cnxk/cn10k_cryptodev_ops.h
index 198e9ea5bd..05b30e6d0b 100644
--- a/drivers/crypto/cnxk/cn10k_cryptodev_ops.h
+++ b/drivers/crypto/cnxk/cn10k_cryptodev_ops.h
@@ -10,6 +10,9 @@
extern struct rte_cryptodev_ops cn10k_cpt_ops;
+_RTE_CRYPTO_ENQ_PROTO(cn10k_cpt_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(cn10k_cpt_dequeue_burst);
+
void cn10k_cpt_set_enqdeq_fns(struct rte_cryptodev *dev);
#endif /* _CN10K_CRYPTODEV_OPS_H_ */
diff --git a/drivers/crypto/cnxk/cn10k_ipsec.c b/drivers/crypto/cnxk/cn10k_ipsec.c
index 1d567bf188..c51d5d55c6 100644
--- a/drivers/crypto/cnxk/cn10k_ipsec.c
+++ b/drivers/crypto/cnxk/cn10k_ipsec.c
@@ -9,6 +9,7 @@
#include <rte_security.h>
#include <rte_security_driver.h>
#include <rte_udp.h>
+#include <cryptodev_pmd.h>
#include "cnxk_cryptodev.h"
#include "cnxk_ipsec.h"
diff --git a/drivers/crypto/cnxk/cn9k_cryptodev_ops.c b/drivers/crypto/cnxk/cn9k_cryptodev_ops.c
index 97fbf780fe..6a15974d6f 100644
--- a/drivers/crypto/cnxk/cn9k_cryptodev_ops.c
+++ b/drivers/crypto/cnxk/cn9k_cryptodev_ops.c
@@ -175,6 +175,7 @@ cn9k_cpt_enqueue_burst(void *qptr, struct rte_crypto_op **ops, uint16_t nb_ops)
return count;
}
+_RTE_CRYPTO_ENQ_DEF(cn9k_cpt_enqueue_burst)
static inline void
cn9k_cpt_dequeue_post_process(struct cnxk_cpt_qp *qp, struct rte_crypto_op *cop,
@@ -299,11 +300,15 @@ cn9k_cpt_dequeue_burst(void *qptr, struct rte_crypto_op **ops, uint16_t nb_ops)
return i;
}
+_RTE_CRYPTO_DEQ_DEF(cn9k_cpt_dequeue_burst)
+
void
cn9k_cpt_set_enqdeq_fns(struct rte_cryptodev *dev)
{
- dev->enqueue_burst = cn9k_cpt_enqueue_burst;
- dev->dequeue_burst = cn9k_cpt_dequeue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(cn9k_cpt_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(cn9k_cpt_dequeue_burst));
rte_mb();
}
diff --git a/drivers/crypto/cnxk/cn9k_cryptodev_ops.h b/drivers/crypto/cnxk/cn9k_cryptodev_ops.h
index d042d18474..4e6bfe6971 100644
--- a/drivers/crypto/cnxk/cn9k_cryptodev_ops.h
+++ b/drivers/crypto/cnxk/cn9k_cryptodev_ops.h
@@ -9,6 +9,9 @@
extern struct rte_cryptodev_ops cn9k_cpt_ops;
+_RTE_CRYPTO_ENQ_PROTO(cn9k_cpt_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(cn9k_cpt_dequeue_burst);
+
void cn9k_cpt_set_enqdeq_fns(struct rte_cryptodev *dev);
#endif /* _CN9K_CRYPTODEV_OPS_H_ */
diff --git a/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c b/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
index ab37f9c43b..7db388b3d6 100644
--- a/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
+++ b/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
@@ -4,6 +4,7 @@
#include <rte_cryptodev.h>
#include <rte_security.h>
+#include <cryptodev_pmd.h>
#include "roc_api.h"
diff --git a/drivers/crypto/cnxk/cnxk_cryptodev_sec.c b/drivers/crypto/cnxk/cnxk_cryptodev_sec.c
index 8d04d4b575..293d1a18fe 100644
--- a/drivers/crypto/cnxk/cnxk_cryptodev_sec.c
+++ b/drivers/crypto/cnxk/cnxk_cryptodev_sec.c
@@ -6,6 +6,7 @@
#include <rte_malloc.h>
#include <rte_security.h>
#include <rte_security_driver.h>
+#include <cryptodev_pmd.h>
#include "cnxk_cryptodev_capabilities.h"
#include "cnxk_cryptodev_sec.h"
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index bf69c61916..26c00b2c3d 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -59,6 +59,9 @@
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(dpaa2_sec_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(dpaa2_sec_dequeue_burst);
+
#ifdef RTE_LIB_SECURITY
static inline int
build_proto_compound_sg_fd(dpaa2_sec_session *sess,
@@ -1524,6 +1527,7 @@ dpaa2_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
dpaa2_qp->tx_vq.err_pkts += nb_ops;
return num_tx;
}
+_RTE_CRYPTO_ENQ_DEF(dpaa2_sec_enqueue_burst)
#ifdef RTE_LIB_SECURITY
static inline struct rte_crypto_op *
@@ -1727,6 +1731,8 @@ dpaa2_sec_dequeue_burst(void *qp, struct rte_crypto_op **ops,
return num_rx;
}
+_RTE_CRYPTO_DEQ_DEF(dpaa2_sec_dequeue_burst)
+
/** Release queue pair */
static int
dpaa2_sec_queue_pair_release(struct rte_cryptodev *dev, uint16_t queue_pair_id)
@@ -3881,8 +3887,10 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
cryptodev->driver_id = cryptodev_driver_id;
cryptodev->dev_ops = &crypto_ops;
- cryptodev->enqueue_burst = dpaa2_sec_enqueue_burst;
- cryptodev->dequeue_burst = dpaa2_sec_dequeue_burst;
+ rte_crypto_set_enq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(dpaa2_sec_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(dpaa2_sec_dequeue_burst));
cryptodev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_HW_ACCELERATED |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 3d53746ef1..6e998c589b 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -47,6 +47,9 @@
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(dpaa_sec_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(dpaa_sec_dequeue_burst);
+
static int
dpaa_sec_attach_sess_q(struct dpaa_sec_qp *qp, dpaa_sec_session *sess);
@@ -1916,6 +1919,7 @@ dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
return num_tx;
}
+_RTE_CRYPTO_ENQ_DEF(dpaa_sec_enqueue_burst)
static uint16_t
dpaa_sec_dequeue_burst(void *qp, struct rte_crypto_op **ops,
@@ -1940,6 +1944,7 @@ dpaa_sec_dequeue_burst(void *qp, struct rte_crypto_op **ops,
return num_rx;
}
+_RTE_CRYPTO_DEQ_DEF(dpaa_sec_dequeue_burst)
/** Release queue pair */
static int
@@ -3365,8 +3370,10 @@ dpaa_sec_dev_init(struct rte_cryptodev *cryptodev)
cryptodev->driver_id = cryptodev_driver_id;
cryptodev->dev_ops = &crypto_ops;
- cryptodev->enqueue_burst = dpaa_sec_enqueue_burst;
- cryptodev->dequeue_burst = dpaa_sec_dequeue_burst;
+ rte_crypto_set_enq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(dpaa_sec_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(dpaa_sec_dequeue_burst));
cryptodev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_HW_ACCELERATED |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/kasumi/rte_kasumi_pmd.c b/drivers/crypto/kasumi/rte_kasumi_pmd.c
index d6f927417a..9cf79b323e 100644
--- a/drivers/crypto/kasumi/rte_kasumi_pmd.c
+++ b/drivers/crypto/kasumi/rte_kasumi_pmd.c
@@ -19,6 +19,9 @@
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(kasumi_pmd_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(kasumi_pmd_dequeue_burst);
+
/** Get xform chain order. */
static enum kasumi_operation
kasumi_get_mode(const struct rte_crypto_sym_xform *xform)
@@ -508,6 +511,7 @@ kasumi_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
qp->qp_stats.enqueue_err_count += nb_ops - enqueued_ops;
return enqueued_ops;
}
+_RTE_CRYPTO_ENQ_DEF(kasumi_pmd_enqueue_burst)
static uint16_t
kasumi_pmd_dequeue_burst(void *queue_pair,
@@ -523,6 +527,7 @@ kasumi_pmd_dequeue_burst(void *queue_pair,
return nb_dequeued;
}
+_RTE_CRYPTO_DEQ_DEF(kasumi_pmd_dequeue_burst)
static int cryptodev_kasumi_remove(struct rte_vdev_device *vdev);
@@ -545,8 +550,10 @@ cryptodev_kasumi_create(const char *name,
dev->dev_ops = rte_kasumi_pmd_ops;
/* Register RX/TX burst functions for data path. */
- dev->dequeue_burst = kasumi_pmd_dequeue_burst;
- dev->enqueue_burst = kasumi_pmd_enqueue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(kasumi_pmd_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(kasumi_pmd_dequeue_burst));
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c
index b3d5200ca3..ec054d0863 100644
--- a/drivers/crypto/mlx5/mlx5_crypto.c
+++ b/drivers/crypto/mlx5/mlx5_crypto.c
@@ -39,6 +39,9 @@ int mlx5_crypto_logtype;
uint8_t mlx5_crypto_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(mlx5_crypto_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(mlx5_crypto_dequeue_burst);
+
const struct rte_cryptodev_capabilities mlx5_crypto_caps[] = {
{ /* AES XTS */
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
@@ -523,6 +526,7 @@ mlx5_crypto_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
rte_wmb();
return nb_ops;
}
+_RTE_CRYPTO_ENQ_DEF(mlx5_crypto_enqueue_burst)
static __rte_noinline void
mlx5_crypto_cqe_err_handle(struct mlx5_crypto_qp *qp, struct rte_crypto_op *op)
@@ -576,6 +580,7 @@ mlx5_crypto_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
}
return i;
}
+_RTE_CRYPTO_DEQ_DEF(mlx5_crypto_dequeue_burst)
static void
mlx5_crypto_qp_init(struct mlx5_crypto_priv *priv, struct mlx5_crypto_qp *qp)
@@ -1041,8 +1046,10 @@ mlx5_crypto_dev_probe(struct rte_device *dev)
DRV_LOG(INFO,
"Crypto device %s was created successfully.", ibv->name);
crypto_dev->dev_ops = &mlx5_crypto_ops;
- crypto_dev->dequeue_burst = mlx5_crypto_dequeue_burst;
- crypto_dev->enqueue_burst = mlx5_crypto_enqueue_burst;
+ rte_crypto_set_enq_burst_fn(crypto_dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(mlx5_crypto_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(crypto_dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(mlx5_crypto_dequeue_burst));
crypto_dev->feature_flags = MLX5_CRYPTO_FEATURE_FLAGS;
crypto_dev->driver_id = mlx5_crypto_driver_id;
priv = crypto_dev->data->dev_private;
diff --git a/drivers/crypto/mvsam/rte_mrvl_pmd.c b/drivers/crypto/mvsam/rte_mrvl_pmd.c
index a72642a772..7c8f3fdde4 100644
--- a/drivers/crypto/mvsam/rte_mrvl_pmd.c
+++ b/drivers/crypto/mvsam/rte_mrvl_pmd.c
@@ -22,6 +22,9 @@
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(mrvl_crypto_pmd_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(mrvl_crypto_pmd_dequeue_burst);
+
struct mrvl_pmd_init_params {
struct rte_cryptodev_pmd_init_params common;
uint32_t max_nb_sessions;
@@ -981,6 +984,7 @@ mrvl_crypto_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
qp->stats.enqueued_count += to_enq_sec + to_enq_crp;
return consumed;
}
+_RTE_CRYPTO_ENQ_DEF(mrvl_crypto_pmd_enqueue_burst)
/**
* Dequeue burst.
@@ -1046,6 +1050,7 @@ mrvl_crypto_pmd_dequeue_burst(void *queue_pair,
qp->stats.dequeued_count += nb_ops;
return nb_ops;
}
+_RTE_CRYPTO_DEQ_DEF(mrvl_crypto_pmd_dequeue_burst)
/**
* Create a new crypto device.
@@ -1077,8 +1082,10 @@ cryptodev_mrvl_crypto_create(const char *name,
dev->dev_ops = rte_mrvl_crypto_pmd_ops;
/* Register rx/tx burst functions for data path. */
- dev->enqueue_burst = mrvl_crypto_pmd_enqueue_burst;
- dev->dequeue_burst = mrvl_crypto_pmd_dequeue_burst;
+ rte_crypto_set_enq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(mrvl_crypto_pmd_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(mrvl_crypto_pmd_dequeue_burst));
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/nitrox/nitrox_sym.c b/drivers/crypto/nitrox/nitrox_sym.c
index f8b7edcd69..291b1e5983 100644
--- a/drivers/crypto/nitrox/nitrox_sym.c
+++ b/drivers/crypto/nitrox/nitrox_sym.c
@@ -68,6 +68,9 @@ static const struct rte_driver nitrox_rte_sym_drv = {
.alias = nitrox_sym_drv_name
};
+_RTE_CRYPTO_ENQ_PROTO(nitrox_sym_dev_enq_burst);
+_RTE_CRYPTO_DEQ_PROTO(nitrox_sym_dev_deq_burst);
+
static int nitrox_sym_dev_qp_release(struct rte_cryptodev *cdev,
uint16_t qp_id);
@@ -677,6 +680,7 @@ nitrox_sym_dev_enq_burst(void *queue_pair, struct rte_crypto_op **ops,
return cnt;
}
+_RTE_CRYPTO_ENQ_DEF(nitrox_sym_dev_enq_burst)
static int
nitrox_deq_single_op(struct nitrox_qp *qp, struct rte_crypto_op **op_ptr)
@@ -726,6 +730,7 @@ nitrox_sym_dev_deq_burst(void *queue_pair, struct rte_crypto_op **ops,
return cnt;
}
+_RTE_CRYPTO_DEQ_DEF(nitrox_sym_dev_deq_burst)
static struct rte_cryptodev_ops nitrox_cryptodev_ops = {
.dev_configure = nitrox_sym_dev_config,
@@ -769,8 +774,10 @@ nitrox_sym_pmd_create(struct nitrox_device *ndev)
ndev->rte_sym_dev.name = cdev->data->name;
cdev->driver_id = nitrox_sym_drv_id;
cdev->dev_ops = &nitrox_cryptodev_ops;
- cdev->enqueue_burst = nitrox_sym_dev_enq_burst;
- cdev->dequeue_burst = nitrox_sym_dev_deq_burst;
+ rte_crypto_set_enq_burst_fn(cdev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(nitrox_sym_dev_enq_burst));
+ rte_crypto_set_deq_burst_fn(cdev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(nitrox_sym_dev_deq_burst));
cdev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_HW_ACCELERATED |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/nitrox/nitrox_sym_reqmgr.c b/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
index fe3ca25a0c..7a6a7fadfe 100644
--- a/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
+++ b/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
@@ -6,6 +6,7 @@
#include <rte_cryptodev.h>
#include <rte_cycles.h>
#include <rte_errno.h>
+#include <cryptodev_pmd.h>
#include "nitrox_sym_reqmgr.h"
#include "nitrox_logs.h"
diff --git a/drivers/crypto/null/null_crypto_pmd.c b/drivers/crypto/null/null_crypto_pmd.c
index f9935d52cc..9a4c0fa66e 100644
--- a/drivers/crypto/null/null_crypto_pmd.c
+++ b/drivers/crypto/null/null_crypto_pmd.c
@@ -11,6 +11,9 @@
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(null_crypto_pmd_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(null_crypto_pmd_dequeue_burst);
+
/** verify and set session parameters */
int
null_crypto_set_session_parameters(
@@ -137,6 +140,7 @@ null_crypto_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
qp->qp_stats.enqueue_err_count++;
return i;
}
+_RTE_CRYPTO_ENQ_DEF(null_crypto_pmd_enqueue_burst)
/** Dequeue burst */
static uint16_t
@@ -153,6 +157,7 @@ null_crypto_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
return nb_dequeued;
}
+_RTE_CRYPTO_DEQ_DEF(null_crypto_pmd_dequeue_burst)
/** Create crypto device */
static int
@@ -172,8 +177,10 @@ cryptodev_null_create(const char *name,
dev->dev_ops = null_crypto_pmd_ops;
/* register rx/tx burst functions for data path */
- dev->dequeue_burst = null_crypto_pmd_dequeue_burst;
- dev->enqueue_burst = null_crypto_pmd_enqueue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(null_crypto_pmd_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(null_crypto_pmd_dequeue_burst));
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c
index ab335c6a62..8b5f32821a 100644
--- a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c
+++ b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c
@@ -12,6 +12,7 @@
#include <rte_mempool.h>
#include <rte_memzone.h>
#include <rte_string_fns.h>
+#include <cryptodev_pmd.h>
#include "otx_cryptodev_hw_access.h"
#include "otx_cryptodev_mbox.h"
diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.c b/drivers/crypto/octeontx/otx_cryptodev_ops.c
index 9b5bde53f8..9d607f35ad 100644
--- a/drivers/crypto/octeontx/otx_cryptodev_ops.c
+++ b/drivers/crypto/octeontx/otx_cryptodev_ops.c
@@ -687,12 +687,14 @@ otx_cpt_enqueue_asym(void *qptr, struct rte_crypto_op **ops, uint16_t nb_ops)
{
return otx_cpt_pkt_enqueue(qptr, ops, nb_ops, OP_TYPE_ASYM);
}
+_RTE_CRYPTO_ENQ_DEF(otx_cpt_enqueue_asym)
static uint16_t
otx_cpt_enqueue_sym(void *qptr, struct rte_crypto_op **ops, uint16_t nb_ops)
{
return otx_cpt_pkt_enqueue(qptr, ops, nb_ops, OP_TYPE_SYM);
}
+_RTE_CRYPTO_ENQ_DEF(otx_cpt_enqueue_sym)
static __rte_always_inline void
submit_request_to_sso(struct ssows *ws, uintptr_t req,
@@ -1019,12 +1021,14 @@ otx_cpt_dequeue_asym(void *qptr, struct rte_crypto_op **ops, uint16_t nb_ops)
{
return otx_cpt_pkt_dequeue(qptr, ops, nb_ops, OP_TYPE_ASYM);
}
+_RTE_CRYPTO_DEQ_DEF(otx_cpt_dequeue_asym)
static uint16_t
otx_cpt_dequeue_sym(void *qptr, struct rte_crypto_op **ops, uint16_t nb_ops)
{
return otx_cpt_pkt_dequeue(qptr, ops, nb_ops, OP_TYPE_SYM);
}
+_RTE_CRYPTO_DEQ_DEF(otx_cpt_dequeue_sym)
uintptr_t __rte_hot
otx_crypto_adapter_dequeue(uintptr_t get_work1)
@@ -1151,11 +1155,15 @@ otx_cpt_dev_create(struct rte_cryptodev *c_dev)
c_dev->dev_ops = &cptvf_ops;
if (c_dev->feature_flags & RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO) {
- c_dev->enqueue_burst = otx_cpt_enqueue_sym;
- c_dev->dequeue_burst = otx_cpt_dequeue_sym;
+ rte_crypto_set_enq_burst_fn(c_dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(otx_cpt_enqueue_sym));
+ rte_crypto_set_deq_burst_fn(c_dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(otx_cpt_dequeue_sym));
} else {
- c_dev->enqueue_burst = otx_cpt_enqueue_asym;
- c_dev->dequeue_burst = otx_cpt_dequeue_asym;
+ rte_crypto_set_enq_burst_fn(c_dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(otx_cpt_enqueue_asym));
+ rte_crypto_set_deq_burst_fn(c_dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(otx_cpt_dequeue_asym));
}
/* Save dev private data */
diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.h b/drivers/crypto/octeontx/otx_cryptodev_ops.h
index f234f16970..72ab287b5b 100644
--- a/drivers/crypto/octeontx/otx_cryptodev_ops.h
+++ b/drivers/crypto/octeontx/otx_cryptodev_ops.h
@@ -14,6 +14,11 @@
int
otx_cpt_dev_create(struct rte_cryptodev *c_dev);
+_RTE_CRYPTO_ENQ_PROTO(otx_cpt_enqueue_sym);
+_RTE_CRYPTO_DEQ_PROTO(otx_cpt_dequeue_sym);
+_RTE_CRYPTO_ENQ_PROTO(otx_cpt_enqueue_asym);
+_RTE_CRYPTO_DEQ_PROTO(otx_cpt_dequeue_asym);
+
__rte_internal
uint16_t __rte_hot
otx_crypto_adapter_enqueue(void *port, struct rte_crypto_op *op);
diff --git a/drivers/crypto/octeontx2/otx2_cryptodev_mbox.c b/drivers/crypto/octeontx2/otx2_cryptodev_mbox.c
index 812515fc1b..263e09879d 100644
--- a/drivers/crypto/octeontx2/otx2_cryptodev_mbox.c
+++ b/drivers/crypto/octeontx2/otx2_cryptodev_mbox.c
@@ -3,6 +3,7 @@
*/
#include <rte_cryptodev.h>
#include <rte_ethdev.h>
+#include <cryptodev_pmd.h>
#include "otx2_cryptodev.h"
#include "otx2_cryptodev_hw_access.h"
diff --git a/drivers/crypto/octeontx2/otx2_cryptodev_ops.c b/drivers/crypto/octeontx2/otx2_cryptodev_ops.c
index 723804347f..a646c8f3ef 100644
--- a/drivers/crypto/octeontx2/otx2_cryptodev_ops.c
+++ b/drivers/crypto/octeontx2/otx2_cryptodev_ops.c
@@ -33,6 +33,9 @@ static uint64_t otx2_fpm_iova[CPT_EC_ID_PMAX];
/* Forward declarations */
+_RTE_CRYPTO_ENQ_PROTO(otx2_cpt_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(otx2_cpt_dequeue_burst);
+
static int
otx2_cpt_queue_pair_release(struct rte_cryptodev *dev, uint16_t qp_id);
@@ -826,6 +829,7 @@ otx2_cpt_enqueue_burst(void *qptr, struct rte_crypto_op **ops, uint16_t nb_ops)
return count;
}
+_RTE_CRYPTO_ENQ_DEF(otx2_cpt_enqueue_burst)
static __rte_always_inline void
otx2_cpt_asym_rsa_op(struct rte_crypto_op *cop, struct cpt_request_info *req,
@@ -1096,12 +1100,15 @@ otx2_cpt_dequeue_burst(void *qptr, struct rte_crypto_op **ops, uint16_t nb_ops)
return nb_completed;
}
+_RTE_CRYPTO_DEQ_DEF(otx2_cpt_dequeue_burst)
void
otx2_cpt_set_enqdeq_fns(struct rte_cryptodev *dev)
{
- dev->enqueue_burst = otx2_cpt_enqueue_burst;
- dev->dequeue_burst = otx2_cpt_dequeue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(otx2_cpt_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(otx2_cpt_dequeue_burst));
rte_mb();
}
diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
index f149366c2a..9401072760 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -20,6 +20,9 @@
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(openssl_pmd_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(openssl_pmd_dequeue_burst);
+
#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
static HMAC_CTX *HMAC_CTX_new(void)
{
@@ -2159,6 +2162,7 @@ openssl_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
qp->stats.enqueue_err_count++;
return i;
}
+_RTE_CRYPTO_ENQ_DEF(openssl_pmd_enqueue_burst)
/** Dequeue burst */
static uint16_t
@@ -2175,6 +2179,7 @@ openssl_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
return nb_dequeued;
}
+_RTE_CRYPTO_DEQ_DEF(openssl_pmd_dequeue_burst)
/** Create OPENSSL crypto device */
static int
@@ -2195,8 +2200,10 @@ cryptodev_openssl_create(const char *name,
dev->dev_ops = rte_openssl_pmd_ops;
/* register rx/tx burst functions for data path */
- dev->dequeue_burst = openssl_pmd_dequeue_burst;
- dev->enqueue_burst = openssl_pmd_enqueue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(openssl_pmd_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(openssl_pmd_dequeue_burst));
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/qat/qat_asym_pmd.c b/drivers/crypto/qat/qat_asym_pmd.c
index e91bb0d317..cbd7768f2c 100644
--- a/drivers/crypto/qat/qat_asym_pmd.c
+++ b/drivers/crypto/qat/qat_asym_pmd.c
@@ -13,6 +13,9 @@
uint8_t qat_asym_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(qat_asym_pmd_enqueue_op_burst);
+_RTE_CRYPTO_DEQ_PROTO(qat_asym_pmd_dequeue_op_burst);
+
static const struct rte_cryptodev_capabilities qat_gen1_asym_capabilities[] = {
QAT_BASE_GEN1_ASYM_CAPABILITIES,
RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
@@ -214,12 +217,14 @@ uint16_t qat_asym_pmd_enqueue_op_burst(void *qp, struct rte_crypto_op **ops,
{
return qat_enqueue_op_burst(qp, (void **)ops, nb_ops);
}
+_RTE_CRYPTO_ENQ_DEF(qat_asym_pmd_enqueue_op_burst)
uint16_t qat_asym_pmd_dequeue_op_burst(void *qp, struct rte_crypto_op **ops,
uint16_t nb_ops)
{
return qat_dequeue_op_burst(qp, (void **)ops, nb_ops);
}
+_RTE_CRYPTO_DEQ_DEF(qat_asym_pmd_dequeue_op_burst)
/* An rte_driver is needed in the registration of both the device and the driver
* with cryptodev.
@@ -292,8 +297,10 @@ qat_asym_dev_create(struct qat_pci_device *qat_pci_dev,
cryptodev->driver_id = qat_asym_driver_id;
cryptodev->dev_ops = &crypto_qat_ops;
- cryptodev->enqueue_burst = qat_asym_pmd_enqueue_op_burst;
- cryptodev->dequeue_burst = qat_asym_pmd_dequeue_op_burst;
+ rte_crypto_set_enq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(qat_asym_pmd_enqueue_op_burst));
+ rte_crypto_set_deq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(qat_asym_pmd_dequeue_op_burst));
cryptodev->feature_flags = RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_HW_ACCELERATED |
diff --git a/drivers/crypto/qat/qat_sym_pmd.c b/drivers/crypto/qat/qat_sym_pmd.c
index efda921c05..b3ea51a246 100644
--- a/drivers/crypto/qat/qat_sym_pmd.c
+++ b/drivers/crypto/qat/qat_sym_pmd.c
@@ -20,6 +20,8 @@
#define MIXED_CRYPTO_MIN_FW_VER 0x04090000
uint8_t qat_sym_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(qat_sym_pmd_enqueue_op_burst);
+_RTE_CRYPTO_DEQ_PROTO(qat_sym_pmd_dequeue_op_burst);
static const struct rte_cryptodev_capabilities qat_gen1_sym_capabilities[] = {
QAT_BASE_GEN1_SYM_CAPABILITIES,
@@ -319,6 +321,7 @@ qat_sym_pmd_enqueue_op_burst(void *qp, struct rte_crypto_op **ops,
{
return qat_enqueue_op_burst(qp, (void **)ops, nb_ops);
}
+_RTE_CRYPTO_ENQ_DEF(qat_sym_pmd_enqueue_op_burst)
static uint16_t
qat_sym_pmd_dequeue_op_burst(void *qp, struct rte_crypto_op **ops,
@@ -326,6 +329,7 @@ qat_sym_pmd_dequeue_op_burst(void *qp, struct rte_crypto_op **ops,
{
return qat_dequeue_op_burst(qp, (void **)ops, nb_ops);
}
+_RTE_CRYPTO_DEQ_DEF(qat_sym_pmd_dequeue_op_burst)
/* An rte_driver is needed in the registration of both the device and the driver
* with cryptodev.
@@ -399,8 +403,10 @@ qat_sym_dev_create(struct qat_pci_device *qat_pci_dev,
cryptodev->driver_id = qat_sym_driver_id;
cryptodev->dev_ops = &crypto_qat_ops;
- cryptodev->enqueue_burst = qat_sym_pmd_enqueue_op_burst;
- cryptodev->dequeue_burst = qat_sym_pmd_dequeue_op_burst;
+ rte_crypto_set_enq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(qat_sym_pmd_enqueue_op_burst));
+ rte_crypto_set_deq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(qat_sym_pmd_dequeue_op_burst));
cryptodev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_HW_ACCELERATED |
diff --git a/drivers/crypto/snow3g/rte_snow3g_pmd.c b/drivers/crypto/snow3g/rte_snow3g_pmd.c
index 8284ac0b66..9df3d66df2 100644
--- a/drivers/crypto/snow3g/rte_snow3g_pmd.c
+++ b/drivers/crypto/snow3g/rte_snow3g_pmd.c
@@ -18,6 +18,9 @@
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(snow3g_pmd_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(snow3g_pmd_dequeue_burst);
+
/** Get xform chain order. */
static enum snow3g_operation
snow3g_get_mode(const struct rte_crypto_sym_xform *xform)
@@ -520,6 +523,7 @@ snow3g_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
qp->qp_stats.enqueue_err_count += nb_ops - enqueued_ops;
return enqueued_ops;
}
+_RTE_CRYPTO_ENQ_DEF(snow3g_pmd_enqueue_burst)
static uint16_t
snow3g_pmd_dequeue_burst(void *queue_pair,
@@ -535,6 +539,7 @@ snow3g_pmd_dequeue_burst(void *queue_pair,
return nb_dequeued;
}
+_RTE_CRYPTO_DEQ_DEF(snow3g_pmd_dequeue_burst)
static int cryptodev_snow3g_remove(struct rte_vdev_device *vdev);
@@ -557,8 +562,10 @@ cryptodev_snow3g_create(const char *name,
dev->dev_ops = rte_snow3g_pmd_ops;
/* Register RX/TX burst functions for data path. */
- dev->dequeue_burst = snow3g_pmd_dequeue_burst;
- dev->enqueue_burst = snow3g_pmd_enqueue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(snow3g_pmd_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(snow3g_pmd_dequeue_burst));
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
diff --git a/drivers/crypto/virtio/virtio_cryptodev.c b/drivers/crypto/virtio/virtio_cryptodev.c
index 8faa39df4a..a76d014a35 100644
--- a/drivers/crypto/virtio/virtio_cryptodev.c
+++ b/drivers/crypto/virtio/virtio_cryptodev.c
@@ -731,8 +731,10 @@ crypto_virtio_create(const char *name, struct rte_pci_device *pci_dev,
cryptodev->driver_id = cryptodev_virtio_driver_id;
cryptodev->dev_ops = &virtio_crypto_dev_ops;
- cryptodev->enqueue_burst = virtio_crypto_pkt_tx_burst;
- cryptodev->dequeue_burst = virtio_crypto_pkt_rx_burst;
+ rte_crypto_set_enq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(virtio_crypto_pkt_tx_burst));
+ rte_crypto_set_deq_burst_fn(cryptodev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(virtio_crypto_pkt_rx_burst));
cryptodev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
@@ -773,8 +775,8 @@ virtio_crypto_dev_uninit(struct rte_cryptodev *cryptodev)
}
cryptodev->dev_ops = NULL;
- cryptodev->enqueue_burst = NULL;
- cryptodev->dequeue_burst = NULL;
+ rte_crypto_set_enq_burst_fn(cryptodev->data->dev_id, NULL);
+ rte_crypto_set_deq_burst_fn(cryptodev->data->dev_id, NULL);
/* release control queue */
virtio_crypto_queue_release(hw->cvq);
diff --git a/drivers/crypto/virtio/virtio_cryptodev.h b/drivers/crypto/virtio/virtio_cryptodev.h
index 215bce7863..2ca8c35434 100644
--- a/drivers/crypto/virtio/virtio_cryptodev.h
+++ b/drivers/crypto/virtio/virtio_cryptodev.h
@@ -63,4 +63,6 @@ uint16_t virtio_crypto_pkt_rx_burst(void *tx_queue,
struct rte_crypto_op **tx_pkts,
uint16_t nb_pkts);
+_RTE_CRYPTO_ENQ_PROTO(virtio_crypto_pkt_tx_burst);
+_RTE_CRYPTO_DEQ_PROTO(virtio_crypto_pkt_rx_burst);
#endif /* _VIRTIO_CRYPTODEV_H_ */
diff --git a/drivers/crypto/virtio/virtio_rxtx.c b/drivers/crypto/virtio/virtio_rxtx.c
index a65524a306..c96bb541a2 100644
--- a/drivers/crypto/virtio/virtio_rxtx.c
+++ b/drivers/crypto/virtio/virtio_rxtx.c
@@ -454,6 +454,7 @@ virtio_crypto_pkt_rx_burst(void *tx_queue, struct rte_crypto_op **rx_pkts,
return nb_rx;
}
+_RTE_CRYPTO_DEQ_DEF(virtio_crypto_pkt_rx_burst)
uint16_t
virtio_crypto_pkt_tx_burst(void *tx_queue, struct rte_crypto_op **tx_pkts,
@@ -525,3 +526,4 @@ virtio_crypto_pkt_tx_burst(void *tx_queue, struct rte_crypto_op **tx_pkts,
return nb_tx;
}
+_RTE_CRYPTO_ENQ_DEF(virtio_crypto_pkt_tx_burst)
diff --git a/drivers/crypto/zuc/rte_zuc_pmd.c b/drivers/crypto/zuc/rte_zuc_pmd.c
index d4b343a7af..19d1670dad 100644
--- a/drivers/crypto/zuc/rte_zuc_pmd.c
+++ b/drivers/crypto/zuc/rte_zuc_pmd.c
@@ -16,6 +16,9 @@
static uint8_t cryptodev_driver_id;
+_RTE_CRYPTO_ENQ_PROTO(zuc_pmd_enqueue_burst);
+_RTE_CRYPTO_DEQ_PROTO(zuc_pmd_dequeue_burst);
+
/** Get xform chain order. */
static enum zuc_operation
zuc_get_mode(const struct rte_crypto_sym_xform *xform)
@@ -444,6 +447,7 @@ zuc_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
qp->qp_stats.enqueue_err_count += nb_ops - enqueued_ops;
return enqueued_ops;
}
+_RTE_CRYPTO_ENQ_DEF(zuc_pmd_enqueue_burst)
static uint16_t
zuc_pmd_dequeue_burst(void *queue_pair,
@@ -459,6 +463,7 @@ zuc_pmd_dequeue_burst(void *queue_pair,
return nb_dequeued;
}
+_RTE_CRYPTO_DEQ_DEF(zuc_pmd_dequeue_burst)
static int cryptodev_zuc_remove(struct rte_vdev_device *vdev);
@@ -505,8 +510,10 @@ cryptodev_zuc_create(const char *name,
dev->dev_ops = rte_zuc_pmd_ops;
/* Register RX/TX burst functions for data path. */
- dev->dequeue_burst = zuc_pmd_dequeue_burst;
- dev->enqueue_burst = zuc_pmd_enqueue_burst;
+ rte_crypto_set_enq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_ENQ_FUNC(zuc_pmd_enqueue_burst));
+ rte_crypto_set_deq_burst_fn(dev->data->dev_id,
+ _RTE_CRYPTO_DEQ_FUNC(zuc_pmd_dequeue_burst));
internals = dev->data->dev_private;
internals->mb_mgr = mb_mgr;
--
2.25.1
next prev parent reply other threads:[~2021-08-29 12:52 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-29 12:51 [dpdk-dev] [PATCH 0/8] cryptodev: hide internal strutures Akhil Goyal
2021-08-29 12:51 ` [dpdk-dev] [PATCH 1/8] cryptodev: separate out internal structures Akhil Goyal
2021-09-08 10:50 ` Anoob Joseph
2021-09-08 11:11 ` Akhil Goyal
2021-09-13 14:10 ` Zhang, Roy Fan
2021-08-29 12:51 ` [dpdk-dev] [PATCH 2/8] cryptodev: move inline APIs into separate structure Akhil Goyal
2021-09-13 14:11 ` Zhang, Roy Fan
2021-09-16 15:21 ` Ananyev, Konstantin
2021-08-29 12:51 ` [dpdk-dev] [PATCH 3/8] cryptodev: add helper functions for new datapath interface Akhil Goyal
2021-08-30 20:07 ` Zhang, Roy Fan
2021-08-31 6:14 ` Akhil Goyal
2021-09-13 14:20 ` Zhang, Roy Fan
2021-08-29 12:51 ` [dpdk-dev] [PATCH 4/8] cryptodev: use new API for datapath functions Akhil Goyal
2021-09-13 14:20 ` Zhang, Roy Fan
2021-08-29 12:51 ` Akhil Goyal [this message]
2021-09-13 14:20 ` [dpdk-dev] [PATCH 5/8] drivers/crypto: use new framework for datapath Zhang, Roy Fan
2021-08-29 12:51 ` [dpdk-dev] [PATCH 6/8] crypto/scheduler: rename enq-deq functions Akhil Goyal
2021-09-13 14:21 ` Zhang, Roy Fan
2021-08-29 12:51 ` [dpdk-dev] [PATCH 7/8] crypto/scheduler: update for new datapath framework Akhil Goyal
2021-09-13 14:21 ` Zhang, Roy Fan
2021-08-29 12:51 ` [dpdk-dev] [PATCH 8/8] cryptodev: move device specific structures Akhil Goyal
2021-09-13 14:22 ` Zhang, Roy Fan
2021-09-06 18:29 ` [dpdk-dev] [PATCH 0/8] cryptodev: hide internal strutures Akhil Goyal
2021-09-13 14:09 ` Zhang, Roy Fan
2021-10-11 12:43 ` [dpdk-dev] [PATCH v2 0/5] cryptodev: hide internal structures Akhil Goyal
2021-10-11 12:43 ` [dpdk-dev] [PATCH v2 1/5] cryptodev: separate out " Akhil Goyal
2021-10-11 14:50 ` Zhang, Roy Fan
2021-10-11 12:43 ` [dpdk-dev] [PATCH v2 2/5] cryptodev: allocate max space for internal qp array Akhil Goyal
2021-10-11 14:51 ` Zhang, Roy Fan
2021-10-11 12:43 ` [dpdk-dev] [PATCH v2 3/5] cryptodev: move inline APIs into separate structure Akhil Goyal
2021-10-11 14:45 ` Zhang, Roy Fan
2021-10-18 7:02 ` Akhil Goyal
2021-10-11 12:43 ` [dpdk-dev] [PATCH v2 4/5] cryptodev: update fast path APIs to use new flat array Akhil Goyal
2021-10-11 14:54 ` Zhang, Roy Fan
2021-10-11 12:43 ` [dpdk-dev] [PATCH v2 5/5] cryptodev: move device specific structures Akhil Goyal
2021-10-11 15:05 ` Zhang, Roy Fan
2021-10-18 7:07 ` Akhil Goyal
2021-10-11 16:03 ` [dpdk-dev] [PATCH v2 0/5] cryptodev: hide internal structures Zhang, Roy Fan
2021-10-11 17:07 ` Ji, Kai
2021-10-11 18:21 ` Zhang, Roy Fan
2021-10-15 18:38 ` Ananyev, Konstantin
2021-10-15 18:42 ` Akhil Goyal
2021-10-19 11:03 ` Ananyev, Konstantin
2021-10-18 14:41 ` [dpdk-dev] [PATCH v3 0/7] " Akhil Goyal
2021-10-18 14:41 ` [dpdk-dev] [PATCH v3 1/7] cryptodev: separate out " Akhil Goyal
2021-10-18 14:41 ` [dpdk-dev] [PATCH v3 2/7] cryptodev: allocate max space for internal qp array Akhil Goyal
2021-10-18 14:41 ` [dpdk-dev] [PATCH v3 3/7] cryptodev: move inline APIs into separate structure Akhil Goyal
2021-10-19 11:11 ` Ananyev, Konstantin
2021-10-19 11:50 ` Akhil Goyal
2021-10-19 14:27 ` Ananyev, Konstantin
2021-10-19 16:00 ` Zhang, Roy Fan
2021-10-18 14:41 ` [dpdk-dev] [PATCH v3 4/7] cryptodev: add PMD device probe finish API Akhil Goyal
2021-10-19 16:01 ` Zhang, Roy Fan
2021-10-18 14:41 ` [dpdk-dev] [PATCH v3 5/7] drivers/crypto: invoke probing finish function Akhil Goyal
2021-10-19 16:03 ` Zhang, Roy Fan
2021-10-20 7:05 ` Matan Azrad
2021-10-18 14:42 ` [dpdk-dev] [PATCH v3 6/7] cryptodev: update fast path APIs to use new flat array Akhil Goyal
2021-10-19 12:28 ` Ananyev, Konstantin
2021-10-19 12:47 ` Akhil Goyal
2021-10-19 14:25 ` Ananyev, Konstantin
2021-10-18 14:42 ` [dpdk-dev] [PATCH v3 7/7] cryptodev: move device specific structures Akhil Goyal
2021-10-20 10:25 ` [dpdk-dev] [PATCH v3 0/7] cryptodev: hide internal structures Power, Ciara
2021-10-20 11:27 ` [dpdk-dev] [PATCH v4 0/8] " Akhil Goyal
2021-10-20 11:27 ` [dpdk-dev] [PATCH v4 1/8] cryptodev: separate out " Akhil Goyal
2021-10-20 11:27 ` [dpdk-dev] [PATCH v4 2/8] cryptodev: allocate max space for internal qp array Akhil Goyal
2021-10-20 11:27 ` [dpdk-dev] [PATCH v4 3/8] cryptodev: move inline APIs into separate structure Akhil Goyal
2021-10-20 11:27 ` [dpdk-dev] [PATCH v4 4/8] crypto/scheduler: use proper API for device start/stop Akhil Goyal
2021-10-20 11:31 ` Zhang, Roy Fan
2021-10-20 12:20 ` Ananyev, Konstantin
2021-10-20 11:27 ` [dpdk-dev] [PATCH v4 5/8] cryptodev: add PMD device probe finish API Akhil Goyal
2021-10-20 11:27 ` [dpdk-dev] [PATCH v4 6/8] drivers/crypto: invoke probing finish function Akhil Goyal
2021-10-20 11:27 ` [dpdk-dev] [PATCH v4 7/8] cryptodev: update fast path APIs to use new flat array Akhil Goyal
2021-10-20 11:27 ` [dpdk-dev] [PATCH v4 8/8] cryptodev: move device specific structures Akhil Goyal
2021-10-20 13:36 ` [dpdk-dev] [PATCH v4 0/8] cryptodev: hide internal structures 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=20210829125139.2173235-6-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=jerinj@marvell.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).