Imported Upstream version 16.11
[deb_dpdk.git] / drivers / crypto / aesni_mb / rte_aesni_mb_pmd.c
index 3415ac1..f07cd07 100644 (file)
@@ -34,7 +34,7 @@
 #include <rte_hexdump.h>
 #include <rte_cryptodev.h>
 #include <rte_cryptodev_pmd.h>
-#include <rte_dev.h>
+#include <rte_vdev.h>
 #include <rte_malloc.h>
 #include <rte_cpuflags.h>
 
@@ -54,7 +54,7 @@ create_unique_device_name(char *name, size_t size)
        if (name == NULL)
                return -EINVAL;
 
-       ret = snprintf(name, size, "%s_%u", CRYPTODEV_NAME_AESNI_MB_PMD,
+       ret = snprintf(name, size, "%s_%u", RTE_STR(CRYPTODEV_NAME_AESNI_MB_PMD),
                        unique_name_id++);
        if (ret < 0)
                return ret;
@@ -222,6 +222,9 @@ aesni_mb_set_session_cipher_parameters(const struct aesni_mb_ops *mb_ops,
        case RTE_CRYPTO_CIPHER_AES_CBC:
                sess->cipher.mode = CBC;
                break;
+       case RTE_CRYPTO_CIPHER_AES_CTR:
+               sess->cipher.mode = CNTR;
+               break;
        default:
                MB_LOG_ERR("Unsupported cipher mode parameter");
                return -1;
@@ -379,9 +382,11 @@ process_crypto_op(struct aesni_mb_qp *qp, struct rte_crypto_op *op,
                /* append space for output data to mbuf */
                char *odata = rte_pktmbuf_append(m_dst,
                                rte_pktmbuf_data_len(op->sym->m_src));
-               if (odata == NULL)
+               if (odata == NULL) {
                        MB_LOG_ERR("failed to allocate space in destination "
                                        "mbuf for source data");
+                       return NULL;
+               }
 
                memcpy(odata, rte_pktmbuf_mtod(op->sym->m_src, void*),
                                rte_pktmbuf_data_len(op->sym->m_src));
@@ -560,7 +565,7 @@ aesni_mb_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
                goto flush_jobs;
        else
                qp->stats.enqueued_count += processed_jobs;
-               return i;
+       return i;
 
 flush_jobs:
        /*
@@ -590,7 +595,7 @@ aesni_mb_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
 }
 
 
-static int cryptodev_aesni_mb_uninit(const char *name);
+static int cryptodev_aesni_mb_remove(const char *name);
 
 static int
 cryptodev_aesni_mb_create(const char *name,
@@ -670,13 +675,13 @@ cryptodev_aesni_mb_create(const char *name,
 init_error:
        MB_LOG_ERR("driver %s: cryptodev_aesni_create failed", name);
 
-       cryptodev_aesni_mb_uninit(crypto_dev_name);
+       cryptodev_aesni_mb_remove(crypto_dev_name);
        return -EFAULT;
 }
 
 
 static int
-cryptodev_aesni_mb_init(const char *name,
+cryptodev_aesni_mb_probe(const char *name,
                const char *input_args)
 {
        struct rte_crypto_vdev_init_params init_params = {
@@ -698,7 +703,7 @@ cryptodev_aesni_mb_init(const char *name,
 }
 
 static int
-cryptodev_aesni_mb_uninit(const char *name)
+cryptodev_aesni_mb_remove(const char *name)
 {
        if (name == NULL)
                return -EINVAL;
@@ -709,11 +714,14 @@ cryptodev_aesni_mb_uninit(const char *name)
        return 0;
 }
 
-static struct rte_driver cryptodev_aesni_mb_pmd_drv = {
-       .name = CRYPTODEV_NAME_AESNI_MB_PMD,
-       .type = PMD_VDEV,
-       .init = cryptodev_aesni_mb_init,
-       .uninit = cryptodev_aesni_mb_uninit
+static struct rte_vdev_driver cryptodev_aesni_mb_pmd_drv = {
+       .probe = cryptodev_aesni_mb_probe,
+       .remove = cryptodev_aesni_mb_remove
 };
 
-PMD_REGISTER_DRIVER(cryptodev_aesni_mb_pmd_drv);
+RTE_PMD_REGISTER_VDEV(CRYPTODEV_NAME_AESNI_MB_PMD, cryptodev_aesni_mb_pmd_drv);
+RTE_PMD_REGISTER_ALIAS(CRYPTODEV_NAME_AESNI_MB_PMD, cryptodev_aesni_mb_pmd);
+RTE_PMD_REGISTER_PARAM_STRING(CRYPTODEV_NAME_AESNI_MB_PMD,
+       "max_nb_queue_pairs=<int> "
+       "max_nb_sessions=<int> "
+       "socket_id=<int>");