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")
|
list(APPEND MARCH_VARIANTS "avx2\;-march=core-avx2 -mtune=core-avx2")
|
||||||
endif()
|
endif()
|
||||||
check_c_compiler_flag("-march=skylake-avx512" compiler_flag_march_skylake_avx512)
|
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)
|
if(compiler_flag_march_skylake_avx512)
|
||||||
list(APPEND MARCH_VARIANTS "avx512\;-march=skylake-avx512 -mtune=skylake-avx512")
|
list(APPEND MARCH_VARIANTS "avx512\;-march=skylake-avx512 -mtune=skylake-avx512")
|
||||||
endif()
|
endif()
|
||||||
|
@ -22,6 +22,9 @@ list(APPEND VARIANTS "avx2\;-march=core-avx2")
|
|||||||
if(compiler_flag_march_skylake_avx512)
|
if(compiler_flag_march_skylake_avx512)
|
||||||
list(APPEND VARIANTS "avx512\;-march=skylake-avx512")
|
list(APPEND VARIANTS "avx512\;-march=skylake-avx512")
|
||||||
endif()
|
endif()
|
||||||
|
if(compiler_flag_march_icelake_client)
|
||||||
|
list(APPEND VARIANTS "vaesni\;-march=icelake-client")
|
||||||
|
endif()
|
||||||
|
|
||||||
foreach(VARIANT ${VARIANTS})
|
foreach(VARIANT ${VARIANTS})
|
||||||
list(GET VARIANT 0 v)
|
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 _
|
#undef _
|
||||||
|
|
||||||
clib_error_t *
|
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)
|
crypto_ia32_aesni_gcm_init_avx512 (vlib_main_t * vm)
|
||||||
#elif __AVX2__
|
#elif __AVX2__
|
||||||
crypto_ia32_aesni_gcm_init_avx2 (vlib_main_t * vm)
|
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_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_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_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_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_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_avx512 (vlib_main_t * vm);
|
||||||
|
clib_error_t *crypto_ia32_aesni_gcm_init_vaes (vlib_main_t * vm);
|
||||||
#endif /* __crypto_ia32_h__ */
|
#endif /* __crypto_ia32_h__ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -72,7 +72,9 @@ crypto_ia32_init (vlib_main_t * vm)
|
|||||||
vnet_crypto_register_engine (vm, "ia32", 100,
|
vnet_crypto_register_engine (vm, "ia32", 100,
|
||||||
"Intel IA32 ISA Optimized Crypto");
|
"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);
|
error = crypto_ia32_aesni_cbc_init_avx512 (vm);
|
||||||
else if (clib_cpu_supports_avx2 ())
|
else if (clib_cpu_supports_avx2 ())
|
||||||
error = crypto_ia32_aesni_cbc_init_avx2 (vm);
|
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_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);
|
error = crypto_ia32_aesni_gcm_init_avx512 (vm);
|
||||||
else if (clib_cpu_supports_avx2 ())
|
else if (clib_cpu_supports_avx2 ())
|
||||||
error = crypto_ia32_aesni_gcm_init_avx2 (vm);
|
error = crypto_ia32_aesni_gcm_init_avx2 (vm);
|
||||||
|
Reference in New Issue
Block a user