安装教程参考:https://github.com/signorello/NDN.p4 的Readme文档
第一部分:安装minindn
1、安装git程序
sudo apt-get install git
2、下载mini-ndn
git clone https://github.com/named-data/mini-ndn
3、转到mini-ndn目录下
cd mini-ndn
4、安装mini-ndn以及所有相关的依赖
./install.sh -a
5、安装完进行验证 mininet
sudo mn --test pingall
观察结果,应该显示0%dropped(2/2 received)。
6、安装完进行验证minindn
sudo minindn --experiment=pingall --nPings=50
当mini-ndn>出现的时候,这个测试实验就结束了。使用exit退出程序。
使用命令 :grep -c content /tmp/minindn/*/ping-data/*.txt 查看文件,文件中的每一行应该都有50。
使用命令:grep -c timeout /tmp/minindn/*/ping-data/*.txt 查看文件,文件的每一行应该都有0。
值得注意:之前,我装mini-ndn的时候是自己一步一步手工装的,当时是把NFD,NLSR,ndn-tools,ndn-cxx都装到了和mini-ndn同一级的目录下,但是我观察这次试用脚本文件安装的东西,是将NFD,NLSR,ndn-tools,ndn-cxx,ChronoSync,mininet都装到了mini-ndn的目录下,相当于变成了子目录。
观察到,当使用这个实验的时候,会把每个节点相关的所有的数据都会储存在/tmp/minindn下。
另外的话,当mini-ndn>提示出现的时候,输入a nfd-status -b可以看到nfd相关的信息。
第二部分:安装p4 bmv2,也叫作P4软件交换机
bmv2是P4软件交换机的第二个版本。
1、下载bmv2(稍微有一个问题,不知道这个bmv2是和mini-ndn同级目录,还是包含的关系,我在这暂时先将它们装成同级目录的关系)
git clone https://github.com/p4lang/behavioral-model bmv2
2、转到bmv2目录下
cd bmv2
3、安装bmv2所需要的所有依赖
./install_deps.sh
4、安装完依赖后,Building the code构建代码
./autogen.sh
./configure
make
sudo make install
另外,在linux系统中,安装完bmv2后你可能还需要输入:sudo ldconfig ,来更新一下共享库的缓存。
Debug模块是被默认安装的,如果你为了性能考虑想移除掉,那么在上面输入./configure命令时,传入参数将命令变成:
./configure --disable-logging-macros
如果你想添加bmv2新的debugger器,将./configure改成 :
./configure --enable-debugger
5、然后接下来运行测试
make check
如果你在运行测试时得到了nanomsg错误,那试着使用sudo 进行运行:
sudo make check
6、其他的,Integrating with Mininet
你可以使用bmv2的targets文件夹中的simple_router,来快速地进行Mininet集成测试。
在第一个终端,输入下面:
cd mininet 注意,这个mininet目录是bmv2目录下的mininet目录
sudo python 1sw_demo.py --behavioral-exe ../targets/simple_router/simple_router --json ../targets/simple_router/simple_router.json
另外注意,第二句指令中的lsw_demo.py的开头字母,我也不确定是“1”还是“l“,所以保险起见,还是打开mininet目录下将文件名进行粘贴复制吧。
然后第二个终端输入:
cd targets/simple_router
./runtime_CLI < commands.txt
现在switch已经开始运行,而且table已经开始产生。
在终端1出现了mininet>的命令提示符。你在这个命令提示符下输入pingall得到下面的内容