cryptodev: add private session size retrieval function
authorSlawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Wed, 5 Jul 2017 05:26:11 +0000 (06:26 +0100)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Thu, 6 Jul 2017 20:34:55 +0000 (22:34 +0200)
Provide a function to get the private session size
of any crypto device (specifically, to its crypto driver).

This will be useful once the session mempool is created
outside the library.

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
lib/librte_cryptodev/rte_cryptodev.c
lib/librte_cryptodev/rte_cryptodev.h
lib/librte_cryptodev/rte_cryptodev_version.map

index cf444c0..5e9f823 100644 (file)
@@ -1278,6 +1278,26 @@ rte_cryptodev_sym_session_free(uint8_t dev_id,
        return NULL;
 }
 
+unsigned int
+rte_cryptodev_get_private_session_size(uint8_t dev_id)
+{
+       struct rte_cryptodev *dev;
+       unsigned int priv_sess_size;
+
+       if (!rte_cryptodev_pmd_is_valid_dev(dev_id))
+               return 0;
+
+       dev = rte_cryptodev_pmd_get_dev(dev_id);
+
+       if (*dev->dev_ops->session_get_size == NULL)
+               return 0;
+
+       priv_sess_size = (*dev->dev_ops->session_get_size)(dev);
+
+       return priv_sess_size;
+
+}
+
 /** Initialise rte_crypto_op mempool element */
 static void
 rte_crypto_op_init(struct rte_mempool *mempool,
index 972a308..f7d248b 100644 (file)
@@ -941,6 +941,18 @@ extern struct rte_cryptodev_sym_session *
 rte_cryptodev_sym_session_free(uint8_t dev_id,
                struct rte_cryptodev_sym_session *session);
 
+/**
+ * Get the size of the private session data for a device.
+ *
+ * @param      dev_id          The device identifier.
+ *
+ * @return
+ *   - Size of the private data, if successful
+ *   - 0 if device is invalid or does not have private session
+ */
+unsigned int
+rte_cryptodev_get_private_session_size(uint8_t dev_id);
+
 /**
  * Attach queue pair with sym session.
  *
index 3ad7581..d817421 100644 (file)
@@ -66,6 +66,7 @@ DPDK_17.08 {
        rte_cryptodev_driver_id_get;
        rte_cryptodev_driver_name_get;
        rte_cryptodev_get_aead_algo_enum;
+       rte_cryptodev_get_private_session_size;
        rte_cryptodev_pci_generic_probe;
        rte_cryptodev_pci_generic_remove;
        rte_cryptodev_sym_capability_check_aead;