eal: fix IOVA mode selection as VA for PCI drivers
[dpdk.git] / drivers / crypto / openssl / rte_openssl_pmd_private.h
index 29fcb76..43ac381 100644 (file)
@@ -8,6 +8,9 @@
 #include <openssl/evp.h>
 #include <openssl/hmac.h>
 #include <openssl/des.h>
+#include <openssl/rsa.h>
+#include <openssl/dh.h>
+#include <openssl/dsa.h>
 
 #define CRYPTODEV_NAME_OPENSSL_PMD     crypto_openssl
 /**< Open SSL Crypto PMD device name */
@@ -61,6 +64,8 @@ struct openssl_qp {
        /**< Ring for placing process packets */
        struct rte_mempool *sess_mp;
        /**< Session Mempool */
+       struct rte_mempool *sess_mp_priv;
+       /**< Session Private Data Mempool */
        struct rte_cryptodev_stats stats;
        /**< Queue pair statistics */
        uint8_t temp_digest[DIGEST_LENGTH_MAX];
@@ -142,6 +147,31 @@ struct openssl_session {
 
 } __rte_cache_aligned;
 
+/** OPENSSL crypto private asymmetric session structure */
+struct openssl_asym_session {
+       enum rte_crypto_asym_xform_type xfrm_type;
+       union {
+               struct rsa {
+                       RSA *rsa;
+               } r;
+               struct exp {
+                       BIGNUM *exp;
+                       BIGNUM *mod;
+                       BN_CTX *ctx;
+               } e;
+               struct mod {
+                       BIGNUM *modulus;
+                       BN_CTX *ctx;
+               } m;
+               struct dh {
+                       DH *dh_key;
+                       uint32_t key_op;
+               } dh;
+               struct {
+                       DSA *dsa;
+               } s;
+       } u;
+} __rte_cache_aligned;
 /** Set and validate OPENSSL crypto session parameters */
 extern int
 openssl_set_session_parameters(struct openssl_session *sess,