1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2015-2018 Intel Corporation
5 #ifndef _QAT_SYM_PMD_H_
6 #define _QAT_SYM_PMD_H_
10 #include <rte_ether.h>
11 #include <rte_cryptodev.h>
12 #ifdef RTE_LIB_SECURITY
13 #include <rte_security.h>
16 #include "qat_crypto.h"
17 #include "qat_device.h"
19 /** Intel(R) QAT Symmetric Crypto PMD name */
20 #define CRYPTODEV_NAME_QAT_SYM_PMD crypto_qat
22 /* Internal capabilities */
23 #define QAT_SYM_CAP_MIXED_CRYPTO (1 << 0)
24 #define QAT_SYM_CAP_VALID (1 << 31)
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>
32 #define QAT_SYM_PLAIN_AUTH_CAP(n, b, d) \
34 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
36 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
38 .algo = RTE_CRYPTO_AUTH_##n, \
44 #define QAT_SYM_AUTH_CAP(n, b, k, d, a, i) \
46 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
48 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
50 .algo = RTE_CRYPTO_AUTH_##n, \
56 #define QAT_SYM_AEAD_CAP(n, b, k, d, a, i) \
58 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
60 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD, \
62 .algo = RTE_CRYPTO_AEAD_##n, \
68 #define QAT_SYM_CIPHER_CAP(n, b, k, i) \
70 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
72 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
74 .algo = RTE_CRYPTO_CIPHER_##n, \
80 extern uint8_t qat_sym_driver_id;
82 extern struct qat_crypto_gen_dev_ops qat_sym_gen_dev_ops[];
85 qat_sym_dev_create(struct qat_pci_device *qat_pci_dev,
86 struct qat_dev_cmd_param *qat_dev_cmd_param);
89 qat_sym_dev_destroy(struct qat_pci_device *qat_pci_dev);
92 qat_sym_init_op_cookie(void *op_cookie);
95 #endif /* _QAT_SYM_PMD_H_ */