net/hns3: fix flow director rule residue on malloc failure
[dpdk.git] / lib / librte_vhost / rte_vhost_crypto.h
index d08e0ff..8531757 100644 (file)
@@ -5,11 +5,22 @@
 #ifndef _VHOST_CRYPTO_H_
 #define _VHOST_CRYPTO_H_
 
+#include <stdint.h>
+
+#include <rte_compat.h>
+
+/* pre-declare structs to avoid including full headers */
+struct rte_mempool;
+struct rte_crypto_op;
+
 #define VHOST_CRYPTO_MBUF_POOL_SIZE            (8192)
 #define VHOST_CRYPTO_MAX_BURST_SIZE            (64)
+#define VHOST_CRYPTO_MAX_DATA_SIZE             (4096)
 #define VHOST_CRYPTO_SESSION_MAP_ENTRIES       (1024) /**< Max nb sessions */
 /** max nb virtual queues in a burst for finalizing*/
 #define VIRTIO_CRYPTO_MAX_NUM_BURST_VQS                (64)
+#define VHOST_CRYPTO_MAX_IV_LEN                        (32)
+#define VHOST_CRYPTO_MAX_N_DESC                        (32)
 
 enum rte_vhost_crypto_zero_copy {
        RTE_VHOST_CRYPTO_ZERO_COPY_DISABLE = 0,
@@ -17,6 +28,18 @@ enum rte_vhost_crypto_zero_copy {
        RTE_VHOST_CRYPTO_MAX_ZERO_COPY_OPTIONS
 };
 
+/**
+ * Start vhost crypto driver
+ *
+ * @param path
+ *  The vhost-user socket file path
+ * @return
+ *  0 on success, -1 on failure
+ */
+__rte_experimental
+int
+rte_vhost_crypto_driver_start(const char *path);
+
 /**
  *  Create Vhost-crypto instance
  *
@@ -35,7 +58,8 @@ enum rte_vhost_crypto_zero_copy {
  *  0 if the Vhost Crypto Instance is created successfully.
  *  Negative integer if otherwise
  */
-int __rte_experimental
+__rte_experimental
+int
 rte_vhost_crypto_create(int vid, uint8_t cryptodev_id,
                struct rte_mempool *sess_pool,
                struct rte_mempool *sess_priv_pool,
@@ -50,7 +74,8 @@ rte_vhost_crypto_create(int vid, uint8_t cryptodev_id,
  *  0 if the Vhost Crypto Instance is created successfully.
  *  Negative integer if otherwise.
  */
-int __rte_experimental
+__rte_experimental
+int
 rte_vhost_crypto_free(int vid);
 
 /**
@@ -64,7 +89,8 @@ rte_vhost_crypto_free(int vid);
  *  0 if completed successfully.
  *  Negative integer if otherwise.
  */
-int __rte_experimental
+__rte_experimental
+int
 rte_vhost_crypto_set_zero_copy(int vid, enum rte_vhost_crypto_zero_copy option);
 
 /**
@@ -84,7 +110,8 @@ rte_vhost_crypto_set_zero_copy(int vid, enum rte_vhost_crypto_zero_copy option);
  * @return
  *  The number of fetched and processed vhost crypto request operations.
  */
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
 rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
                struct rte_crypto_op **ops, uint16_t nb_ops);
 /**
@@ -105,7 +132,8 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
  * @return
  *  The number of ops processed.
  */
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
 rte_vhost_crypto_finalize_requests(struct rte_crypto_op **ops,
                uint16_t nb_ops, int *callfds, uint16_t *nb_callfds);