Cisco VPP(1) 简介

一、简介

VPP全称Vector Packet Processing,是Cisco2002年开发的商用代码。

2016年2月11号,Linux基金会创建FD.io项目。Cisco将VPP代码的开源版本加入该项目,目前已成为该项目的核心。

VPP运行于用户空间,支持多种收包方式,常用的是DPDK。

VPP主要有两个主要功能:框架可扩展;成熟的交换/路由功能。

二、扩展性

1、结点操作

VPP平台是通过graphnode串联起来处理数据包,类似于freebsd的netgraph。

通过插件的形式引入新的graph node或者重新排列数据包的gpragh node。将插件添加到插件目录中,运行程序的时候就会自动加载插件。另外插件也可以根据硬件情况通过某个node直接连接硬件进行加速。

VPP平台可以用于构建任何类型的数据包处理应用。比如负载均衡、防火墙、IDS、主机栈。也可以是一个组合,比如给负载均衡添加一个vSwitch。

通过创建插件,可以任意扩展如下功能:

•      自定义新的图结点

•      重新排列图结点

•      添加底层API

添加插件如下图所示:


2、可编程能力

VPP还提供了基于共享内存或者消息队列的高性能内部API。目前VPP平台支持C和JAVA客户端进行内部API绑定。

如下图所以,我们完成一个外部应用对VPP进行操作:


以上的编程能力是针对内部API的调用,另外还可以支持远程可编程能力。

远程可编程能力可以通过Data Plane Management Agent来实现。

通过外部API与Data Plane Management Agent进行通信。Data Plane Management Agent通过内部API与VPP应用(引擎)进行通信。

这是一个非常灵活的方法,任何人可以添加,但是需要外部API和Data Plane Management Agent匹配,以实现特定需求的VPP应用。

下图展示Agent对接VPP和外部程序:


案例Honeycomb Agent:

HoneycombAgent通过netconf和restconf发布了yang模型的VPP功能。 像OpenDaylight 这样支持netconf/yang的控制器可以挂载Honeycomb 管理代理来工作。而OpenDaylight支持OpenStack Neutron,所以如下图所示OpenStack Neutron可以集成到vpp来:


三、网络功能

1、网络特性

VPP拥有的网络特性如下:

•      快速查找路由表、CAM表

•      任意n元组分类

•      商用级别的交换/路由功能

 

VPP能提供的所有功能如下:


2、网络性能

多核基准性能例子 (UCS-C240 M3, 3.5gHz,所有内存通道转发ipv4):

•      1 core: 9 MPPS in+out

•      2 cores: 13.4 MPPS in+out

•      4 cores: 20.0 MPPS in+out

 

下面几个图展示的是和OVS+DPDK的性能对比:



下图是在Haswell x86 架构的E5-2698v3 2x16C 2.3GHz上测试,图中显示了12口10GE,16核,ipv4转发:


资料来源于:https://fd.io/


欢迎加入VPP讨论群:417538415

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值