crypto-ia32: add VAES support for AES-CBC
Type: feature Change-Id: Ic8aa6c48913677537301971469f9627b70c1cec8 Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:

committed by
Florin Coras

parent
bd5c49a161
commit
e9595dba26
@ -65,6 +65,7 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
|
||||
list(APPEND MARCH_VARIANTS "avx2\;-march=core-avx2 -mtune=core-avx2")
|
||||
endif()
|
||||
check_c_compiler_flag("-march=skylake-avx512" compiler_flag_march_skylake_avx512)
|
||||
check_c_compiler_flag("-march=icelake-client" compiler_flag_march_icelake_client)
|
||||
if(compiler_flag_march_skylake_avx512)
|
||||
list(APPEND MARCH_VARIANTS "avx512\;-march=skylake-avx512 -mtune=skylake-avx512")
|
||||
endif()
|
||||
|
@ -22,6 +22,9 @@ list(APPEND VARIANTS "avx2\;-march=core-avx2")
|
||||
if(compiler_flag_march_skylake_avx512)
|
||||
list(APPEND VARIANTS "avx512\;-march=skylake-avx512")
|
||||
endif()
|
||||
if(compiler_flag_march_icelake_client)
|
||||
list(APPEND VARIANTS "vaesni\;-march=icelake-client")
|
||||
endif()
|
||||
|
||||
foreach(VARIANT ${VARIANTS})
|
||||
list(GET VARIANT 0 v)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -746,7 +746,9 @@ foreach_aesni_gcm_handler_type;
|
||||
#undef _
|
||||
|
||||
clib_error_t *
|
||||
#ifdef __AVX512F__
|
||||
#ifdef __VAES__
|
||||
crypto_ia32_aesni_gcm_init_vaes (vlib_main_t * vm)
|
||||
#elif __AVX512F__
|
||||
crypto_ia32_aesni_gcm_init_avx512 (vlib_main_t * vm)
|
||||
#elif __AVX2__
|
||||
crypto_ia32_aesni_gcm_init_avx2 (vlib_main_t * vm)
|
||||
|
@ -38,10 +38,12 @@ extern crypto_ia32_main_t crypto_ia32_main;
|
||||
clib_error_t *crypto_ia32_aesni_cbc_init_sse42 (vlib_main_t * vm);
|
||||
clib_error_t *crypto_ia32_aesni_cbc_init_avx2 (vlib_main_t * vm);
|
||||
clib_error_t *crypto_ia32_aesni_cbc_init_avx512 (vlib_main_t * vm);
|
||||
clib_error_t *crypto_ia32_aesni_cbc_init_vaes (vlib_main_t * vm);
|
||||
|
||||
clib_error_t *crypto_ia32_aesni_gcm_init_sse42 (vlib_main_t * vm);
|
||||
clib_error_t *crypto_ia32_aesni_gcm_init_avx2 (vlib_main_t * vm);
|
||||
clib_error_t *crypto_ia32_aesni_gcm_init_avx512 (vlib_main_t * vm);
|
||||
clib_error_t *crypto_ia32_aesni_gcm_init_vaes (vlib_main_t * vm);
|
||||
#endif /* __crypto_ia32_h__ */
|
||||
|
||||
/*
|
||||
|
@ -72,7 +72,9 @@ crypto_ia32_init (vlib_main_t * vm)
|
||||
vnet_crypto_register_engine (vm, "ia32", 100,
|
||||
"Intel IA32 ISA Optimized Crypto");
|
||||
|
||||
if (clib_cpu_supports_avx512f ())
|
||||
if (clib_cpu_supports_vaes ())
|
||||
error = crypto_ia32_aesni_cbc_init_vaes (vm);
|
||||
else if (clib_cpu_supports_avx512f ())
|
||||
error = crypto_ia32_aesni_cbc_init_avx512 (vm);
|
||||
else if (clib_cpu_supports_avx2 ())
|
||||
error = crypto_ia32_aesni_cbc_init_avx2 (vm);
|
||||
@ -84,7 +86,9 @@ crypto_ia32_init (vlib_main_t * vm)
|
||||
|
||||
if (clib_cpu_supports_pclmulqdq ())
|
||||
{
|
||||
if (clib_cpu_supports_avx512f ())
|
||||
if (clib_cpu_supports_vaes ())
|
||||
error = crypto_ia32_aesni_gcm_init_vaes (vm);
|
||||
else if (clib_cpu_supports_avx512f ())
|
||||
error = crypto_ia32_aesni_gcm_init_avx512 (vm);
|
||||
else if (clib_cpu_supports_avx2 ())
|
||||
error = crypto_ia32_aesni_gcm_init_avx2 (vm);
|
||||
|
Reference in New Issue
Block a user