summaryrefslogtreecommitdiffstats
path: root/src/plugins/crypto_native/main.c
diff options
context:
space:
mode:
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);