cryptodev: add API to associate session with queue pair
[dpdk.git] / lib / librte_cryptodev / rte_cryptodev_pmd.h
index 8d95dac..356b9dc 100644 (file)
@@ -383,6 +383,31 @@ typedef void * (*cryptodev_sym_configure_session_t)(struct rte_cryptodev *dev,
 typedef void (*cryptodev_sym_free_session_t)(struct rte_cryptodev *dev,
                void *session_private);
 
+/**
+ * Optional API for drivers to attach sessions with queue pair.
+ * @param      dev             Crypto device pointer
+ * @param      qp_id           queue pair id for attaching session
+ * @param      priv_sess       Pointer to cryptodev's private session structure
+ * @return
+ *  - Return 0 on success
+ */
+typedef int (*cryptodev_sym_queue_pair_attach_session_t)(
+                 struct rte_cryptodev *dev,
+                 uint16_t qp_id,
+                 void *session_private);
+
+/**
+ * Optional API for drivers to detach sessions from queue pair.
+ * @param      dev             Crypto device pointer
+ * @param      qp_id           queue pair id for detaching session
+ * @param      priv_sess       Pointer to cryptodev's private session structure
+ * @return
+ *  - Return 0 on success
+ */
+typedef int (*cryptodev_sym_queue_pair_detach_session_t)(
+                 struct rte_cryptodev *dev,
+                 uint16_t qp_id,
+                 void *session_private);
 
 /** Crypto device operations function pointer table */
 struct rte_cryptodev_ops {
@@ -417,6 +442,10 @@ struct rte_cryptodev_ops {
        /**< Configure a Crypto session. */
        cryptodev_sym_free_session_t session_clear;
        /**< Clear a Crypto sessions private data. */
+       cryptodev_sym_queue_pair_attach_session_t qp_attach_session;
+       /**< Attach session to queue pair. */
+       cryptodev_sym_queue_pair_attach_session_t qp_detach_session;
+       /**< Detach session from queue pair. */
 };