f-stack/dpdk/drivers/crypto/uadk/uadk_crypto_pmd_private.h

80 lines
1.8 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright 2022-2023 Huawei Technologies Co.,Ltd. All rights reserved.
* Copyright 2022-2023 Linaro ltd.
*/
#ifndef _UADK_CRYPTO_PMD_PRIVATE_H_
#define _UADK_CRYPTO_PMD_PRIVATE_H_
/* Maximum length for digest (SHA-512 needs 64 bytes) */
#define DIGEST_LENGTH_MAX 64
struct uadk_qp {
/* Ring for placing process packets */
struct rte_ring *processed_pkts;
/* Queue pair statistics */
struct rte_cryptodev_stats qp_stats;
/* Queue Pair Identifier */
uint16_t id;
/* Unique Queue Pair Name */
char name[RTE_CRYPTODEV_NAME_MAX_LEN];
/* Buffer used to store the digest generated
* by the driver when verifying a digest provided
* by the user (using authentication verify operation)
*/
uint8_t temp_digest[DIGEST_LENGTH_MAX];
} __rte_cache_aligned;
enum uadk_chain_order {
UADK_CHAIN_ONLY_CIPHER,
UADK_CHAIN_ONLY_AUTH,
UADK_CHAIN_CIPHER_AUTH,
UADK_CHAIN_AUTH_CIPHER,
UADK_CHAIN_NOT_SUPPORTED
};
struct uadk_crypto_session {
handle_t handle_cipher;
handle_t handle_digest;
enum uadk_chain_order chain_order;
/* IV parameters */
struct {
uint16_t length;
uint16_t offset;
} iv;
/* Cipher Parameters */
struct {
enum rte_crypto_cipher_operation direction;
struct wd_cipher_req req;
} cipher;
/* Authentication Parameters */
struct {
struct wd_digest_req req;
enum rte_crypto_auth_operation operation;
uint16_t digest_length;
} auth;
} __rte_cache_aligned;
enum uadk_crypto_version {
UADK_CRYPTO_V2,
UADK_CRYPTO_V3,
};
struct uadk_crypto_priv {
bool env_cipher_init;
bool env_auth_init;
enum uadk_crypto_version version;
} __rte_cache_aligned;
extern int uadk_crypto_logtype;
#define UADK_LOG(level, fmt, ...) \
rte_log(RTE_LOG_ ## level, uadk_crypto_logtype, \
"%s() line %u: " fmt "\n", __func__, __LINE__, \
## __VA_ARGS__)
#endif /* _UADK_CRYPTO_PMD_PRIVATE_H_ */