Add crypto algo match. Signed-off-by: Hanxiao Li --- drivers/common/zsda/meson.build | 2 +- drivers/crypto/zsda/zsda_sym.c | 49 +++++++++++++++++++++++++++++++++ drivers/crypto/zsda/zsda_sym.h | 20 ++++++++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 drivers/crypto/zsda/zsda_sym.c create mode 100644 drivers/crypto/zsda/zsda_sym.h diff --git a/drivers/common/zsda/meson.build b/drivers/common/zsda/meson.build index aa911ba4d5..9435cb6a18 100644 --- a/drivers/common/zsda/meson.build +++ b/drivers/common/zsda/meson.build @@ -30,7 +30,7 @@ zsda_crypto_path = 'crypto/zsda' zsda_crypto_relpath = '../../' + zsda_crypto_path if zsda_crypto libcrypto = dependency('libcrypto', required: false, method: 'pkg-config') - foreach f: ['zsda_sym_pmd.c', 'zsda_sym_session.c'] + foreach f: ['zsda_sym_pmd.c', 'zsda_sym_session.c', 'zsda_sym.c'] sources += files(join_paths(zsda_crypto_relpath, f)) endforeach ext_deps += libcrypto diff --git a/drivers/crypto/zsda/zsda_sym.c b/drivers/crypto/zsda/zsda_sym.c new file mode 100644 index 0000000000..66590a1e35 --- /dev/null +++ b/drivers/crypto/zsda/zsda_sym.c @@ -0,0 +1,49 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2024 ZTE Corporation + */ + +#include "zsda_sym.h" + +int +zsda_encry_match(const void *op_in) +{ + const struct rte_crypto_op *op = op_in; + struct rte_cryptodev_sym_session *session = op->sym->session; + struct zsda_sym_session *sess = + (struct zsda_sym_session *)session->driver_priv_data; + + if (sess->chain_order == ZSDA_SYM_CHAIN_ONLY_CIPHER && + sess->cipher.op == RTE_CRYPTO_CIPHER_OP_ENCRYPT) + return 1; + else + return 0; +} + +int +zsda_decry_match(const void *op_in) +{ + const struct rte_crypto_op *op = op_in; + struct rte_cryptodev_sym_session *session = op->sym->session; + struct zsda_sym_session *sess = + (struct zsda_sym_session *)session->driver_priv_data; + + if (sess->chain_order == ZSDA_SYM_CHAIN_ONLY_CIPHER && + sess->cipher.op == RTE_CRYPTO_CIPHER_OP_DECRYPT) + return 1; + else + return 0; +} + +int +zsda_hash_match(const void *op_in) +{ + const struct rte_crypto_op *op = op_in; + struct rte_cryptodev_sym_session *session = op->sym->session; + struct zsda_sym_session *sess = + (struct zsda_sym_session *)session->driver_priv_data; + + if (sess->chain_order == ZSDA_SYM_CHAIN_ONLY_AUTH) + return 1; + else + return 0; +} diff --git a/drivers/crypto/zsda/zsda_sym.h b/drivers/crypto/zsda/zsda_sym.h new file mode 100644 index 0000000000..4e52958862 --- /dev/null +++ b/drivers/crypto/zsda/zsda_sym.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2024 ZTE Corporation + */ + +#ifndef _ZSDA_SYM_H_ +#define _ZSDA_SYM_H_ + +#include "zsda_sym_pmd.h" + +__rte_unused int +zsda_encry_match(const void *op_in); + +__rte_unused int +zsda_decry_match(const void *op_in); + +__rte_unused int +zsda_hash_match(const void *op_in); + + +#endif /* _ZSDA_SYM_H_ */ -- 2.27.0