简介
本文档提供了KACC_crypto库的安装指南、详细接口定义与示例代码,旨在帮助用户快速熟悉KACC_crypto库的使用。
VPP(Vector Packet Processing,矢量包处理)是一种高性能用户态网络数据平面处理框架,其主要特点是向量包处理技术:一次性将多个数据包(通常为256个)组成向量(Packet Vector),通过有向图节点(Graph Node)逐节点批量处理整个向量。其优势主要有以下三点:
- 减少CPU缓存抖动:同一节点代码连续执行,提高指令缓存命中率。
- SIMD指令优化:利用现代CPU的SIMD(如AVX、NEON)并行处理多个包头部。
- 分摊固定开销:批量处理分摊上下文切换、内存访问成本,提升吞吐量。
VPP在数据包处理的验证步骤中,使用了HMAC算法进行验证,HMAC技术是一种基于密钥的报文完整性验证方法,其安全性是建立在Hash加密算法基础上的,要求通信双方共享密钥、约定算法、对报文进行Hash运算,形成固定长度的认证码。通信双方通过认证码来确定报文的合法性。KACC_crypto库利用CPU的SIMD和流水线叠加的特性,提高单核计算效率,优化SHA1 MB算法(即下文接口函数描述中的hmac_sha1),提升HMAC性能,可对接VPP应用。