目录

文章目录

  • 目录
  • VPP 的分层架构
    • VPP INFRA(基础设施层)
    • VLIB(矢量处理库层)
    • VNET(网络协议栈层)
    • Plugins(插件 APP 层)
  • VPP 的软件架构
  • VPP TLDK Project

VPP 的分层架构

VPP INFRA(基础设施层)

  • 源码路径:./src/vppinfra

VPP INFRA 包含核心库的源代码,是一系列基本 C 服务库的集合,还提供了高性能的数据结构,例如:Vectors、Rings、Hashing、Timers、Bitmaps、Pools、Hashes 以及一些基本库函数。

VLIB(矢量处理库层)

  • 源码路径:./src/{vlib, vlibapi, vlibmemory}

VLIB 是一个矢量(Vector)处理库,提供了对 Vector 的处理函数,还提供了各种对 Application 的管理功能。包括:Buffers 管理、Graph Node 管理、多线程支持(Threading)、数据包跟踪(Tracing)、计数器(Counters)等功能,还实现了 Debug CLI 功能。

VNET(网络协议栈层)

  • 源码路径:./src/vnet

VNET 是 VPP 实现的用户态网络协议栈,与 VPP 的 Network Interface(L2-4)协同工作,执行 Session 和 Traffic Management,并与 Devices(设备)和 CP(Control Plane,数据控制平面)配合使用。

Plugins(插件 APP 层)

VPP 内建了越来越丰富的数据平面插件集合,并且在 VPP 中,新建一个自定义的 Plugin 插件也很简单。

VPP 的软件架构

Pros

  • Kernel independent
  • All packet processing done in user space
  • DPDK based (or netmap, virtio, host, etc.)
  • Includes full scale L2/L3 Networking stack
  • Routing decision made by VPP
  • Also includes bridge implementation
  • Good plugins framework
  • Integrated with external management: Honeycomb

Cons

  • Young project
  • Many open areas
  • Open Stack integration / Neutron
  • Lack of Transport Layer integration
  • Control Plane API & Stack

But what about L4/L7?

  • TLDK Project

VPP TLDK Project

TLDK Application Layer

  • Using TLDK Library to process TCP and UDP packets

Purpose Built Application

  • Using TLDK API Directly (VPP node)
  • Provides highest performance

BSD Socket Layer

  • A standard BSD socket layer for applications using sockets by design
  • Lower performance, but good compatibility

LD_PRELOAD Socket Layer

  • Used to allow a ‘native binary Linux’ application to be ported in to the
    system
    Allows for existing application to work without any change

FD.io/VPP — VPP 的软件架构相关推荐

  1. FD.io VPP 20.09版本正式发布:往期VPP文章回顾+下载地址+相关链接

    目录 下载RPM/DEB包 往期文章回顾与推荐 FD.io是一些项目和库的集合,基于DPDK并逐渐演化,支持在通用硬件平台上部署灵活可变的业务.FD.io为软件定义基础设施的开发者提供了一个通用平台, ...

  2. FD.io/VPP — IPSec

    目录 文章目录 目录 VPP/IPSec Configuration Use case 1 HTTP Server configuration strongSwan initiator configu ...

  3. FD.io/VPP — VPP 的配置与运行

    目录 文章目录 目录 配置 80-vpp.conf startup.conf 可以配置 VPP 的 Threading Modes 运行示例 non-DPDK 模式运行 VPP DPDK 模式运行 V ...

  4. FD.io/VPP — VPP 的安装部署

    目录 文章目录 目录 源码编译安装 Troubleshooting 问题 1:Errors were encountered while processing 问题 2:NASM is not ins ...

  5. FD.io/VPP — Overview

    目录 文章目录 目录 FD.io VPP FD.io 官网:https://fd.io FD.io(Fast data – Input/Output)是 Linux 基金会下属的一个开源项目,成立于 ...

  6. FD.io VPP官方邮件列表

    https://www.mail-archive.com/vpp-dev@lists.fd.io/ 邮件内容更新截至2020年9月21日17:23:47 Messages by Thread [vpp ...

  7. FD.io VPP:用户文档:VPP RPM包的构建与离线安装

    VPP RPM包的构建与离线安装 RToax 2020年9月 要开始使用VPP进行开发,您需要获取所需的VPP源代码,然后构建软件包. 1. 设置代理 如果你的服务器本地可以连接互联网,则跳过设置代理 ...

  8. FD.io VPP:CentOS7下构建自己的VPP RPM包

    FD.io VPP:用户文档 构建VPP RToax 2020年9月 要开始使用VPP进行开发,您需要获取所需的VPP源代码,然后构建软件包. 1. 设置代理 如果你的服务器本地可以连接互联网,则跳过 ...

  9. FD.io VPP的C语言接口如何使用:FD.io VPP: How To Use The C API

    目录 引言 - Introduction C语言API概述 - C API Overview 运行环境 - The Runtime Environment API回顾 - Message API Re ...

  10. How-to: Build VPP FD.IO development environment with Mellanox DPDK PMD.

    目录 References Prerequisite Installation, Compilation and Configuration VPP is an open-source Vector ...

最新文章

  1. [翻译] Ruby Golf
  2. 2020届 AAAI Fellow名单新鲜出炉!!!深度学习三巨头终于齐聚
  3. 机房管理系列之门禁系统
  4. BZOJ2131免费的馅饼 DP+树状数组
  5. Android之jni解决JNIEnv跨线程问题
  6. ogm session_带有Hibernate OGM的NoSQL –第三部分:在WildFly上构建REST应用程序
  7. 如何为JBoss Developer Studio 8设置BPM和规则工具
  8. java 遍历hashmap key_Java5种遍历HashMap数据的写法
  9. 原生js实现类似jq的trigger
  10. 自己动手架设linux下Web服务器(图)5
  11. Python装饰器详解,详细介绍它的应用场景
  12. python脚本字符串拼接_Python脚本分割和连接字符串
  13. css 悬停动画_CSS3缩放图像动画效果悬停
  14. 本地虚拟机部署java项目(tomcat8 ,jdk8,VMWare)
  15. vue引入自己写的js文件
  16. 学习总结-《父与子的编程之旅》chapter 10
  17. LOJ#6070. 「2017 山东一轮集训 Day4」基因 解题报告
  18. 计算机瞬间黑屏又自动恢复,电脑显示器突然黑屏然后过几秒又自动恢复过来为什么?-显示器黑屏几秒又好...
  19. win10 开机不显示bios选单的一种解决办法
  20. 2008,AMD发展史上的一个分水岭

热门文章

  1. DNS重绑定DNS Rebinding攻击
  2. linux中if语句s,linux 中 if 语句条件的含义
  3. html标签里写js,JS事件(HTML标签内)
  4. python的concat函数_python concat函数
  5. delphi中的函数传参如何传枚举参数_shell脚本的函数介绍使用和工作常用案例。建议收藏...
  6. 解决arXiv上传LaTeXpaper的坑
  7. 科学家从脑电图中解读大脑的运动意图
  8. 手把手教你使用 1D 卷积和 LSTM 混合模型做 EEG 信号识别
  9. 小猫咪小狗狗也有智能「手表」了,可监测健康,识别情绪,还防乱跑|CES 2022...
  10. 能打造新型CPU的有机分子元件登Nature,用if语句攒出决策树,一个顶数千晶体管...