1751dca90SVikas Gupta /* SPDX-License-Identifier: BSD-3-Clause 2751dca90SVikas Gupta * Copyright(c) 2020 Broadcom 3751dca90SVikas Gupta * All rights reserved. 4751dca90SVikas Gupta */ 5751dca90SVikas Gupta 6751dca90SVikas Gupta #ifndef _BCMFS_SYM_REQ_H_ 7751dca90SVikas Gupta #define _BCMFS_SYM_REQ_H_ 8751dca90SVikas Gupta 9492a19a0SVikas Gupta #include <rte_cryptodev.h> 10492a19a0SVikas Gupta 11751dca90SVikas Gupta #include "bcmfs_dev_msg.h" 12492a19a0SVikas Gupta #include "bcmfs_sym_defs.h" 13492a19a0SVikas Gupta 14*cd5db556SVikas Gupta /** Max variable length. Since we adjust AAD 15*cd5db556SVikas Gupta * in same BD if it is less than BCMFS_AAD_THRESH_LEN 16*cd5db556SVikas Gupta * so we add it here. 17*cd5db556SVikas Gupta */ 18*cd5db556SVikas Gupta #define BCMFS_MAX_OMDMD_LEN ((2 * (BCMFS_MAX_KEY_SIZE)) + \ 19*cd5db556SVikas Gupta (2 * (BCMFS_MAX_IV_SIZE)) + \ 20*cd5db556SVikas Gupta (BCMFS_AAD_THRESH_LEN)) 21*cd5db556SVikas Gupta 22492a19a0SVikas Gupta /* Fixed SPU2 Metadata */ 23492a19a0SVikas Gupta struct spu2_fmd { 24492a19a0SVikas Gupta uint64_t ctrl0; 25492a19a0SVikas Gupta uint64_t ctrl1; 26492a19a0SVikas Gupta uint64_t ctrl2; 27492a19a0SVikas Gupta uint64_t ctrl3; 28492a19a0SVikas Gupta }; 29751dca90SVikas Gupta 30751dca90SVikas Gupta /* 31751dca90SVikas Gupta * This structure hold the supportive data required to process a 32751dca90SVikas Gupta * rte_crypto_op 33751dca90SVikas Gupta */ 34751dca90SVikas Gupta struct bcmfs_sym_request { 35*cd5db556SVikas Gupta /* 36*cd5db556SVikas Gupta * Only single BD for metadata so 37*cd5db556SVikas Gupta * FMD + OMD must be in continuation 38*cd5db556SVikas Gupta */ 39492a19a0SVikas Gupta /* spu2 engine related data */ 40492a19a0SVikas Gupta struct spu2_fmd fmd; 41*cd5db556SVikas Gupta /* variable metadata in continuation with fmd */ 42*cd5db556SVikas Gupta uint8_t omd[BCMFS_MAX_OMDMD_LEN]; 43492a19a0SVikas Gupta /* digest data output from crypto h/w */ 44492a19a0SVikas Gupta uint8_t digest[BCMFS_MAX_DIGEST_SIZE]; 45492a19a0SVikas Gupta /* 2-Bytes response from crypto h/w */ 46492a19a0SVikas Gupta uint8_t resp[2]; 47492a19a0SVikas Gupta /* 48492a19a0SVikas Gupta * Below are all iovas for above members 49492a19a0SVikas Gupta * from top 50492a19a0SVikas Gupta */ 51492a19a0SVikas Gupta /* iova for fmd */ 52492a19a0SVikas Gupta rte_iova_t fptr; 53*cd5db556SVikas Gupta /* iova for omd */ 54*cd5db556SVikas Gupta rte_iova_t optr; 55492a19a0SVikas Gupta /* iova for digest */ 56492a19a0SVikas Gupta rte_iova_t dptr; 57492a19a0SVikas Gupta /* iova for response */ 58492a19a0SVikas Gupta rte_iova_t rptr; 59751dca90SVikas Gupta /* bcmfs qp message for h/w queues to process */ 60751dca90SVikas Gupta struct bcmfs_qp_message msgs; 61751dca90SVikas Gupta /* crypto op */ 62751dca90SVikas Gupta struct rte_crypto_op *op; 63751dca90SVikas Gupta }; 64751dca90SVikas Gupta 65751dca90SVikas Gupta #endif /* _BCMFS_SYM_REQ_H_ */ 66