searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

VPP介绍

2024-09-27 09:20:41
73
0

背景简介

VPP全称Vector Packet Processing,据说是Cisco 2002年开发的商用代码。2016年2月11号,Linux基金会创建FD.io项目。Cisco将VPP代码的开源版本加入该项目,目前已成为该项目的核心。VPP运行于用户空间,支持多种收包方式,最常用的就是DPDK收发包 VPP官方给出的特性列表如下:

 

 

软件架构

VPP 的软件架构包括一个开发框架、和一系列根据 Packet Processing Graph 组织的 Graph Node 。 (1)Packet Processing Graph: 则由多个 Graph Node (姑且称 图节点)组成, Graph Node 把整个报文处理流程、分解为一个个先后连接的 Service Node (服务节点);Packet Vector 首先被第一个 Graph Node 处理, 然后依次被第二个、第N个 Graph Node 处理,依次类推。 (2)开发框架: 包含了基本的数据结构、定时器、驱动程序、在 Graph Node 间 分配 CPU 时间片的调度器、性能调优工具 (e.g. 计数器、抓包工具)。 VPP 的开发框架采用 Plugin 机制, Plugin Graph Node 与 VPP Build-in Graph Node 被同等对待, 从而有利于快速灵活地开发新功能。 因此, 插件机制使开发者能够充分利用现有模块、快速开发出新功能。 实际上,插件的本质就是实现了某一特定功能的 Graph Node, 但也可以是一个驱动程序或者CLI 。 Plugin Graph Node 能被插入到 VPP 的 Packet Processing Graph 中的任意位置。

 

 

技术简介

 

 

矢量数据报文(Packet Vector) 与 标量报文 标量报文处理方式: 是人类常用的思维逻辑方式,即:报文时按照到达先后次序来处理,第一个报文处理完,在处理第二个,以此类推。 更为窗体的方式还需要结合处理中断,并遍历调用栈(e.g. calls b、calls c、calls d… return return return),然后从中断返回,函数会频繁嵌套调用。 最后,该过程执行后续三种操作之一 : a、不处理 , b、丢弃或重写、c、转发报文 矢量报文处理方式是一次处理多个报文,即,一次处理一个报文数组(Packet Vector) , 而非单个报文(Packet) 。把一批从底层硬件队列 Rx Ring (接收队列) 收到的报文,组成一个报文数组,称为 Packet Vector 矢量报文, 再助于 Packet Processing Graph 报文处理图 来组织处理流程。如下

 

 

 

 

0条评论
0 / 1000
刘****珂
5文章数
0粉丝数
刘****珂
5 文章 | 0 粉丝
刘****珂
5文章数
0粉丝数
刘****珂
5 文章 | 0 粉丝
原创

VPP介绍

2024-09-27 09:20:41
73
0

背景简介

VPP全称Vector Packet Processing,据说是Cisco 2002年开发的商用代码。2016年2月11号,Linux基金会创建FD.io项目。Cisco将VPP代码的开源版本加入该项目,目前已成为该项目的核心。VPP运行于用户空间,支持多种收包方式,最常用的就是DPDK收发包 VPP官方给出的特性列表如下:

 

 

软件架构

VPP 的软件架构包括一个开发框架、和一系列根据 Packet Processing Graph 组织的 Graph Node 。 (1)Packet Processing Graph: 则由多个 Graph Node (姑且称 图节点)组成, Graph Node 把整个报文处理流程、分解为一个个先后连接的 Service Node (服务节点);Packet Vector 首先被第一个 Graph Node 处理, 然后依次被第二个、第N个 Graph Node 处理,依次类推。 (2)开发框架: 包含了基本的数据结构、定时器、驱动程序、在 Graph Node 间 分配 CPU 时间片的调度器、性能调优工具 (e.g. 计数器、抓包工具)。 VPP 的开发框架采用 Plugin 机制, Plugin Graph Node 与 VPP Build-in Graph Node 被同等对待, 从而有利于快速灵活地开发新功能。 因此, 插件机制使开发者能够充分利用现有模块、快速开发出新功能。 实际上,插件的本质就是实现了某一特定功能的 Graph Node, 但也可以是一个驱动程序或者CLI 。 Plugin Graph Node 能被插入到 VPP 的 Packet Processing Graph 中的任意位置。

 

 

技术简介

 

 

矢量数据报文(Packet Vector) 与 标量报文 标量报文处理方式: 是人类常用的思维逻辑方式,即:报文时按照到达先后次序来处理,第一个报文处理完,在处理第二个,以此类推。 更为窗体的方式还需要结合处理中断,并遍历调用栈(e.g. calls b、calls c、calls d… return return return),然后从中断返回,函数会频繁嵌套调用。 最后,该过程执行后续三种操作之一 : a、不处理 , b、丢弃或重写、c、转发报文 矢量报文处理方式是一次处理多个报文,即,一次处理一个报文数组(Packet Vector) , 而非单个报文(Packet) 。把一批从底层硬件队列 Rx Ring (接收队列) 收到的报文,组成一个报文数组,称为 Packet Vector 矢量报文, 再助于 Packet Processing Graph 报文处理图 来组织处理流程。如下

 

 

 

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0