f-stack/dpdk/drivers/crypto/bcmfs/bcmfs_sym_req.h

66 lines
1.4 KiB
C
Raw Normal View History

2021-02-05 08:48:47 +00:00
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2020 Broadcom
* All rights reserved.
*/
#ifndef _BCMFS_SYM_REQ_H_
#define _BCMFS_SYM_REQ_H_
#include <rte_cryptodev.h>
#include "bcmfs_dev_msg.h"
#include "bcmfs_sym_defs.h"
/** Max variable length. Since we adjust AAD
* in same BD if it is less than BCMFS_AAD_THRESH_LEN
* so we add it here.
*/
#define BCMFS_MAX_OMDMD_LEN ((2 * (BCMFS_MAX_KEY_SIZE)) + \
(2 * (BCMFS_MAX_IV_SIZE)) + \
(BCMFS_AAD_THRESH_LEN))
/* Fixed SPU2 Metadata */
struct spu2_fmd {
uint64_t ctrl0;
uint64_t ctrl1;
uint64_t ctrl2;
uint64_t ctrl3;
};
/*
* This structure hold the supportive data required to process a
* rte_crypto_op
*/
struct bcmfs_sym_request {
/*
* Only single BD for metadata so
* FMD + OMD must be in continuation
*/
/* spu2 engine related data */
struct spu2_fmd fmd;
/* variable metadata in continuation with fmd */
uint8_t omd[BCMFS_MAX_OMDMD_LEN];
/* digest data output from crypto h/w */
uint8_t digest[BCMFS_MAX_DIGEST_SIZE];
/* 2-Bytes response from crypto h/w */
uint8_t resp[2];
/*
* Below are all iovas for above members
* from top
*/
/* iova for fmd */
rte_iova_t fptr;
/* iova for omd */
rte_iova_t optr;
/* iova for digest */
rte_iova_t dptr;
/* iova for response */
rte_iova_t rptr;
/* bcmfs qp message for h/w queues to process */
struct bcmfs_qp_message msgs;
/* crypto op */
struct rte_crypto_op *op;
};
#endif /* _BCMFS_SYM_REQ_H_ */