cryptodev: remove crypto device type enumeration
[dpdk.git] / drivers / crypto / armv8 / rte_armv8_pmd.c
index dac4fc3..7cce09f 100644 (file)
@@ -45,6 +45,8 @@
 
 #include "rte_armv8_pmd_private.h"
 
+static uint8_t cryptodev_driver_id;
+
 static int cryptodev_armv8_crypto_uninit(struct rte_vdev_device *vdev);
 
 /**
@@ -452,6 +454,9 @@ armv8_crypto_set_session_chained_parameters(struct armv8_crypto_session *sess,
                return -EINVAL;
        }
 
+       /* Set the digest length */
+       sess->auth.digest_length = auth_xform->auth.digest_length;
+
        /* Verify supported key lengths and extract proper algorithm */
        switch (cipher_xform->cipher.key.length << 3) {
        case 128:
@@ -551,8 +556,8 @@ get_session(struct armv8_crypto_qp *qp, struct rte_crypto_op *op)
        if (op->sess_type == RTE_CRYPTO_OP_WITH_SESSION) {
                /* get existing session */
                if (likely(op->sym->session != NULL &&
-                               op->sym->session->dev_type ==
-                               RTE_CRYPTODEV_ARMV8_PMD)) {
+                               op->sym->session->driver_id ==
+                               cryptodev_driver_id)) {
                        sess = (struct armv8_crypto_session *)
                                op->sym->session->_private;
                }
@@ -649,7 +654,7 @@ process_armv8_chained_op
                }
        } else {
                adst = (uint8_t *)rte_pktmbuf_append(m_asrc,
-                               op->sym->auth.digest.length);
+                               sess->auth.digest_length);
        }
 
        arg.cipher.iv = rte_crypto_op_ctod_offset(op, uint8_t *,
@@ -667,12 +672,12 @@ process_armv8_chained_op
        op->status = RTE_CRYPTO_OP_STATUS_SUCCESS;
        if (sess->auth.operation == RTE_CRYPTO_AUTH_OP_VERIFY) {
                if (memcmp(adst, op->sym->auth.digest.data,
-                               op->sym->auth.digest.length) != 0) {
+                               sess->auth.digest_length) != 0) {
                        op->status = RTE_CRYPTO_OP_STATUS_AUTH_FAILED;
                }
                /* Trim area used for digest from mbuf. */
                rte_pktmbuf_trim(m_asrc,
-                               op->sym->auth.digest.length);
+                               sess->auth.digest_length);
        }
 }
 
@@ -815,7 +820,7 @@ cryptodev_armv8_crypto_create(const char *name,
                goto init_error;
        }
 
-       dev->dev_type = RTE_CRYPTODEV_ARMV8_PMD;
+       dev->driver_id = cryptodev_driver_id;
        dev->dev_ops = rte_armv8_crypto_pmd_ops;
 
        /* register rx/tx burst functions for data path */
@@ -905,3 +910,4 @@ RTE_PMD_REGISTER_PARAM_STRING(CRYPTODEV_NAME_ARMV8_PMD,
        "max_nb_queue_pairs=<int> "
        "max_nb_sessions=<int> "
        "socket_id=<int>");
+RTE_PMD_REGISTER_CRYPTO_DRIVER(armv8_crypto_drv, cryptodev_driver_id);