drivers: update registration macro usage
[dpdk.git] / drivers / crypto / aesni_mb / rte_aesni_mb_pmd.c
index 4e3885c..db3e562 100644 (file)
@@ -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;
@@ -299,8 +302,8 @@ get_session(struct aesni_mb_qp *qp, struct rte_crypto_op *op)
 {
        struct aesni_mb_session *sess = NULL;
 
-       if (op->sym->type == RTE_CRYPTO_SYM_OP_WITH_SESSION) {
-               if (unlikely(op->sym->session->type !=
+       if (op->sym->sess_type == RTE_CRYPTO_SYM_OP_WITH_SESSION) {
+               if (unlikely(op->sym->session->dev_type !=
                                RTE_CRYPTODEV_AESNI_MB_PMD))
                        return NULL;
 
@@ -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));
@@ -475,7 +480,7 @@ post_process_mb_job(struct aesni_mb_qp *qp, JOB_AES_HMAC *job)
        }
 
        /* 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;
        }
@@ -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:
        /*
@@ -593,7 +598,8 @@ 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_create(const char *name, unsigned socket_id)
+cryptodev_aesni_mb_create(const char *name,
+               struct rte_crypto_vdev_init_params *init_params)
 {
        struct rte_cryptodev *dev;
        char crypto_dev_name[RTE_CRYPTODEV_NAME_MAX_LEN];
@@ -627,7 +633,7 @@ cryptodev_aesni_mb_create(const char *name, unsigned socket_id)
 
 
        dev = rte_cryptodev_pmd_virtual_dev_init(crypto_dev_name,
-                       sizeof(struct aesni_mb_private), socket_id);
+                       sizeof(struct aesni_mb_private), init_params->socket_id);
        if (dev == NULL) {
                MB_LOG_ERR("failed to create cryptodev vdev");
                goto init_error;
@@ -662,8 +668,8 @@ cryptodev_aesni_mb_create(const char *name, unsigned socket_id)
        internals = dev->data->dev_private;
 
        internals->vector_mode = vector_mode;
-       internals->max_nb_queue_pairs = RTE_AESNI_MB_PMD_MAX_NB_QUEUE_PAIRS;
-       internals->max_nb_sessions = RTE_AESNI_MB_PMD_MAX_NB_SESSIONS;
+       internals->max_nb_queue_pairs = init_params->max_nb_queue_pairs;
+       internals->max_nb_sessions = init_params->max_nb_sessions;
 
        return 0;
 init_error:
@@ -676,11 +682,24 @@ init_error:
 
 static int
 cryptodev_aesni_mb_init(const char *name,
-               const char *params __rte_unused)
+               const char *input_args)
 {
-       RTE_LOG(INFO, PMD, "Initialising %s\n", name);
-
-       return cryptodev_aesni_mb_create(name, rte_socket_id());
+       struct rte_crypto_vdev_init_params init_params = {
+               RTE_CRYPTODEV_VDEV_DEFAULT_MAX_NB_QUEUE_PAIRS,
+               RTE_CRYPTODEV_VDEV_DEFAULT_MAX_NB_SESSIONS,
+               rte_socket_id()
+       };
+
+       rte_cryptodev_parse_vdev_init_params(&init_params, input_args);
+
+       RTE_LOG(INFO, PMD, "Initialising %s on NUMA node %d\n", name,
+                       init_params.socket_id);
+       RTE_LOG(INFO, PMD, "  Max number of queue pairs = %d\n",
+                       init_params.max_nb_queue_pairs);
+       RTE_LOG(INFO, PMD, "  Max number of sessions = %d\n",
+                       init_params.max_nb_sessions);
+
+       return cryptodev_aesni_mb_create(name, &init_params);
 }
 
 static int
@@ -702,4 +721,6 @@ static struct rte_driver cryptodev_aesni_mb_pmd_drv = {
        .uninit = cryptodev_aesni_mb_uninit
 };
 
-PMD_REGISTER_DRIVER(cryptodev_aesni_mb_pmd_drv);
+PMD_REGISTER_DRIVER(cryptodev_aesni_mb_pmd_drvi, aesni_mb);
+DRIVER_REGISTER_PARAM_STRING(aesni_gcm, "max_nb_queue_pairs=<int> "
+"max_nb_sessions=<int> socket_id=<int>");