cryptodev: add sym session header size function
This patch adds a new API in Cryptodev Framework. The API is used to get the header size for the created symmetric Cryptodev session. Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
This commit is contained in:
parent
24054e3640
commit
0b60386ac3
@ -8,6 +8,7 @@ LIB = librte_pmd_aesni_gcm.a
|
||||
|
||||
# build flags
|
||||
CFLAGS += -O3
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
|
||||
# library version
|
||||
|
@ -419,7 +419,8 @@ handle_completed_gcm_crypto_op(struct aesni_gcm_qp *qp,
|
||||
if (op->sess_type == RTE_CRYPTO_OP_SESSIONLESS) {
|
||||
memset(sess, 0, sizeof(struct aesni_gcm_session));
|
||||
memset(op->sym->session, 0,
|
||||
rte_cryptodev_sym_get_header_session_size());
|
||||
rte_cryptodev_sym_get_existing_header_session_size(
|
||||
op->sym->session));
|
||||
rte_mempool_put(qp->sess_mp_priv, sess);
|
||||
rte_mempool_put(qp->sess_mp, op->sym->session);
|
||||
op->sym->session = NULL;
|
||||
|
@ -8,5 +8,6 @@ else
|
||||
ext_deps += lib
|
||||
endif
|
||||
|
||||
allow_experimental_apis = true
|
||||
sources = files('aesni_gcm_pmd.c', 'aesni_gcm_pmd_ops.c')
|
||||
deps += ['bus_vdev']
|
||||
|
@ -9,6 +9,7 @@ LIB = librte_pmd_aesni_mb.a
|
||||
# build flags
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
|
||||
# library version
|
||||
LIBABIVER := 1
|
||||
|
@ -24,4 +24,5 @@ else
|
||||
|
||||
endif
|
||||
|
||||
allow_experimental_apis = true
|
||||
deps += ['bus_vdev']
|
||||
|
@ -1025,7 +1025,8 @@ post_process_mb_job(struct aesni_mb_qp *qp, JOB_AES_HMAC *job)
|
||||
if (op->sess_type == RTE_CRYPTO_OP_SESSIONLESS) {
|
||||
memset(sess, 0, sizeof(struct aesni_mb_session));
|
||||
memset(op->sym->session, 0,
|
||||
rte_cryptodev_sym_get_header_session_size());
|
||||
rte_cryptodev_sym_get_existing_header_session_size(
|
||||
op->sym->session));
|
||||
rte_mempool_put(qp->sess_mp_priv, sess);
|
||||
rte_mempool_put(qp->sess_mp, op->sym->session);
|
||||
op->sym->session = NULL;
|
||||
|
@ -1023,7 +1023,8 @@ post_process_mb_job(struct aesni_mb_qp *qp, JOB_AES_HMAC *job)
|
||||
if (op->sess_type == RTE_CRYPTO_OP_SESSIONLESS) {
|
||||
memset(sess, 0, sizeof(struct aesni_mb_session));
|
||||
memset(op->sym->session, 0,
|
||||
rte_cryptodev_sym_get_header_session_size());
|
||||
rte_cryptodev_sym_get_existing_header_session_size(
|
||||
op->sym->session));
|
||||
rte_mempool_put(qp->sess_mp_priv, sess);
|
||||
rte_mempool_put(qp->sess_mp, op->sym->session);
|
||||
op->sym->session = NULL;
|
||||
|
@ -28,6 +28,7 @@ EXPORT_MAP := rte_pmd_armv8_version.map
|
||||
# external library dependencies
|
||||
CFLAGS += -I$(ARMV8_CRYPTO_LIB_PATH)
|
||||
CFLAGS += -I$(ARMV8_CRYPTO_LIB_PATH)/asm/include
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
LDLIBS += -L$(ARMV8_CRYPTO_LIB_PATH) -larmv8_crypto
|
||||
LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
|
||||
LDLIBS += -lrte_cryptodev
|
||||
|
@ -655,7 +655,8 @@ process_op(struct armv8_crypto_qp *qp, struct rte_crypto_op *op,
|
||||
if (op->sess_type == RTE_CRYPTO_OP_SESSIONLESS) {
|
||||
memset(sess, 0, sizeof(struct armv8_crypto_session));
|
||||
memset(op->sym->session, 0,
|
||||
rte_cryptodev_sym_get_header_session_size());
|
||||
rte_cryptodev_sym_get_existing_header_session_size(
|
||||
op->sym->session));
|
||||
rte_mempool_put(qp->sess_mp, sess);
|
||||
rte_mempool_put(qp->sess_mp_priv, op->sym->session);
|
||||
op->sym->session = NULL;
|
||||
|
@ -15,6 +15,7 @@ LIB = librte_pmd_kasumi.a
|
||||
# build flags
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
|
||||
# library version
|
||||
LIBABIVER := 1
|
||||
|
@ -8,5 +8,6 @@ else
|
||||
ext_deps += lib
|
||||
endif
|
||||
|
||||
allow_experimental_apis = true
|
||||
sources = files('rte_kasumi_pmd.c', 'rte_kasumi_pmd_ops.c')
|
||||
deps += ['bus_vdev']
|
||||
|
@ -325,7 +325,8 @@ process_ops(struct rte_crypto_op **ops, struct kasumi_session *session,
|
||||
if (ops[i]->sess_type == RTE_CRYPTO_OP_SESSIONLESS) {
|
||||
memset(session, 0, sizeof(struct kasumi_session));
|
||||
memset(ops[i]->sym->session, 0,
|
||||
rte_cryptodev_sym_get_header_session_size());
|
||||
rte_cryptodev_sym_get_existing_header_session_size(
|
||||
ops[i]->sym->session));
|
||||
rte_mempool_put(qp->sess_mp_priv, session);
|
||||
rte_mempool_put(qp->sess_mp, ops[i]->sym->session);
|
||||
ops[i]->sym->session = NULL;
|
||||
|
@ -9,6 +9,7 @@ LIB = librte_pmd_openssl.a
|
||||
# build flags
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
|
||||
# library version
|
||||
LIBABIVER := 1
|
||||
|
@ -5,6 +5,7 @@ dep = dependency('libcrypto', required: false)
|
||||
if not dep.found()
|
||||
build = false
|
||||
endif
|
||||
allow_experimental_apis = true
|
||||
deps += 'bus_vdev'
|
||||
sources = files('rte_openssl_pmd.c', 'rte_openssl_pmd_ops.c')
|
||||
ext_deps += dep
|
||||
|
@ -2020,7 +2020,8 @@ process_op(struct openssl_qp *qp, struct rte_crypto_op *op,
|
||||
openssl_reset_session(sess);
|
||||
memset(sess, 0, sizeof(struct openssl_session));
|
||||
memset(op->sym->session, 0,
|
||||
rte_cryptodev_sym_get_header_session_size());
|
||||
rte_cryptodev_sym_get_existing_header_session_size(
|
||||
op->sym->session));
|
||||
rte_mempool_put(qp->sess_mp_priv, sess);
|
||||
rte_mempool_put(qp->sess_mp, op->sym->session);
|
||||
op->sym->session = NULL;
|
||||
|
@ -15,6 +15,7 @@ LIB = librte_pmd_snow3g.a
|
||||
# build flags
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
|
||||
# library version
|
||||
LIBABIVER := 1
|
||||
|
@ -340,7 +340,8 @@ process_ops(struct rte_crypto_op **ops, struct snow3g_session *session,
|
||||
if (ops[i]->sess_type == RTE_CRYPTO_OP_SESSIONLESS) {
|
||||
memset(session, 0, sizeof(struct snow3g_session));
|
||||
memset(ops[i]->sym->session, 0,
|
||||
rte_cryptodev_sym_get_header_session_size());
|
||||
rte_cryptodev_sym_get_existing_header_session_size(
|
||||
ops[i]->sym->session));
|
||||
rte_mempool_put(qp->sess_mp_priv, session);
|
||||
rte_mempool_put(qp->sess_mp, ops[i]->sym->session);
|
||||
ops[i]->sym->session = NULL;
|
||||
|
@ -15,6 +15,7 @@ LIB = librte_pmd_zuc.a
|
||||
# build flags
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
|
||||
# library version
|
||||
LIBABIVER := 1
|
||||
|
@ -8,5 +8,6 @@ else
|
||||
ext_deps += lib
|
||||
endif
|
||||
|
||||
allow_experimental_apis = true
|
||||
sources = files('rte_zuc_pmd.c', 'rte_zuc_pmd_ops.c')
|
||||
deps += ['bus_vdev']
|
||||
|
@ -327,7 +327,8 @@ process_ops(struct rte_crypto_op **ops, enum zuc_operation op_type,
|
||||
if (ops[i]->sess_type == RTE_CRYPTO_OP_SESSIONLESS) {
|
||||
memset(sessions[i], 0, sizeof(struct zuc_session));
|
||||
memset(ops[i]->sym->session, 0,
|
||||
rte_cryptodev_sym_get_header_session_size());
|
||||
rte_cryptodev_sym_get_existing_header_session_size(
|
||||
ops[i]->sym->session));
|
||||
rte_mempool_put(qp->sess_mp_priv, sessions[i]);
|
||||
rte_mempool_put(qp->sess_mp, ops[i]->sym->session);
|
||||
ops[i]->sym->session = NULL;
|
||||
|
@ -12,6 +12,7 @@ LIBABIVER := 6
|
||||
# build flags
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
LDLIBS += -lrte_eal -lrte_mempool -lrte_ring -lrte_mbuf
|
||||
LDLIBS += -lrte_kvargs
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
# Copyright(c) 2017-2019 Intel Corporation
|
||||
|
||||
version = 6
|
||||
allow_experimental_apis = true
|
||||
sources = files('rte_cryptodev.c', 'rte_cryptodev_pmd.c')
|
||||
headers = files('rte_cryptodev.h',
|
||||
'rte_cryptodev_pmd.h',
|
||||
|
@ -1407,6 +1407,16 @@ rte_cryptodev_sym_get_header_session_size(void)
|
||||
return ((sizeof(void *) * nb_drivers) + sizeof(uint8_t));
|
||||
}
|
||||
|
||||
unsigned int __rte_experimental
|
||||
rte_cryptodev_sym_get_existing_header_session_size(
|
||||
struct rte_cryptodev_sym_session *sess)
|
||||
{
|
||||
if (!sess)
|
||||
return 0;
|
||||
else
|
||||
return rte_cryptodev_sym_get_header_session_size();
|
||||
}
|
||||
|
||||
unsigned int __rte_experimental
|
||||
rte_cryptodev_asym_get_header_session_size(void)
|
||||
{
|
||||
|
@ -1132,6 +1132,21 @@ rte_cryptodev_asym_session_clear(uint8_t dev_id,
|
||||
unsigned int
|
||||
rte_cryptodev_sym_get_header_session_size(void);
|
||||
|
||||
/**
|
||||
* Get the size of the header session from created session.
|
||||
*
|
||||
* @param sess
|
||||
* The sym cryptodev session pointer
|
||||
*
|
||||
* @return
|
||||
* - If sess is not NULL, return the size of the header session including
|
||||
* the private data size defined within sess.
|
||||
* - If sess is NULL, return 0.
|
||||
*/
|
||||
unsigned int __rte_experimental
|
||||
rte_cryptodev_sym_get_existing_header_session_size(
|
||||
struct rte_cryptodev_sym_session *sess);
|
||||
|
||||
/**
|
||||
* Get the size of the asymmetric session header, for all registered drivers.
|
||||
*
|
||||
|
@ -101,6 +101,7 @@ EXPERIMENTAL {
|
||||
rte_cryptodev_asym_session_init;
|
||||
rte_cryptodev_asym_xform_capability_check_modlen;
|
||||
rte_cryptodev_asym_xform_capability_check_optype;
|
||||
rte_cryptodev_sym_get_existing_header_session_size;
|
||||
rte_cryptodev_sym_session_get_user_data;
|
||||
rte_cryptodev_sym_session_pool_create;
|
||||
rte_cryptodev_sym_session_set_user_data;
|
||||
|
Loading…
x
Reference in New Issue
Block a user