fix PMD wording
[dpdk.git] / drivers / crypto / qat / qat_sym_pmd.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2015-2018 Intel Corporation
3  */
4
5 #ifndef _QAT_SYM_PMD_H_
6 #define _QAT_SYM_PMD_H_
7
8 #ifdef BUILD_QAT_SYM
9
10 #include <rte_ether.h>
11 #include <rte_cryptodev.h>
12 #ifdef RTE_LIB_SECURITY
13 #include <rte_security.h>
14 #endif
15
16 #include "qat_crypto.h"
17 #include "qat_device.h"
18
19 /** Intel(R) QAT Symmetric Crypto PMD name */
20 #define CRYPTODEV_NAME_QAT_SYM_PMD      crypto_qat
21
22 /* Internal capabilities */
23 #define QAT_SYM_CAP_MIXED_CRYPTO        (1 << 0)
24 #define QAT_SYM_CAP_VALID               (1 << 31)
25
26 /**
27  * Macro to add a sym capability
28  * helper function to add an sym capability
29  * <n: name> <b: block size> <k: key size> <d: digest size>
30  * <a: aad_size> <i: iv_size>
31  **/
32 #define QAT_SYM_PLAIN_AUTH_CAP(n, b, d)                                 \
33         {                                                               \
34                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,                     \
35                 {.sym = {                                               \
36                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,        \
37                         {.auth = {                                      \
38                                 .algo = RTE_CRYPTO_AUTH_##n,            \
39                                 b, d                                    \
40                         }, }                                            \
41                 }, }                                                    \
42         }
43
44 #define QAT_SYM_AUTH_CAP(n, b, k, d, a, i)                              \
45         {                                                               \
46                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,                     \
47                 {.sym = {                                               \
48                         .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,        \
49                         {.auth = {                                      \
50                                 .algo = RTE_CRYPTO_AUTH_##n,            \
51                                 b, k, d, a, i                           \
52                         }, }                                            \
53                 }, }                                                    \
54         }
55
56 #define QAT_SYM_AEAD_CAP(n, b, k, d, a, i)                              \
57         {                                                               \
58                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,                     \
59                 {.sym = {                                               \
60                         .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,        \
61                         {.aead = {                                      \
62                                 .algo = RTE_CRYPTO_AEAD_##n,            \
63                                 b, k, d, a, i                           \
64                         }, }                                            \
65                 }, }                                                    \
66         }
67
68 #define QAT_SYM_CIPHER_CAP(n, b, k, i)                                  \
69         {                                                               \
70                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,                     \
71                 {.sym = {                                               \
72                         .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,      \
73                         {.cipher = {                                    \
74                                 .algo = RTE_CRYPTO_CIPHER_##n,          \
75                                 b, k, i                                 \
76                         }, }                                            \
77                 }, }                                                    \
78         }
79
80 extern uint8_t qat_sym_driver_id;
81
82 extern struct qat_crypto_gen_dev_ops qat_sym_gen_dev_ops[];
83
84 int
85 qat_sym_dev_create(struct qat_pci_device *qat_pci_dev,
86                 struct qat_dev_cmd_param *qat_dev_cmd_param);
87
88 int
89 qat_sym_dev_destroy(struct qat_pci_device *qat_pci_dev);
90
91 void
92 qat_sym_init_op_cookie(void *op_cookie);
93
94 #endif
95 #endif /* _QAT_SYM_PMD_H_ */