X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcommon%2Fcpt%2Fcpt_pmd_ops_helper.c;h=2cddddf4ce5c65485467b14aac55fd03b699f33b;hb=07d4bde1c0e811ae60144ae74337237e6fb47e29;hp=1c18180f8aed19cdb8be9cf3c14276c9d8f9dcd3;hpb=8846a756eb270277ccf777bf7a6b42b952660b0f;p=dpdk.git diff --git a/drivers/common/cpt/cpt_pmd_ops_helper.c b/drivers/common/cpt/cpt_pmd_ops_helper.c index 1c18180f8a..2cddddf4ce 100644 --- a/drivers/common/cpt/cpt_pmd_ops_helper.c +++ b/drivers/common/cpt/cpt_pmd_ops_helper.c @@ -11,6 +11,8 @@ #define CPT_MAX_IV_LEN 16 #define CPT_OFFSET_CONTROL_BYTES 8 +#define CPT_MAX_ASYM_OP_NUM_PARAMS 5 +#define CPT_MAX_ASYM_OP_MOD_LEN 1024 int32_t cpt_pmd_ops_helper_get_mlen_direct_mode(void) @@ -33,9 +35,23 @@ cpt_pmd_ops_helper_get_mlen_sg_mode(void) len += sizeof(struct cpt_request_info); len += CPT_OFFSET_CONTROL_BYTES + CPT_MAX_IV_LEN; - len += ROUNDUP8(SG_LIST_HDR_SIZE + - (ROUNDUP4(CPT_MAX_SG_IN_OUT_CNT) >> 2) * SG_ENTRY_SIZE); + len += RTE_ALIGN_CEIL((SG_LIST_HDR_SIZE + + (RTE_ALIGN_CEIL(CPT_MAX_SG_IN_OUT_CNT, 4) >> 2) * + SG_ENTRY_SIZE), 8); len += 2 * COMPLETION_CODE_SIZE; len += 2 * sizeof(cpt_res_s_t); return len; } + +int +cpt_pmd_ops_helper_asym_get_mlen(void) +{ + uint32_t len; + + /* Get meta len for linear buffer (direct) mode */ + len = cpt_pmd_ops_helper_get_mlen_direct_mode(); + + /* Get meta len for asymmetric operations */ + len += CPT_MAX_ASYM_OP_NUM_PARAMS * CPT_MAX_ASYM_OP_MOD_LEN; + return len; +}