diff options
author | Klement Sekera <ksekera@cisco.com> | 2018-11-12 14:32:19 +0100 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2018-11-29 07:20:45 +0000 |
commit | 4f10db317382832068d67b5d19be4a696d80c19a (patch) | |
tree | 2f7e41527884b2b8ed28f40eb2362e657e4d48d4 /src/vnet/ipsec/ipsec.h | |
parent | 555ea9a105bd0681e3b94c77cf8d9cfe22be03a9 (diff) |
ipsec: move ipsec defs to ipsec.h
Change-Id: Ia3dcd98edb6188deb96a3a99d831e71b2ffa0060
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Diffstat (limited to 'src/vnet/ipsec/ipsec.h')
-rw-r--r-- | src/vnet/ipsec/ipsec.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/vnet/ipsec/ipsec.h b/src/vnet/ipsec/ipsec.h index ced71194f39..d40767001b8 100644 --- a/src/vnet/ipsec/ipsec.h +++ b/src/vnet/ipsec/ipsec.h @@ -18,6 +18,13 @@ #include <vnet/ip/ip.h> #include <vnet/feature/feature.h> +#include <openssl/hmac.h> +#include <openssl/rand.h> +#include <openssl/evp.h> + +#include <vppinfra/types.h> +#include <vppinfra/cache.h> + #define IPSEC_FLAG_IPSEC_GRE_TUNNEL (1 << 0) #define foreach_ipsec_output_next \ @@ -292,6 +299,53 @@ typedef struct typedef struct { + const EVP_CIPHER *type; + u8 iv_size; + u8 block_size; +} ipsec_proto_main_crypto_alg_t; + +typedef struct +{ + const EVP_MD *md; + u8 trunc_size; +} ipsec_proto_main_integ_alg_t; + +typedef struct +{ + CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + EVP_CIPHER_CTX *encrypt_ctx; +#else + EVP_CIPHER_CTX encrypt_ctx; +#endif + CLIB_CACHE_LINE_ALIGN_MARK (cacheline1); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + EVP_CIPHER_CTX *decrypt_ctx; +#else + EVP_CIPHER_CTX decrypt_ctx; +#endif + CLIB_CACHE_LINE_ALIGN_MARK (cacheline2); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + HMAC_CTX *hmac_ctx; +#else + HMAC_CTX hmac_ctx; +#endif + ipsec_crypto_alg_t last_encrypt_alg; + ipsec_crypto_alg_t last_decrypt_alg; + ipsec_integ_alg_t last_integ_alg; +} ipsec_proto_main_per_thread_data_t; + +typedef struct +{ + ipsec_proto_main_crypto_alg_t *ipsec_proto_main_crypto_algs; + ipsec_proto_main_integ_alg_t *ipsec_proto_main_integ_algs; + ipsec_proto_main_per_thread_data_t *per_thread_data; +} ipsec_proto_main_t; + +extern ipsec_proto_main_t ipsec_proto_main; + +typedef struct +{ /* pool of tunnel instances */ ipsec_spd_t *spds; ipsec_sa_t *sad; |