vdev: rename init/uninit ops to probe/remove
[dpdk.git] / drivers / crypto / aesni_gcm / aesni_gcm_pmd.c
index 83aa272..317c556 100644 (file)
@@ -37,7 +37,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>
 
@@ -57,7 +57,7 @@ create_unique_device_name(char *name, size_t size)
        if (name == NULL)
                return -EINVAL;
 
-       ret = snprintf(name, size, "%s_%u", CRYPTODEV_NAME_AESNI_GCM_PMD,
+       ret = snprintf(name, size, "%s_%u", RTE_STR(CRYPTODEV_NAME_AESNI_GCM_PMD),
                        unique_name_id++);
        if (ret < 0)
                return ret;
@@ -180,8 +180,9 @@ aesni_gcm_get_session(struct aesni_gcm_qp *qp, struct rte_crypto_sym_op *op)
 {
        struct aesni_gcm_session *sess = NULL;
 
-       if (op->type == RTE_CRYPTO_SYM_OP_WITH_SESSION) {
-               if (unlikely(op->session->type != RTE_CRYPTODEV_AESNI_GCM_PMD))
+       if (op->sess_type == RTE_CRYPTO_SYM_OP_WITH_SESSION) {
+               if (unlikely(op->session->dev_type
+                                       != RTE_CRYPTODEV_AESNI_GCM_PMD))
                        return sess;
 
                sess = (struct aesni_gcm_session *)op->session->_private;
@@ -339,7 +340,7 @@ handle_completed_gcm_crypto_op(struct aesni_gcm_qp *qp,
        post_process_gcm_crypto_op(op);
 
        /* Free session if a session-less crypto op */
-       if (op->sym->type == RTE_CRYPTO_SYM_OP_SESSIONLESS) {
+       if (op->sym->sess_type == RTE_CRYPTO_SYM_OP_SESSIONLESS) {
                rte_mempool_put(qp->sess_mp, op->sym->session);
                op->sym->session = NULL;
        }
@@ -394,7 +395,7 @@ aesni_gcm_pmd_dequeue_burst(void *queue_pair,
        return nb_dequeued;
 }
 
-static int aesni_gcm_uninit(const char *name);
+static int aesni_gcm_remove(const char *name);
 
 static int
 aesni_gcm_create(const char *name,
@@ -445,6 +446,24 @@ aesni_gcm_create(const char *name,
        dev->dequeue_burst = aesni_gcm_pmd_dequeue_burst;
        dev->enqueue_burst = aesni_gcm_pmd_enqueue_burst;
 
+       dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
+                       RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
+                       RTE_CRYPTODEV_FF_CPU_AESNI;
+
+       switch (vector_mode) {
+       case RTE_AESNI_GCM_SSE:
+               dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_SSE;
+               break;
+       case RTE_AESNI_GCM_AVX:
+               dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX;
+               break;
+       case RTE_AESNI_GCM_AVX2:
+               dev->feature_flags |= RTE_CRYPTODEV_FF_CPU_AVX2;
+               break;
+       default:
+               break;
+       }
+
        /* Set vector instructions mode supported */
        internals = dev->data->dev_private;
 
@@ -458,12 +477,12 @@ aesni_gcm_create(const char *name,
 init_error:
        GCM_LOG_ERR("driver %s: create failed", name);
 
-       aesni_gcm_uninit(crypto_dev_name);
+       aesni_gcm_remove(crypto_dev_name);
        return -EFAULT;
 }
 
 static int
-aesni_gcm_init(const char *name, const char *input_args)
+aesni_gcm_probe(const char *name, const char *input_args)
 {
        struct rte_crypto_vdev_init_params init_params = {
                RTE_CRYPTODEV_VDEV_DEFAULT_MAX_NB_QUEUE_PAIRS,
@@ -484,7 +503,7 @@ aesni_gcm_init(const char *name, const char *input_args)
 }
 
 static int
-aesni_gcm_uninit(const char *name)
+aesni_gcm_remove(const char *name)
 {
        if (name == NULL)
                return -EINVAL;
@@ -495,11 +514,13 @@ aesni_gcm_uninit(const char *name)
        return 0;
 }
 
-static struct rte_driver aesni_gcm_pmd_drv = {
-       .name = CRYPTODEV_NAME_AESNI_GCM_PMD,
-       .type = PMD_VDEV,
-       .init = aesni_gcm_init,
-       .uninit = aesni_gcm_uninit
+static struct rte_vdev_driver aesni_gcm_pmd_drv = {
+       .probe = aesni_gcm_probe,
+       .remove = aesni_gcm_remove
 };
 
-PMD_REGISTER_DRIVER(aesni_gcm_pmd_drv);
+DRIVER_REGISTER_VDEV(CRYPTODEV_NAME_AESNI_GCM_PMD, aesni_gcm_pmd_drv);
+DRIVER_REGISTER_PARAM_STRING(CRYPTODEV_NAME_AESNI_GCM_PMD,
+       "max_nb_queue_pairs=<int> "
+       "max_nb_sessions=<int> "
+       "socket_id=<int>");