X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcrypto%2Fbcmfs%2Fbcmfs_sym_req.h;h=17dff5be4e6e6c73153ef7eeb03e0316d4f0dfa5;hb=3841fc3581ec4d95bf8a72e8a545db8d03ecd2bd;hp=0f0b051f1ec66257f60f8828857f6db8e2a03981;hpb=751dca90241da061a3bf0b7201bc0dc6ed3ea2cf;p=dpdk.git diff --git a/drivers/crypto/bcmfs/bcmfs_sym_req.h b/drivers/crypto/bcmfs/bcmfs_sym_req.h index 0f0b051f1e..17dff5be4e 100644 --- a/drivers/crypto/bcmfs/bcmfs_sym_req.h +++ b/drivers/crypto/bcmfs/bcmfs_sym_req.h @@ -6,13 +6,56 @@ #ifndef _BCMFS_SYM_REQ_H_ #define _BCMFS_SYM_REQ_H_ +#include + #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 */