一 介绍
VPP平台是一个提供了交换机/路由器(switch/router)开箱即用(out-of-the-box)产品功能的可拓展框架。由思科 Vector Packet Processing (VPP)技术开源而来。VPP是一个高性能(high performance)数据包处理栈,可以运行在商用(commodity)CPU上。
使用VPP好处是高性能(high performance),实践检验的成熟技术(proven technology),模块化(modularity)和易于扩展(flexibility),以及丰富的功能集(rich feature set)。
VPP技术经过实践检验,已经用于超过数十亿的思科产品上。产品模块化设计,框架允许通过以插件形式新增图节点(graph nodes)作扩展而不需要去改变VPP的核心(core/kernel)代码。
VPP在裸机/虚拟机/容器中的应用:
Bare-Metal/VM/Container
Data Plane Management Agent
Vector Packet Processing
Network IO
二 编译
编译环境
Ubuntu 20.04.4 LTS
编译VPP
官方文档:VPP/Pulling, Building, Running, Hacking and Pushing VPP Code - fd.io
1 下载源码
建议通过clone方式下载。我通过源码包的方式编译过,容易出问题。
git clone https://gerrit.fd.io/r/vpp
切到VPP 2110版本的分支
vpp# git checkout -b stable/2110 --track origin/stable/2110
vpp# ls
build build-root docs extras LICENSE Makefile RELEASE.md test
build-data configure doxygen INFO.yaml MAINTAINERS README.md src
编译源码
按照官方给的编译命令编译
# vpp 18.10+ (cmake)
make install-dep
make install-ext-deps
make build # or `make build-release`
2 安装依赖包
vpp# make install-dep
vpp# make install-ext-deps
Removing deb/debian/vpp-ext-deps.substvars
Removing deb/debian/vpp-ext-deps/
make[2]: Leaving directory '/vpp/build/external'
Selecting previously unselected package vpp-ext-deps.
(Reading database ... 1961