前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu系统编译思科VPP24.02演示

Ubuntu系统编译思科VPP24.02演示

作者头像
通信行业搬砖工
发布2024-06-13 20:34:44
990
发布2024-06-13 20:34:44
举报
文章被收录于专栏:网络虚拟化网络虚拟化

00、思科VPP软件概要

思科VPP(Vector Packet Processing)是一款由思科开发的商用代码,后来其开源版本被加入到Linux基金会的FD.io项目中,并成为该项目的核心。以下是关于思科VPP的概要介绍:

一、VPP的基础信息

  • 全称:Vector Packet Processing(向量包处理)
  • 开发者:思科
  • 初始开发时间:2002年
  • 开源时间:2016年,加入Linux基金会的FD.io项目

二、VPP的主要特点和功能

  1. 高性能:VPP运行在用户空间,支持多种收包方式,如DPDK,从而实现高性能的包处理。
  2. 框架可扩展:VPP构建基于“包处理图”,可以方便地“插入”新的节点,实现功能的拓展和自定义。
  3. 成熟的交换/路由功能:VPP提供了丰富的交换和路由功能,适用于各种网络环境。

三、VPP的应用场景

  1. 云计算和数据中心网络:VPP可以与虚拟化和容器化技术结合使用,加速云计算平台中的网络数据包处理。
  2. 网络功能虚拟化(NFV):VPP可以作为NFV架构中的虚拟网络功能(VNF)组件,提高网络功能的部署和管理效率。
  3. 边缘计算和物联网:VPP适用于边缘设备,能处理海量的网络数据包,为边缘计算和物联网应用提供高效支持。

四、VPP的技术优势

  • 模块化与灵活性:VPP的模块化设计使得新的插件易于使用和与现存图节点结合,提高了系统的灵活性。
  • 包处理革新:VPP将包处理由逐个处理变为批量处理(向量包),提高了处理效率。
  • 易于扩展:VPP引擎运行在纯用户空间上,无需源代码即可扩展引擎功能。

01、编译环境介绍

编译机环境介绍

OS:Ubuntu 22.04

VPP:VPP branch 24.02

02、源码下载操作

VPP 源代码下载

通过执行命令:git clone -b stable/2402 https://gerrit.fd.io/r/vpp 从官网拉取 vpp 24.02 版本

执行操作如下所示,当前全新的ubuntu 22.04版本拉取代码。

问题一:操作日志显示git not found 错误。日志如下所示:

解决方法:使用apt install git 命令从unbuntu 官方源拉取git工具安装到本地。

然后使用git 命令,使用-b 参数下载指定版本的vpp代码。其操作指令为: git clone -b stable/2402 https://gerrit.fd.io/r/vpp

03、编译vpp源代码实操

一、依赖环境安装

该步骤通过使用 make install-dep 命令安装编译需要的工具链等配置。

问题二:make 工具未安装

解决方法:按照提示安装工具,使用apt install make 命令从OS的源拉取make工具安装到本地。

然后继续执行make install-dep命令,搭建编译依赖的环境。

中间略去N行 log信息,无错误提示,标识该步骤执行成功。

二、执行vpp代码构造操作

该步骤通过使用make build 或者make build-release 编译版本,其分别对应编译调试的debug版本,和发布的release版本。其区别在于debug版本编译的版本含有gcc 调试的符号,而 release 发布版本使用gcc -O3 优化,删除了一些调试的符号。gcc -O3 等优化细节,详情可以参考网上相关资料, Google is the best answer.

提示:该步骤需要联网下载如dpdk等相关依赖包,因此需要连接网络。

问题三:构造过程中,需要下载RDMA包,但是因网络不稳定,出现问题:RDMA软件包下载失败

解决方法:重新执行 make build命令,会从上次下载失败的软件包处重新开始下载依赖包

在此构造过程中,需要编译DPDK,因此消耗时间较多。

问题四:缺少meson 工具导致无法编译dpdk

解决方法

方法一:重新执行make build 操作,通过log可以清晰看到meson工具被安装。

方法二:安装与之对应版本的meson工具。

最终编译成功

可执行程序vpp在路径 build-root/build-vpp_debug-native/vpp/bin/

当前版本对应的lib库路径:

build-root/build-vpp_debug-native/vpp/lib/x86_64-linux-gnu/

VPP软件库中各个插件对应的lib库路径

build-root/build-vpp_debug-native/vpp/lib/x86_64-linux-gnu/vpp_plugins/

04、结束

小伙伴们,本章节关于Ubuntu 22.04环境下编译思科VPP 24.02版本的软件编译就先介绍到这了。后续章节我们继续讲解VPP的相关知识,感谢小伙伴们的阅读,下期再见!

作者简介

作者:通信行业搬砖工 云网络高级软件工程师

数通领域行业从业人员

现云网络行业从业者

(正文完)

END

转载与投稿

文章转载需注明:来源公众号:通信行业搬砖工,并且附上链接

文章错误之处,欢迎指导斧正,各位大拿留言交流,探讨技术。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 通信行业搬砖工 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
边缘可用区
腾讯云边缘可用区(TencentCloud Edge Zone,TEZ)是腾讯云的本地扩展,适用于解决计算、存储和服务可用性问题。腾讯云边缘可用区可为您带来云的诸多优势,例如弹性、可扩展性和安全性。借助腾讯云边缘可用区,您可以在靠近最终用户的地理位置运行对延迟敏感的应用程序,基本消除延迟问题。腾讯云边缘可用区提供与中心节点一致的体验,助力业务下沉,具备更低延时、更广覆盖、更少成本等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档