crypto/aesni_mb: support DOCSIS protocol
[dpdk.git] / drivers / crypto / aesni_mb / aesni_mb_pmd_private.h
index b3cb2f1..e0c7b4f 100644 (file)
@@ -7,6 +7,12 @@
 
 #include <intel-ipsec-mb.h>
 
+#if defined(RTE_LIBRTE_SECURITY) && (IMB_VERSION_NUM) >= IMB_VERSION(0, 54, 0)
+#define AESNI_MB_DOCSIS_SEC_ENABLED 1
+#include <rte_security.h>
+#include <rte_security_driver.h>
+#endif
+
 enum aesni_mb_vector_mode {
        RTE_AESNI_MB_NOT_SUPPORTED = 0,
        RTE_AESNI_MB_SSE,
@@ -272,9 +278,23 @@ aesni_mb_set_session_parameters(const MB_MGR *mb_mgr,
                struct aesni_mb_session *sess,
                const struct rte_crypto_sym_xform *xform);
 
-/** device specific operations function pointer structure */
-extern struct rte_cryptodev_ops *rte_aesni_mb_pmd_ops;
-
+#ifdef AESNI_MB_DOCSIS_SEC_ENABLED
+extern int
+aesni_mb_set_docsis_sec_session_parameters(
+               __rte_unused struct rte_cryptodev *dev,
+               struct rte_security_session_conf *conf,
+               void *sess);
+#endif
 
+/** device specific operations function pointer structures */
+extern struct rte_cryptodev_ops *rte_aesni_mb_pmd_ops;
+#ifdef AESNI_MB_DOCSIS_SEC_ENABLED
+extern struct rte_security_ops *rte_aesni_mb_pmd_sec_ops;
+#endif
+
+extern uint32_t
+aesni_mb_cpu_crypto_process_bulk(struct rte_cryptodev *dev,
+       struct rte_cryptodev_sym_session *sess, union rte_crypto_sym_ofs sofs,
+       struct rte_crypto_sym_vec *vec);
 
 #endif /* _AESNI_MB_PMD_PRIVATE_H_ */