介绍
p4pktgen是一个为P4程序生成输入包和表条目的工具,它覆盖了程序的所有路径。
它支持用P4_14或P4_16变体语言编写的程序,只要程序可以使用开源p4c-bm2-ss编译器编译(p4c库的一部分),
编译为使用simple_switch 的bmv2 JSON文件软件交换机。
它目前覆盖了通过解析器和入口控制块的所有执行路径组合,但**忽略了出口控制块**。
它在simple_switch上运行测试用例来检查数据包是否遵循期望的执行路径,并写出描述测试用例的数据文件,该文件可在其他P4实现上执行测试用例。
安装
预安装
Python 2.7,
pip p4c
simple_switch from the behavioral-model project
为了安装p4c和simple_switch,有一个Andy Fingerhut的脚本。
在运行p4pktgen之前,确保simple_switch在路径中。
(这个我没懂,不过装好p4c就有simple_switch了)
安装
运行p4pktgen的安装脚本如下:
% ./tools/install.sh
运行p4pktgen的基本命令如下:
% p4pktgen < json file >
-d:打印额外的调试信息;
-h选项为其他可用的命令行选项提供帮助。
注意:在运行前需要先设置命令路径和环境变量:
~/p4pktgen-master$ source my-venv/bin/activate