同步异步你说了算:VPP 的异步Crypto框架

点击上方蓝字

关注我们吧

VPP的crypto框架是VPP原生的一套数据加解密框架,其目的是为VPP框架中所有Graph node提供数据加密服务。VPP的Crypto框架包含一套为Graph node准备的用户API,包括创建、更新和删除密钥,以及处理加密工作等;该框架还包括一条逻辑简单且巧妙的crypto engine API,用于作为VPP Plugin的crypto engine来注册和上载回调函数,并根据每个crypto engine根据预设的优先级来决定某个算法的缺省engine回调函数。目前可用的VPP crypto engine有

  • crypto native engine:根据不同CPU特性和指令集所特别优化的plugin,性能最优但支持算法较少。

  • ipsecmb engine:基于intel-ipsec-mb库的plugin,仅支持英特尔的CPU。

  • openssl engine:支持算法最全面的纯软件实现,性能相比以上两个plugin相对弱一些。

可以看到,以上的engine均为软件实现。优点是逻辑结构较为简单,因为软件能实时返回密码运算结果,所以graph node可以立刻决定是否继续或中止对某个网络帧的流水线处理。然而,这一方式无法支持加密工作的卸载,如基于QAT的硬件卸载或基于多CPU Core合作的软件卸载等。为了填补这一空缺我们在VPP 20.05提出了VPP 异步crypto 框架,并在VPP 20.09对其进行了进一步完善。

01

VPP同步crypto框架

刚才介绍到,已有的VPP Crypto框架是同步软件实现,图1简单介绍了如何在VPP IPsec中使用crypto框架。

图1:VPP IPSec 使用 crypto 框架加密ESP Tunnel模式网络帧

如图,esp4-encrypt-tun是VPP的IPsec数据面处理的Graph Node。它将对接收到的网络帧进行SA查表,并将SA 中预存的crypto key索引号连同要加密的数据指针和长度一起提交给加密算法的缺省处理函数进行加密。加密结果将在处理完成后立刻返回给esp4-encrypt-tun,在将处理失败的网络帧丢弃后,其余帧将交由下一个graph node处理。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值