【VPP】 VPP 架构

    fd.io vpp 是第三代矢量数据包处理实现,具体涉及美国专利 7,961,636和 早期的工作。为了提高性能,vpp 数据平面由转发节点的有向图组成,该转发图每次调用处理多个数据包。这种模式可实现多种微处理器优化:流水线和预取以覆盖相关的读取延迟,固有的 I-cache 阶段行为,矢量指令。 除了硬件输入和硬件输出节点之外,整个转发图都是可移植的代码。

    VPP:(the vector packet processor)是一个可扩展框架,可提供开箱即用的交换机/路由器功能。是 Linux 基金会下开源项目FD.io 的一个子项目,由思科贡献的开源版本,目前是F D.io 的最核心的项目。

 

Implemetation taxonomy

    vpp 数据平面分为四个不同的层:

  -  基础架构层:包括 vppinfra,vlib,svm 和二进制 api 库。/src/{vppinfra, vlib, svm, vlibapi, vlibmemory}

  -  通用网络协议栈层:vnet。/src/vnet

  -  应用程序 shell:vpp。/src/vpp

  -  数据平面插件。/src/plugins

 

VPP Layering

1.  Vppinfra

    Vppinfra 是基本的 c 库服务的集合,足以直接构建在裸机上运行的独立程序。它还提供高性能的动态数组,哈希,位图,高精度的实时时钟支持,细粒度的事件记录和数据结构序列化。

 

2. VLIB

    Vlib 提供矢量处理支持,包括图形节点调度,可靠的多播支持,超轻量协作多任务线程,CLI,插件.DLL支持,物理内存和Linux epoll 支持。

 

3. Vnet

    vnet 库提供矢量化的第2层和第3层网络图节点,一个数据包生成器和一个数据包跟踪器。

    在构建数据包处理应用程序方面,vnet 提供了一个与平台无关的子图,一个子图连接了两个设备驱动程序节点。

    典型的RX连接包括“以太网输入”(完整的软件分类,提要 ipv4-input,ipv6-input,arp-input等)和“ ipv4-input-no-checksum” [如果硬件可以分类,请执行ipv4标头校验和]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值