+ len = (vec->aead.algo == RTE_CRYPTO_AEAD_AES_CCM) ?
+ (vec->aead.aad.len + AES_CCM_AAD_PAD_SIZE) :
+ vec->aead.aad.len;
+
+ dst = rte_malloc(NULL, len, 16);
+ if (!dst) {
+ RTE_LOG(ERR, PMD, "Error %i: Not enough memory\n", -ENOMEM);
+ return -ENOMEM;
+ }
+
+ sym->aead.aad.data = dst;
+ sym->aead.aad.phys_addr = rte_malloc_virt2iova(dst);
+ if (vec->aead.algo == RTE_CRYPTO_AEAD_AES_CCM)
+ memcpy(dst, vec->aead.aad.data,
+ vec->aead.aad.len + AES_CCM_AAD_PAD_SIZE);
+ else
+ memcpy(dst, vec->aead.aad.data,
+ vec->aead.aad.len);
+