aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/crypto_native/main.c
diff options
context:
space:
mode:
authorDamjan Marion <dmarion@me.com>2020-01-31 10:24:07 +0100
committerDamjan Marion <damarion@cisco.com>2020-01-31 18:06:09 +0100
commit776644efe78f427a75fc5e122014b44b39d470c3 (patch)
treef8487ba02ad941bc2c09206b3d0477db3cc595ba /src/plugins/crypto_native/main.c
parent62b1cea6eda4060968f44b2639fdd756617211f4 (diff)
crypto-native: add ARMv8 AES-CBC implementation
Type: feature Change-Id: I32256061b9509880eec843db2f918879cdafbe47 Signed-off-by: Damjan Marion <dmarion@me.com>
Diffstat (limited to 'src/plugins/crypto_native/main.c')
-rw-r--r--src/plugins/crypto_native/main.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/crypto_native/main.c b/src/plugins/crypto_native/main.c
index 2c03ee20309..d338ab6d910 100644
--- a/src/plugins/crypto_native/main.c
+++ b/src/plugins/crypto_native/main.c
@@ -62,7 +62,8 @@ crypto_native_init (vlib_main_t * vm)
vlib_thread_main_t *tm = vlib_get_thread_main ();
clib_error_t *error = 0;
- if (clib_cpu_supports_x86_aes () == 0)
+ if (clib_cpu_supports_x86_aes () == 0 &&
+ clib_cpu_supports_aarch64_aes () == 0)
return 0;
vec_validate_aligned (cm->per_thread_data, tm->n_vlib_mains - 1,
@@ -72,6 +73,7 @@ crypto_native_init (vlib_main_t * vm)
vnet_crypto_register_engine (vm, "native", 100,
"Native ISA Optimized Crypto");
+#if __x86_64__
if (clib_cpu_supports_vaes ())
error = crypto_native_aes_cbc_init_vaes (vm);
else if (clib_cpu_supports_avx512f ())
@@ -98,6 +100,13 @@ crypto_native_init (vlib_main_t * vm)
if (error)
goto error;
}
+#endif
+#if __aarch64__
+ error = crypto_native_aes_cbc_init_neon (vm);
+
+ if (error)
+ goto error;
+#endif
vnet_crypto_register_key_handler (vm, cm->crypto_engine_index,
crypto_native_key_handler);