#include <rte_dev.h>
#include <rte_malloc.h>
#include <rte_pci.h>
-#include <rte_cryptodev_pmd.h>
+#include <cryptodev_pmd.h>
#ifdef RTE_LIB_SECURITY
#include <rte_security_driver.h>
#endif
RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
};
+static const struct rte_cryptodev_capabilities qat_gen4_sym_capabilities[] = {
+ QAT_BASE_GEN4_SYM_CAPABILITIES,
+ RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
+};
+
#ifdef RTE_LIB_SECURITY
static const struct rte_cryptodev_capabilities
qat_security_sym_capabilities[] = {
int ring_pair =
qat_select_valid_queue(qat_dev, qp_id,
QAT_SERVICE_SYMMETRIC);
- sym_hw_qps =
- &qat_dev->qp_gen4_data[0][0];
- qp_hw_data =
- &qat_dev->qp_gen4_data[ring_pair][0];
+
if (ring_pair < 0) {
QAT_LOG(ERR,
"qp_id %u invalid for this device, no enough services allocated for GEN4 device",
qp_id);
return -EINVAL;
}
+ sym_hw_qps =
+ &qat_dev->qp_gen4_data[0][0];
+ qp_hw_data =
+ &qat_dev->qp_gen4_data[ring_pair][0];
} else {
sym_hw_qps = qat_gen_config[qat_dev->qat_dev_gen]
.qp_hw_data[QAT_SERVICE_SYMMETRIC];
RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT |
RTE_CRYPTODEV_FF_OOP_LB_IN_SGL_OUT |
RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT |
- RTE_CRYPTODEV_FF_DIGEST_ENCRYPTED |
- RTE_CRYPTODEV_FF_SYM_RAW_DP;
+ RTE_CRYPTODEV_FF_DIGEST_ENCRYPTED;
+
+ if (qat_pci_dev->qat_dev_gen < QAT_GEN4)
+ cryptodev->feature_flags |= RTE_CRYPTODEV_FF_SYM_RAW_DP;
if (rte_eal_process_type() != RTE_PROC_PRIMARY)
return 0;
capa_size = sizeof(qat_gen3_sym_capabilities);
break;
case QAT_GEN4:
- capabilities = NULL;
- capa_size = 0;
+ capabilities = qat_gen4_sym_capabilities;
+ capa_size = sizeof(qat_gen4_sym_capabilities);
break;
default:
QAT_LOG(DEBUG,