MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ccp_perform_sha

Function ccp_perform_sha

dpdk/drivers/crypto/ccp/ccp_crypto.c:1727–1811  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1725}
1726
1727static int
1728ccp_perform_sha(struct rte_crypto_op *op,
1729 struct ccp_queue *cmd_q)
1730{
1731 struct ccp_session *session;
1732 union ccp_function function;
1733 struct ccp_desc *desc;
1734 uint32_t tail;
1735 phys_addr_t src_addr, dest_addr;
1736 struct ccp_passthru pst;
1737 void *append_ptr;
1738 uint64_t auth_msg_bits;
1739
1740 session = CRYPTODEV_GET_SYM_SESS_PRIV(op->sym->session);
1741
1742 src_addr = rte_pktmbuf_iova_offset(op->sym->m_src,
1743 op->sym->auth.data.offset);
1744 append_ptr = (void *)rte_pktmbuf_append(op->sym->m_src,
1745 session->auth.ctx_len);
1746 pst.src_addr = (phys_addr_t)rte_mem_virt2iova((void *)session->auth.ctx);
1747 dest_addr = (phys_addr_t)rte_mem_virt2iova(append_ptr);
1748
1749 /** Passthru sha context*/
1750
1751 pst.dest_addr = (phys_addr_t)(cmd_q->sb_sha * CCP_SB_BYTES);
1752 pst.len = session->auth.ctx_len;
1753 pst.dir = 1;
1754 pst.bit_mod = CCP_PASSTHRU_BITWISE_NOOP;
1755 pst.byte_swap = CCP_PASSTHRU_BYTESWAP_NOOP;
1756 ccp_perform_passthru(&pst, cmd_q);
1757
1758 /**prepare sha command descriptor*/
1759
1760 desc = &cmd_q->qbase_desc[cmd_q->qidx];
1761 memset(desc, 0, Q_DESC_SIZE);
1762
1763 CCP_CMD_ENGINE(desc) = CCP_ENGINE_SHA;
1764
1765 CCP_CMD_SOC(desc) = 0;
1766 CCP_CMD_IOC(desc) = 0;
1767 CCP_CMD_INIT(desc) = 1;
1768 CCP_CMD_EOM(desc) = 1;
1769 CCP_CMD_PROT(desc) = 0;
1770
1771 function.raw = 0;
1772 CCP_SHA_TYPE(&function) = session->auth.ut.sha_type;
1773 CCP_CMD_FUNCTION(desc) = function.raw;
1774
1775 CCP_CMD_LEN(desc) = op->sym->auth.data.length;
1776 auth_msg_bits = op->sym->auth.data.length * 8;
1777
1778 CCP_CMD_SRC_LO(desc) = ((uint32_t)src_addr);
1779 CCP_CMD_SRC_HI(desc) = high32_value(src_addr);
1780 CCP_CMD_SRC_MEM(desc) = CCP_MEMTYPE_SYSTEM;
1781
1782 CCP_CMD_LSB_ID(desc) = cmd_q->sb_sha;
1783 CCP_CMD_SHA_LO(desc) = ((uint32_t)auth_msg_bits);
1784 CCP_CMD_SHA_HI(desc) = high32_value(auth_msg_bits);

Callers 1

ccp_crypto_authFunction · 0.85

Calls 5

rte_pktmbuf_appendFunction · 0.85
ccp_perform_passthruFunction · 0.85
memsetFunction · 0.85
high32_valueFunction · 0.70
rte_mem_virt2iovaFunction · 0.50

Tested by

no test coverage detected