]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | /* SPDX-License-Identifier: BSD-3-Clause |
2 | * Copyright(c) 2016-2018 Intel Corporation | |
3 | */ | |
4 | ||
5 | #ifndef _RTE_SNOW3G_PMD_PRIVATE_H_ | |
6 | #define _RTE_SNOW3G_PMD_PRIVATE_H_ | |
7 | ||
8 | #include <sso_snow3g.h> | |
9 | ||
10 | #define CRYPTODEV_NAME_SNOW3G_PMD crypto_snow3g | |
11 | /**< SNOW 3G PMD device name */ | |
12 | ||
13 | /** SNOW 3G PMD LOGTYPE DRIVER */ | |
14 | int snow3g_logtype_driver; | |
15 | ||
16 | #define SNOW3G_LOG(level, fmt, ...) \ | |
17 | rte_log(RTE_LOG_ ## level, snow3g_logtype_driver, \ | |
18 | "%s() line %u: " fmt "\n", __func__, __LINE__, \ | |
19 | ## __VA_ARGS__) | |
20 | ||
21 | #define SNOW3G_DIGEST_LENGTH 4 | |
22 | ||
23 | /** private data structure for each virtual SNOW 3G device */ | |
24 | struct snow3g_private { | |
25 | unsigned max_nb_queue_pairs; | |
26 | /**< Max number of queue pairs supported by device */ | |
27 | }; | |
28 | ||
29 | /** SNOW 3G buffer queue pair */ | |
30 | struct snow3g_qp { | |
31 | uint16_t id; | |
32 | /**< Queue Pair Identifier */ | |
33 | char name[RTE_CRYPTODEV_NAME_MAX_LEN]; | |
34 | /**< Unique Queue Pair Name */ | |
35 | struct rte_ring *processed_ops; | |
36 | /**< Ring for placing processed ops */ | |
37 | struct rte_mempool *sess_mp; | |
38 | /**< Session Mempool */ | |
9f95a23c TL |
39 | struct rte_mempool *sess_mp_priv; |
40 | /**< Session Private Data Mempool */ | |
11fdf7f2 TL |
41 | struct rte_cryptodev_stats qp_stats; |
42 | /**< Queue pair statistics */ | |
43 | uint8_t temp_digest[SNOW3G_DIGEST_LENGTH]; | |
44 | /**< Buffer used to store the digest generated | |
45 | * by the driver when verifying a digest provided | |
46 | * by the user (using authentication verify operation) | |
47 | */ | |
48 | } __rte_cache_aligned; | |
49 | ||
50 | enum snow3g_operation { | |
51 | SNOW3G_OP_ONLY_CIPHER, | |
52 | SNOW3G_OP_ONLY_AUTH, | |
53 | SNOW3G_OP_CIPHER_AUTH, | |
54 | SNOW3G_OP_AUTH_CIPHER, | |
55 | SNOW3G_OP_NOT_SUPPORTED | |
56 | }; | |
57 | ||
58 | /** SNOW 3G private session structure */ | |
59 | struct snow3g_session { | |
60 | enum snow3g_operation op; | |
61 | enum rte_crypto_auth_operation auth_op; | |
62 | sso_snow3g_key_schedule_t pKeySched_cipher; | |
63 | sso_snow3g_key_schedule_t pKeySched_hash; | |
64 | uint16_t cipher_iv_offset; | |
65 | uint16_t auth_iv_offset; | |
66 | } __rte_cache_aligned; | |
67 | ||
68 | ||
69 | extern int | |
70 | snow3g_set_session_parameters(struct snow3g_session *sess, | |
71 | const struct rte_crypto_sym_xform *xform); | |
72 | ||
73 | ||
74 | /** device specific operations function pointer structure */ | |
75 | extern struct rte_cryptodev_ops *rte_snow3g_pmd_ops; | |
76 | ||
77 | ||
78 | ||
79 | #endif /* _RTE_SNOW3G_PMD_PRIVATE_H_ */ |