aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-dpdk/odp_crypto.c
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linux-dpdk/odp_crypto.c')
-rw-r--r--platform/linux-dpdk/odp_crypto.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/platform/linux-dpdk/odp_crypto.c b/platform/linux-dpdk/odp_crypto.c
index 3c9d8cc3e..a5846ef42 100644
--- a/platform/linux-dpdk/odp_crypto.c
+++ b/platform/linux-dpdk/odp_crypto.c
@@ -575,7 +575,14 @@ static void capability_process(struct rte_cryptodev_info *dev_info,
auths->bit.sha512_hmac = 1;
if (cap_auth_algo == RTE_CRYPTO_AUTH_AES_GMAC)
auths->bit.aes_gmac = 1;
- if (cap_auth_algo == RTE_CRYPTO_AUTH_AES_CMAC)
+
+ /* Using AES-CMAC with the aesni_mb driver for IPsec
+ * causes a crash inside the intel-mb library.
+ * As a workaround, we do not use AES-CMAC with
+ * the aesni_mb driver.
+ */
+ if (cap_auth_algo == RTE_CRYPTO_AUTH_AES_CMAC &&
+ !is_dev_aesni_mb(dev_info))
auths->bit.aes_cmac = 1;
/* Combination of (3)DES-CBC and AES-XCBC-MAC does not