Featured image of post P4开发环境部署

P4开发环境部署

部署基于bmv2软件交换机的P4开发环境

环境部署

克隆虚拟机(推荐)

传送门:
p4-guide/bin/README-install-troubleshooting.md at master jfingerhut/p4-guide - GitHub
tutorials/vm-ubuntu-24.04/README.md at master · p4lang/tutorials - GitHub

P4社区已构建、打包完成装配有P4开发环境的虚拟机,并提供镜像下载,可直接获取最新打包的镜像在Oracle VirtualBox中导入使用,系统为Ubuntu 24.04,用户名和密码均为p4。

编译安装A

若需要自行编译安装,P4社区同样提供了便捷的一键安装脚本,该脚本适用于Ubuntu 20.04, 22.04, 24.04。只需使用以下命令,推荐只在home目录下操作。注意整个过程非常缓慢、需要数个小时,若出现中途报错、或网络不稳定,可重新再次尝试。

1
2
3
4
cd ~
sudo apt install git camke
git clone https://github.com/jafingerhut/p4-guide
./p4-guide/bin/install-p4dev-v8.sh

在安装完成的最后,脚本会提示关于环境变量的注意事项:每次打开新的shell,如果想在里面使用P4环境及其中的开发工具,就要执行以下命令,以加载脚本里定义的环境变量(当然也可以将下列命令加入到~/.bashrc文件的末尾处,以使P4环境被自动加载)。

1
source $HOME/p4setup.bash

编译安装B(推荐)

P4-Utils也提供了便捷的一键编译安装脚本,该脚本已在Ubuntu 20.04和Ubuntu 22.04上适用。

1
2
3
4
cd ~
sudo apt install git gcc cmake make
wget -O install-p4-dev.sh https://raw.githubusercontent.com/nsg-ethz/p4-utils/master/install-tools/install-p4-dev.sh
bash install-p4-dev.sh

运行程序

运行方式A

若采用克隆虚拟机、编译安装A的方式安装P4开发环境,需采用运行方式A:

1
make run

若需要退出,先在mininet的CLI中输入exit命令,随后使用make 的stop和clena清理网络环境:

1
2
3
mininet > exit
make stop
make clean

运行方式B

若采用编译安装B的方式安装P4开发环境,则采用运行方式B:

1
sudo p4run

若需要退出,直接在mininet的CLI中输入exit命令即可:

1
mininet > exit

学习案例

教程A

教程的传送门:tutorials/exercises at master· p4lang/tutorials • GitHub

通过上述方法(克隆虚拟机、编译安装A)完成安装后,tutorials/exercises文件夹下为相关的典型P4案例。

教程B

教程的传送门:Github - nsg-ethz/p4-learning: Compilation of P4 exercises, examples, documentation,slides for learning or teaching

通过上述方法(编译安装B)完成安装后,所带的P4-Learning是另一个比较好、且推荐的教程,亦可通过以下命令获取:

1
2
cd ~
git clone https://github.com/nsg-ethz/p4-learning.git

Licensed under CC BY-NC-SA 4.0
皖ICP备2025083746号-1
公安备案 陕公网安备61019002003315号



使用 Hugo 构建
主题 StackJimmy 设计