这里讲的是如何使用NS4进行你自己的网络模拟实验,具体包括需要编写哪些程序,需要进行哪些操作。
1 定义网络拓扑结构
需要根据实际应用场景定义网络拓扑结构,关于网络拓扑格式可参考网络拓扑定义
定义好的网络拓扑文件需保存在topo目录下
2 编写P4程序
- 需要根据应用场景需要编写P4程序,这里可进入test目录下,运行脚本(假设将P4程序命名为demo)
$bash creat_nf.sh demo
进入demo.p4编写相应的处理逻辑,并采用p4c-bmv2将demo.p4编译成demo.json
编写mtype .txt
- 需要将该P4程序的相关信息添加到全局变量中,具体需要进行
进入model/global.h中添加该P4程序功能无符号整数值
unsigned const int DEMO = 1000;
进入model/global.cc 添加路径信息以及P4功能名字与无符号整数值的对应关系
在void P4GlobalVar::SetP4MatchTypeJsonPath()函数中,添加
if(P4GlobalVar::g_networkFunc==DEMO)
{
P4GlobalVar::g_p4JsonPath=P4GlobalVar::g_nfDir+"demo/demo.