aboutsummaryrefslogtreecommitdiffstats
path: root/examples/vhost_crypto
diff options
context:
space:
mode:
authorLuca Boccassi <luca.boccassi@gmail.com>2018-11-19 12:59:01 +0000
committerLuca Boccassi <luca.boccassi@gmail.com>2018-11-19 12:59:24 +0000
commit29058550643267a554e0368806dece63b047c5cb (patch)
treea6f573fe3fbc14585529b83cfcc65da2dceefbf5 /examples/vhost_crypto
parent8a853e3f0275efc8b05cb195085d45946942744a (diff)
New upstream version 18.11-rc4upstream/18.11-rc4
Change-Id: I861e1a2f7df210f57f44f1ad56b9ef789a4675e3 Signed-off-by: Luca Boccassi <luca.boccassi@gmail.com>
Diffstat (limited to 'examples/vhost_crypto')
-rw-r--r--examples/vhost_crypto/main.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/examples/vhost_crypto/main.c b/examples/vhost_crypto/main.c
index cbb5e49d..f08babd9 100644
--- a/examples/vhost_crypto/main.c
+++ b/examples/vhost_crypto/main.c
@@ -4,6 +4,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
#include <stdbool.h>
#include <assert.h>
@@ -442,6 +443,9 @@ free_resource(void)
struct lcore_option *lo = &options.los[i];
struct vhost_crypto_info *info = options.infos[i];
+ if (!info)
+ continue;
+
rte_mempool_free(info->cop_pool);
rte_mempool_free(info->sess_pool);
@@ -493,6 +497,19 @@ main(int argc, char *argv[])
info->nb_vids = lo->nb_sockets;
rte_cryptodev_info_get(info->cid, &dev_info);
+ if (options.zero_copy == RTE_VHOST_CRYPTO_ZERO_COPY_ENABLE) {
+#define VHOST_CRYPTO_CDEV_NAME_AESNI_MB_PMD crypto_aesni_mb
+#define VHOST_CRYPTO_CDEV_NAME_AESNI_GCM_PMD crypto_aesni_gcm
+ if (strstr(dev_info.driver_name,
+ RTE_STR(VHOST_CRYPTO_CDEV_NAME_AESNI_MB_PMD)) ||
+ strstr(dev_info.driver_name,
+ RTE_STR(VHOST_CRYPTO_CDEV_NAME_AESNI_GCM_PMD)))
+ RTE_LOG(ERR, USER1, "Cannot enable zero-copy in %s\n",
+ dev_info.driver_name);
+ ret = -EPERM;
+ goto error_exit;
+ }
+
if (dev_info.max_nb_queue_pairs < info->qid + 1) {
RTE_LOG(ERR, USER1, "Number of queues cannot over %u",
dev_info.max_nb_queue_pairs);