common/cnxk: add null authentication with IPsec
[dpdk.git] / drivers / common / qat / qat_qp.h
index 0d6896d..e162719 100644 (file)
@@ -14,10 +14,15 @@ struct qat_pci_device;
 
 #define QAT_QP_MIN_INFL_THRESHOLD      256
 
-typedef int (*build_request_t)(void *op,
-               uint8_t *req, void *op_cookie,
-               enum qat_device_gen qat_dev_gen);
-/**< Build a request from an op. */
+/* Default qp configuration for GEN4 devices */
+#define QAT_GEN4_QP_DEFCON     (QAT_SERVICE_SYMMETRIC |        \
+                               QAT_SERVICE_SYMMETRIC << 8 |    \
+                               QAT_SERVICE_SYMMETRIC << 16 |   \
+                               QAT_SERVICE_SYMMETRIC << 24)
+
+/* QAT GEN 4 specific macros */
+#define QAT_GEN4_BUNDLE_NUM             4
+#define QAT_GEN4_QPS_PER_BUNDLE_NUM     1
 
 /**
  * Structure with data needed for creation of queue pair.
@@ -30,6 +35,16 @@ struct qat_qp_hw_data {
        uint16_t tx_msg_size;
        uint16_t rx_msg_size;
 };
+
+/**
+ * Structure with data needed for creation of queue pair on gen4.
+ */
+struct qat_qp_gen4_data {
+       struct qat_qp_hw_data qat_qp_hw_data;
+       uint8_t reserved;
+       uint8_t valid;
+};
+
 /**
  * Structure with data needed for creation of queue pair.
  */
@@ -38,7 +53,6 @@ struct qat_qp_config {
        uint32_t nb_descriptors;
        uint32_t cookie_size;
        int socket_id;
-       build_request_t build_request;
        const char *service_str;
 };
 
@@ -73,7 +87,6 @@ struct qat_qp {
        void **op_cookies;
        uint32_t nb_descriptors;
        enum qat_device_gen qat_dev_gen;
-       build_request_t build_request;
        enum qat_service_type service_type;
        struct qat_pci_device *qat_dev;
        /**< qat device this qp is on */
@@ -89,11 +102,14 @@ extern const struct qat_qp_hw_data qat_gen3_qps[][ADF_MAX_QPS_ON_ANY_SERVICE];
 uint16_t
 qat_enqueue_op_burst(void *qp, void **ops, uint16_t nb_ops);
 
+uint16_t
+qat_enqueue_comp_op_burst(void *qp, void **ops, uint16_t nb_ops);
+
 uint16_t
 qat_dequeue_op_burst(void *qp, void **ops, uint16_t nb_ops);
 
 int
-qat_qp_release(struct qat_qp **qp_addr);
+qat_qp_release(enum qat_device_gen qat_dev_gen, struct qat_qp **qp_addr);
 
 int
 qat_qp_setup(struct qat_pci_device *qat_dev,
@@ -101,13 +117,23 @@ qat_qp_setup(struct qat_pci_device *qat_dev,
                struct qat_qp_config *qat_qp_conf);
 
 int
-qat_qps_per_service(const struct qat_qp_hw_data *qp_hw_data,
+qat_qps_per_service(struct qat_pci_device *qat_dev,
                        enum qat_service_type service);
 
+int
+qat_cq_get_fw_version(struct qat_qp *qp);
+
 /* Needed for weak function*/
 int
 qat_comp_process_response(void **op __rte_unused, uint8_t *resp __rte_unused,
                          void *op_cookie __rte_unused,
                          uint64_t *dequeue_err_count __rte_unused);
 
+int
+qat_select_valid_queue(struct qat_pci_device *qat_dev, int qp_id,
+                       enum qat_service_type service_type);
+
+int
+qat_read_qp_config(struct qat_pci_device *qat_dev);
+
 #endif /* _QAT_QP_H_ */