crypto/qat: move sgl related element to appropriate files

Move SGL (Scatter-Gather List) related functions to common file
Move qat_sym_op_cookie struct to sym header file

Signed-off-by: Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
This commit is contained in:
Fiona Trahe 2018-06-13 14:14:01 +02:00 committed by Pablo de Lara
parent dbada56817
commit 571ffe236f
6 changed files with 67 additions and 53 deletions

View File

@ -25,6 +25,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += qat_sym.c
SRCS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += qat_device.c
SRCS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += qat_qp.c
SRCS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += qat_sym_session.c
SRCS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += qat_common.c
SRCS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += rte_qat_cryptodev.c
# export include files

View File

@ -7,6 +7,7 @@ if not dep.found()
endif
sources = files('qat_sym.c', 'qat_qp.c',
'qat_sym_session.c',
'qat_common.c',
'rte_qat_cryptodev.c',
'qat_device.c')
includes += include_directories('qat_adf')

View File

@ -0,0 +1,53 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2018 Intel Corporation
*/
#include "qat_common.h"
#include "qat_logs.h"
int
qat_sgl_fill_array(struct rte_mbuf *buf, uint64_t buf_start,
struct qat_sgl *list, uint32_t data_len)
{
int nr = 1;
uint32_t buf_len = rte_pktmbuf_iova(buf) -
buf_start + rte_pktmbuf_data_len(buf);
list->buffers[0].addr = buf_start;
list->buffers[0].resrvd = 0;
list->buffers[0].len = buf_len;
if (data_len <= buf_len) {
list->num_bufs = nr;
list->buffers[0].len = data_len;
return 0;
}
buf = buf->next;
while (buf) {
if (unlikely(nr == QAT_SGL_MAX_NUMBER)) {
PMD_DRV_LOG(ERR,
"QAT PMD exceeded size of QAT SGL entry(%u)",
QAT_SGL_MAX_NUMBER);
return -EINVAL;
}
list->buffers[nr].len = rte_pktmbuf_data_len(buf);
list->buffers[nr].resrvd = 0;
list->buffers[nr].addr = rte_pktmbuf_iova(buf);
buf_len += list->buffers[nr].len;
buf = buf->next;
if (buf_len > data_len) {
list->buffers[nr].len -=
buf_len - data_len;
buf = NULL;
}
++nr;
}
list->num_bufs = nr;
return 0;
}

View File

@ -6,6 +6,8 @@
#include <stdint.h>
#include <rte_mbuf.h>
/**< Intel(R) QAT Symmetric Crypto PMD device name */
#define CRYPTODEV_NAME_QAT_SYM_PMD crypto_qat
@ -45,11 +47,8 @@ struct qat_sgl {
struct qat_flat_buf buffers[QAT_SGL_MAX_NUMBER];
} __rte_packed __rte_cache_aligned;
struct qat_sym_op_cookie {
struct qat_sgl qat_sgl_src;
struct qat_sgl qat_sgl_dst;
phys_addr_t qat_sgl_src_phys_addr;
phys_addr_t qat_sgl_dst_phys_addr;
};
int
qat_sgl_fill_array(struct rte_mbuf *buf, uint64_t buf_start,
struct qat_sgl *list, uint32_t data_len);
#endif /* _QAT_COMMON_H_ */

View File

@ -248,53 +248,6 @@ qat_sym_pmd_dequeue_op_burst(void *qp, struct rte_crypto_op **ops,
return qat_dequeue_op_burst(qp, (void **)ops, nb_ops);
}
static inline int
qat_sgl_fill_array(struct rte_mbuf *buf, uint64_t buff_start,
struct qat_sgl *list, uint32_t data_len)
{
int nr = 1;
uint32_t buf_len = rte_pktmbuf_iova(buf) -
buff_start + rte_pktmbuf_data_len(buf);
list->buffers[0].addr = buff_start;
list->buffers[0].resrvd = 0;
list->buffers[0].len = buf_len;
if (data_len <= buf_len) {
list->num_bufs = nr;
list->buffers[0].len = data_len;
return 0;
}
buf = buf->next;
while (buf) {
if (unlikely(nr == QAT_SGL_MAX_NUMBER)) {
PMD_DRV_LOG(ERR, "QAT PMD exceeded size of QAT SGL"
" entry(%u)",
QAT_SGL_MAX_NUMBER);
return -EINVAL;
}
list->buffers[nr].len = rte_pktmbuf_data_len(buf);
list->buffers[nr].resrvd = 0;
list->buffers[nr].addr = rte_pktmbuf_iova(buf);
buf_len += list->buffers[nr].len;
buf = buf->next;
if (buf_len > data_len) {
list->buffers[nr].len -=
buf_len - data_len;
buf = NULL;
}
++nr;
}
list->num_bufs = nr;
return 0;
}
static inline void
set_cipher_iv(uint16_t iv_length, uint16_t iv_offset,
struct icp_qat_fw_la_cipher_req_params *cipher_param,

View File

@ -22,6 +22,13 @@
struct qat_sym_session;
struct qat_sym_op_cookie {
struct qat_sgl qat_sgl_src;
struct qat_sgl qat_sgl_dst;
phys_addr_t qat_sgl_src_phys_addr;
phys_addr_t qat_sgl_dst_phys_addr;
};
int
qat_sym_build_request(void *in_op, uint8_t *out_msg,
void *op_cookie, enum qat_device_gen qat_dev_gen);