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和JAVAclient进行内部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

原文地址:https://www.cnblogs.com/llguanli/p/8483422.html

时间: 2024-07-31 01:44:50

Cisco VPP(1) 简单介绍的相关文章

Frame Relay - 简单介绍及基本配置

Frame Relay如今越来越不流行了,只是在过去的设计中被广泛应用. 所以工作上还是能常常见到的, 这篇博文从二层简单总结下FR的一些概念 在介绍Frame Relay之前,先了解下广播介质和非广播介质的差别: Broadcast Media (广播介质): Ethernet . Token-Ring.FDDI 特点: 源能够同一时候向全部连接(二层)目的地址通话 简化了三层到二层的解析 Non-Broadcast Multi Access (NBMA): Frame Relay.ISDN.

python的列表,元组和字典简单介绍

引 入 java                                   python 存取多个值:数组或list集合 ------------------------> 列表,元组 key-value格式:    Map        ------------------------>    字典 自己学习发现,java跟python这两门面向对象语言在数据类型的定义上,很多思想都是互通的,这里不说java,简单介绍一下python的列表,元组和字典. 一.列表 List: 最通

javascript的return语句简单介绍

javascript的return语句简单介绍:return语句在js中非常的重要,不仅仅具有返回函数值的功能,还具有一些特殊的用法,有个清晰的把握是非常有必要的.下面就结合实例简单介绍一下return语句的作用.一.用来返回控制和函数结果:通常情况,return语句对于一个函数是很有必要的,因为往往需要函数在一系列的代码执行后会得到一个期望的返回值,而此值就是通过return语句返回,并且将控制权返回给主调函数.语法格式: return 表达式 代码实例如下: function add(){

Object-c集合的简单介绍

一.简单介绍 NSArray/NSMutableArray NSSet/NSMutableSet NSDictionary/NSMutableDictionary NSArray.NSSet.NSDictionary是不可变的,创建的时候初始化 NSMutableArray.NSMutableSet.NSMutableDictionary是可变的 二.使用介绍 NSArray是有序的数组 NSMutableArray *myArray=[[NSMutableArray alloc] init];

plsql的环境与介绍:环境的搭建和plsql的简单介绍

PLSQL编程 1.环境的搭建 (1)创建一个存储表空间 SQL> conn /as sysdbaConnected. SQL> create tablespace plsql datafile '/u01/oracle/oradata/ORCL/plsql01.dbf' size 1G; Tablespace created. (2)创建PLSQL用户SQL> create user plsql identified by plsql default tablespace plsql;

CSS之box-sizing的用处简单介绍

前几天才发现有 box-sizing 这么个样式属性,研究了一番感觉很有意思, 通过指定容器的盒子模型类型,达到不同的展示效果 例如:当一个容器宽度定义为 width:100%;  之后,如果再增加 padding 或者 border 则会溢出父容器,是向外扩张的 如果使用该样式,指定为 box-sizing: border-box; 则 padding 和 border 就不会再溢出,而是向内收缩的,这个效果感觉非常实用, 特别是 input 和 textarea 等 现在设置 100% 再直

【玩转微信公众平台之七】 PHP语法简单介绍

经过多篇的努力,我们终于成为了微信公众平台的开发者.但是别高兴的太早,就跟修真小说一样:修炼多年武破虚空,飞升到仙界后本以为成为了天仙即可跳出三界外,不在五行中.可实际到了仙界才发现,成仙只是修行的第一步......没错,成为开发者也才只是第一步,因为现在你的微信公众平台还没有任何功能,说难听点就是小白,说好听点就是白马王子,说可爱点就是小白白,说黄色点就是洗白白,说...----------------要想在微信公众平台添加功能,那就需要写代码:既然说到写代码,那么肯定是要用php(如果用AS

Zookeeper简单介绍

转自:ZooKeeper学习第一期---Zookeeper简单介绍 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术--分布式协调技术.那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术 主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果.这时,有人可能会说这个简单,写一个调 度算法就轻松解决了.说这句话的人,可能对分布式系统不是很了解,所以才会出现这种误解.如果这些进程全部是跑在一台机上的

七、变量与常量的简单介绍

七.变量与常量的简单介绍 本文将介绍VB语言中的变量与常量. 基本概念 首先大家要明白变量和常量是很重要的东西,因为他们储存着程序运行中的各种数据.顾名思义,变量就是可以变的量,而常量就是不变的,这个概念和数学上的有点接近. 接下来我简单讲讲这两个重要的东西:计算机程序在不运行的时候,程序文件保存在硬盘上,当用户运行程序之后,系统就会把程序文件装进计算机的内存里面,无论在硬盘中还是内存中,程序数据都是以二进制的形式保存着的.当程序在运行的时候,可以把计算机的内存理解为一个超级大的棋盘,每个格子都