下午做的事情:
1:安装bmv2
2:安装p4c-bm
3:安装crcmod库
4:下载NDN.p4到bishe目录下
5:打补丁
cdmini-ndn(v0.1.1)目录下
zdd@zdd-VirtualBox:~/bishe/mini-ndn$ patch -p1 < ~/bishe/NDN.p4/mini-ndn/mini-ndn.patch
zdd@zdd-VirtualBox:~/bishe/mini-ndn$ patch -p1 < ~/bishe/NDN.p4/mini-ndn/ndn_dir.patch
6:将额外的文件从NDN.p4中拷到mini-ndn(v0.1.1)中
The
variable $MININDN_DIR is a placeholder for the mini-ndn home
directory in your system.
包括:
$MININDN_DIR/ndn/experiments/my_experiment.py
$MININDN_DIR/ndn/ndnP4_demo.py
$MININDN_DIR/ndn/p4_mininet.py
$MININDN_DIR/p4-switch.conf
7:修改已经拷贝到mini-ndn(v0.1.1)中的p4-switch.conf文件的内容
打开,p4-switch.conf文件,将里面的路径信息修改成本机上的路径信息.
并且将修改后的p4-switch.conf拷贝到/usr/local/etc/mini-ndn中
8:翻译规则集
python
createFIBrules.py --fib fib.txt --cmd ndn_commands.partial.txt -c 5
使用后,结果如下:
ReadingFIB entries from fib.txt
Appendingcommands to ndn_commands.partial.txt
Entry:" /snt/sedan/state 1 " maps into:
table_addfib_table set_egr 3 0&&&0 0&&&00x7ede&&&0xffff 0&&&0 0&&&0 =>2 3
table_addfib_table set_egr 4 0&&&0 0&&&00x7ede&&&0xffff 0&&&0 0&&&0 =>2 3
table_addfib_table set_egr 5 0&&&0 0&&&00x7ede&&&0xffff 0&&&0 0&&&0 =>2 3
Entry:" /snt/sedan 2 " maps into:
table_addfib_table set_egr 2 0&&&0 0xe730&&&0xffff0&&&0 0&&&0 0&&&0 => 3 4
table_addfib_table set_egr 3 0&&&0 0xe730&&&0xffff0&&&0 0&&&0 0&&&0 => 3 4
table_addfib_table set_egr 4 0&&&0 0xe730&&&0xffff0&&&0 0&&&0 0&&&0 => 3 4
table_addfib_table set_egr 5 0&&&0 0xe730&&&0xffff0&&&0 0&&&0 0&&&0 => 3 4
Entry:" /snt 3 " maps into:
table_addfib_table set_egr 1 0x9cdd&&&0xffff 0&&&00&&&0 0&&&0 0&&&0 => 4 5
table_addfib_table set_egr 2 0x9cdd&&&0xffff 0&&&00&&&0 0&&&0 0&&&0 => 4 5
table_addfib_table set_egr 3 0x9cdd&&&0xffff 0&&&00&&&0 0&&&0 0&&&0 => 4 5
table_addfib_table set_egr 4 0x9cdd&&&0xffff 0&&&00&&&0 0&&&0 0&&&0 => 4 5
table_addfib_table set_egr 5 0x9cdd&&&0xffff 0&&&00&&&0 0&&&0 0&&&0 => 4 5
9:激动,紧张,忐忑,要做最后一步实验了
sudominindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment –p4
报出信息:
Usage:minindn [template_file] [ -t | --testbed ]
Ifno template_file is given, ndn_utils/default-topology.conf (givensample file)
willbe used.
If--testbed is used, minindn will run the NDN Project Testbed.
minindn:error: no such option: --p4
有两种解决方法:
第一种,备份一个:ndn_utils/default-topology.conf文件,然后将/home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf文件的内容覆盖ndn_utils/default-topology.conf中的内容
第二种:先查看一下minindn的使用办法
先暂时采用第二种方法.
我查看了一下,
youwill not be able to successfully run the experiment without passingto minindn the "--p4" option. You may look at the code inthe "bin/minindn" script to see that the option is used toload the programmable P4switch class for the switches in your mininettopology. Without that option, a normal switch, which is not able toexecute your p4 program, will be loaded instead.
我在整个目录下搜索minindn的文件,发现只有两个地方有叫做minindn的文件,
第一个文件在/home/zdd/bishe/mini-ndn-0.1.1/bin中,我打开这个minindn.py文件,发现它里面的内容修改了:可以看到增加了--p4的参数
parser.add_option("--p4",action="store_true", dest="p4", default=False,
help="--p4istantiates P4-compatible software switches in your topology")
parser.add_option("--p4-dir",action="store", dest="p4Dir",default="/usr/local/etc/mini-ndn/",
help="Specifythe full path directory where the p4-related config files aresearched for; the default is /usr/local/etc/mini-ndn/")
另一个文件是在/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7文件夹中,而且这个文件还是上锁的,打开这个文件的内容:
发现里面是没有加上p4的任何信息的,
现在使用diff来比较一下两个文件的差异
diff/home/zdd/bishe/mini-ndn-0.1.1/bin/minindn/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7/minindn >~/bishe/lastone
总体感觉下来,感觉,前一个文件minindn是加上了p4,而后一个文件没有加上p4.
接下来,再比较一下,一个新的mini-ndn0.1.1中的bin/minindn(没有打过补丁的)和/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7/minindn的区别
diff/home/zdd/压缩包/mini-ndn-0.1.1/bin/minindn/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7/minindn >~/bishe/lastone2
发现lastone2中的文件,是一片空白.也就是说,这两个文件是一模一样的.
这样的话,我先将/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7/minindn备份一份,然后将
/home/zdd/压缩包/mini-ndn-0.1.1/bin/minindn向/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7中拷贝一份.
然后试着运行sudominindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment –p4
然后还是得到下面的信息:
zdd@zdd-VirtualBox:~$sudo minindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment --p4
[sudo]password for zdd:
Usage:minindn [template_file] [ -t | --testbed ]
Ifno template_file is given, ndn_utils/default-topology.conf (givensample file)
willbe used.
If--testbed is used, minindn will run the NDN Project Testbed.
minindn:error: no such option: --p4
这次我在整个计算机中搜索叫做minindn的文件,
发现在/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts文件夹中也包含minindn文件,看一下这个文件是否打过补丁.
diff/home/zdd/压缩包/mini-ndn-0.1.1/bin/minindn/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn> ~/bishe/lastone3
发现这个/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn也是没有打过补丁的.
那么继续备份一份,然后尝试一下
复制,丢弃,备份完了之后,再尝试一下:
sudominindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment –p4
这次运行完了之后,终于出现了不同的提示信息:
zdd@zdd-VirtualBox:~$sudo minindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment --p4
Traceback(most recent call last):
File"/usr/local/bin/minindn", line 5, in <module>
pkg_resources.run_script('Mini-NDN==0.1.1','minindn')
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line528, in run_script
self.require(requires)[0].run_script(script_name,ns)
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line1394, in run_script
execfile(script_filename,namespace, namespace)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 73, in <module>
fromndn.p4_mininet import P4Switch
ImportError:No module named p4_mininet
看来文件是改对了,但是还存在一些问题,ImportError:No module named p4_mininet
查了一下ImportError:No module named p4_mininet的解决方案:
先搜索p4_mininet.py文件,发现/home/zdd/bishe/bmv2/mininet中有,/home/zdd/bishe/mini-ndn-0.1.1/ndn也有.而且两个文件的内容还不一样.
先处理/home/zdd/bishe/bmv2/mininet的文件吧
解决方案链接:https://cnblogs.com/qq952693358/p/6195041.html
再试一次P4实验:
Traceback(most recent call last):
File"/usr/local/bin/minindn", line 5, in <module>
pkg_resources.run_script('Mini-NDN==0.1.1','minindn')
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line528, in run_script
self.require(requires)[0].run_script(script_name,ns)
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line1394, in run_script
execfile(script_filename,namespace, namespace)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 73, in <module>
fromndn.p4_mininet import P4Switch
ImportError:No module named p4_mininet
结果还是一样,
那接下来就处理一下/home/zdd/bishe/mini-ndn-0.1.1/ndn中的文件吧
处理了之后,还是不行
查看了一下minindn中的源码
fromndn import ExperimentManager
fromndn.ndn_host import NdnHost, CpuLimitedNdnHost
fromndn.conf_parser import parse_hosts, parse_switches, parse_links
fromndn.p4_mininet import P4Switch
发现同时导入了好几个包conf_parser,ndn_host都在下面这个文件夹中.
/home/zdd/bishe/mini-ndn-0.1.1/build/lib.linux-x86_64-2.7/ndn
唯独p4_mininet没在,先试一下,将p4_mininet手动拷进去
考进去了,但是还是出现了那样的问题:
Traceback(most recent call last):
File"/usr/local/bin/minindn", line 5, in <module>
pkg_resources.run_script('Mini-NDN==0.1.1','minindn')
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line528, in run_script
self.require(requires)[0].run_script(script_name,ns)
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line1394, in run_script
execfile(script_filename,namespace, namespace)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 73, in <module>
fromndn.p4_mininet import P4Switch
ImportError:No module named p4_mininet
#fromndn.p4_mininet import P4Switch ,将这句话试着去掉ndn.p4_mininet,改成p4_mininet
晚上解决:
切换到mini-ndnv0.1.1目录下,使用./install.sh-i重新将mini-ndn进行安装了一下.
zdd@zdd-VirtualBox:~$sudo minindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment
[sudo]password for zdd:
Noresults folder specified; experiment results will remain in theworking directory
cp:无法获取"/usr/local/etc/ndn/nfd.conf"的文件状态(stat):没有那个文件或目录
Parseof /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf done.
***Creating network
***Adding controller
***Adding hosts:
ab
***Adding switches:
s1
***Adding links:
***Configuring hosts
a*** defaultIntf: warning: a has no interfaces
b*** defaultIntf: warning: b has no interfaces
Setuptime: 0
***Starting controller
c0
***Starting 1 switches
s1...
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
Loadingexperiment: P4_NDN_experiment
Failedto get nfd-status after 10 attempts on host a
Traceback(most recent call last):
File"/usr/local/bin/minindn", line 5, in <module>
pkg_resources.run_script('Mini-NDN==0.1.1','minindn')
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line528, in run_script
self.require(requires)[0].run_script(script_name,ns)
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line1394, in run_script
execfile(script_filename,namespace, namespace)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 428, in <module>
execute(options)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 406, in execute
experiment.start()
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/ndn/experiments/my_experiment.py",line 30, in start
self.setup()
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/ndn/experiments/my_experiment.py",line 51, in setup
raiseAssertionError(res1)
AssertionError:ERROR: error while connecting to the forwarder (No such file ordirectory)
重新安装了mini-ndnv0.1.1,然后运行sudominindn,发现报出下面的错误:
cp:无法获取"/usr/local/etc/ndn/nfd.conf"的文件状态(stat):没有那个文件或目录
Parseof /usr/local/etc/mini-ndn/default-topology.conf done.
***Creating network
***Adding controller
***Adding hosts:
ab c d
***Adding switches:
***Adding links:
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(a,b) (10ms delay) *** Error: RTNETLINK answers: No such file ordirectory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(a,c) (10ms delay) *** Error: RTNETLINK answers: No such file ordirectory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(b,d)
***Configuring hosts
ab c d
Setuptime: 0
***Starting controller
c0
***Starting 0 switches
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
***Starting CLI:
mininet>
感觉,好像是NFD也没有装好,NLSR也没有装好,
使用sudocp /usr/local/etc/ndn/nfd.conf.sample.usr/local/etc/ndn/nfd.conf,将nfd.conf.sample文件复制一份,命名为/usr/local/etc/ndn/nfd.conf放到同一个目录下,
cdmini-ndn0.1.1
sudopython setup.py clean
sudopython setup.py install
再运行sudominindn:出现下面的情况:
Parseof /usr/local/etc/mini-ndn/default-topology.conf done.
***Creating network
***Adding controller
Traceback(most recent call last):
File"/usr/local/bin/minindn", line 5, in <module>
pkg_resources.run_script('Mini-NDN==0.1.1','minindn')
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line528, in run_script
self.require(requires)[0].run_script(script_name,ns)
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line1394, in run_script
execfile(script_filename,namespace, namespace)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 428, in <module>
execute(options)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 295, in execute
net= Mininet(topo,host=NdnHost,link=TCLink)
File"build/bdist.linux-x86_64/egg/mininet/net.py", line 172, in__init__
File"build/bdist.linux-x86_64/egg/mininet/net.py", line 442, inbuild
File"build/bdist.linux-x86_64/egg/mininet/net.py", line 409, inbuildFromTopo
File"build/bdist.linux-x86_64/egg/mininet/net.py", line 261, inaddController
File"build/bdist.linux-x86_64/egg/mininet/node.py", line 1519,in DefaultController
File"build/bdist.linux-x86_64/egg/mininet/node.py", line 1360,in __init__
File"build/bdist.linux-x86_64/egg/mininet/node.py", line 1378,in checkListening
Exception:Please shut down the controller which is running on port 6633:
激活Internet连接(服务器和已建立连接的)
tcp 0 0 0.0.0.0:6633 0.0.0.0:* LISTEN 14990/controller
tcp 0 0 127.0.0.1:56158 127.0.0.1:6633 TIME_WAIT -
出现错误:Exception:Please shut down the controller which is running on port 6633:
上个问题消失了,但是又出现了这个问题:
zdd@zdd-VirtualBox:~$sudo minindn
Parseof /usr/local/etc/mini-ndn/default-topology.conf done.
***Creating network
***Adding controller
***Adding hosts:
ab c d
***Adding switches:
***Adding links:
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(a,b) (10ms delay) *** Error: RTNETLINK answers: No such file ordirectory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(a,c) (10ms delay) *** Error: RTNETLINK answers: No such file ordirectory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(b,d)
***Configuring hosts
ab c d
Setuptime: 0
***Starting controller
c0
***Starting 0 switches
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
***Starting CLI:
mininet>
打算重新装一下NLSR
下午做的事情:
1:安装bmv2
2:安装p4c-bm
3:安装crcmod库
4:下载NDN.p4到bishe目录下
5:打补丁
cdmini-ndn(v0.1.1)目录下
zdd@zdd-VirtualBox:~/bishe/mini-ndn$ patch -p1 < ~/bishe/NDN.p4/mini-ndn/mini-ndn.patch
zdd@zdd-VirtualBox:~/bishe/mini-ndn$ patch -p1 < ~/bishe/NDN.p4/mini-ndn/ndn_dir.patch
6:将额外的文件从NDN.p4中拷到mini-ndn(v0.1.1)中
The
variable $MININDN_DIR is a placeholder for the mini-ndn home
directory in your system.
包括:
$MININDN_DIR/ndn/experiments/my_experiment.py
$MININDN_DIR/ndn/ndnP4_demo.py
$MININDN_DIR/ndn/p4_mininet.py
$MININDN_DIR/p4-switch.conf
7:修改已经拷贝到mini-ndn(v0.1.1)中的p4-switch.conf文件的内容
打开,p4-switch.conf文件,将里面的路径信息修改成本机上的路径信息.
并且将修改后的p4-switch.conf拷贝到/usr/local/etc/mini-ndn中
8:翻译规则集
python
createFIBrules.py --fib fib.txt --cmd ndn_commands.partial.txt -c 5
使用后,结果如下:
ReadingFIB entries from fib.txt
Appendingcommands to ndn_commands.partial.txt
Entry:" /snt/sedan/state 1 " maps into:
table_addfib_table set_egr 3 0&&&0 0&&&00x7ede&&&0xffff 0&&&0 0&&&0 =>2 3
table_addfib_table set_egr 4 0&&&0 0&&&00x7ede&&&0xffff 0&&&0 0&&&0 =>2 3
table_addfib_table set_egr 5 0&&&0 0&&&00x7ede&&&0xffff 0&&&0 0&&&0 =>2 3
Entry:" /snt/sedan 2 " maps into:
table_addfib_table set_egr 2 0&&&0 0xe730&&&0xffff0&&&0 0&&&0 0&&&0 => 3 4
table_addfib_table set_egr 3 0&&&0 0xe730&&&0xffff0&&&0 0&&&0 0&&&0 => 3 4
table_addfib_table set_egr 4 0&&&0 0xe730&&&0xffff0&&&0 0&&&0 0&&&0 => 3 4
table_addfib_table set_egr 5 0&&&0 0xe730&&&0xffff0&&&0 0&&&0 0&&&0 => 3 4
Entry:" /snt 3 " maps into:
table_addfib_table set_egr 1 0x9cdd&&&0xffff 0&&&00&&&0 0&&&0 0&&&0 => 4 5
table_addfib_table set_egr 2 0x9cdd&&&0xffff 0&&&00&&&0 0&&&0 0&&&0 => 4 5
table_addfib_table set_egr 3 0x9cdd&&&0xffff 0&&&00&&&0 0&&&0 0&&&0 => 4 5
table_addfib_table set_egr 4 0x9cdd&&&0xffff 0&&&00&&&0 0&&&0 0&&&0 => 4 5
table_addfib_table set_egr 5 0x9cdd&&&0xffff 0&&&00&&&0 0&&&0 0&&&0 => 4 5
9:激动,紧张,忐忑,要做最后一步实验了
sudominindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment –p4
报出信息:
Usage:minindn [template_file] [ -t | --testbed ]
Ifno template_file is given, ndn_utils/default-topology.conf (givensample file)
willbe used.
If--testbed is used, minindn will run the NDN Project Testbed.
minindn:error: no such option: --p4
有两种解决方法:
第一种,备份一个:ndn_utils/default-topology.conf文件,然后将/home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf文件的内容覆盖ndn_utils/default-topology.conf中的内容
第二种:先查看一下minindn的使用办法
先暂时采用第二种方法.
我查看了一下,
youwill not be able to successfully run the experiment without passingto minindn the "--p4" option. You may look at the code inthe "bin/minindn" script to see that the option is used toload the programmable P4switch class for the switches in your mininettopology. Without that option, a normal switch, which is not able toexecute your p4 program, will be loaded instead.
我在整个目录下搜索minindn的文件,发现只有两个地方有叫做minindn的文件,
第一个文件在/home/zdd/bishe/mini-ndn-0.1.1/bin中,我打开这个minindn.py文件,发现它里面的内容修改了:可以看到增加了--p4的参数
parser.add_option("--p4",action="store_true", dest="p4", default=False,
help="--p4istantiates P4-compatible software switches in your topology")
parser.add_option("--p4-dir",action="store", dest="p4Dir",default="/usr/local/etc/mini-ndn/",
help="Specifythe full path directory where the p4-related config files aresearched for; the default is /usr/local/etc/mini-ndn/")
另一个文件是在/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7文件夹中,而且这个文件还是上锁的,打开这个文件的内容:
发现里面是没有加上p4的任何信息的,
现在使用diff来比较一下两个文件的差异
diff/home/zdd/bishe/mini-ndn-0.1.1/bin/minindn/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7/minindn >~/bishe/lastone
总体感觉下来,感觉,前一个文件minindn是加上了p4,而后一个文件没有加上p4.
接下来,再比较一下,一个新的mini-ndn0.1.1中的bin/minindn(没有打过补丁的)和/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7/minindn的区别
diff/home/zdd/压缩包/mini-ndn-0.1.1/bin/minindn/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7/minindn >~/bishe/lastone2
发现lastone2中的文件,是一片空白.也就是说,这两个文件是一模一样的.
这样的话,我先将/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7/minindn备份一份,然后将
/home/zdd/压缩包/mini-ndn-0.1.1/bin/minindn向/home/zdd/bishe/mini-ndn-0.1.1/build/scripts-2.7中拷贝一份.
然后试着运行sudominindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment –p4
然后还是得到下面的信息:
zdd@zdd-VirtualBox:~$sudo minindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment --p4
[sudo]password for zdd:
Usage:minindn [template_file] [ -t | --testbed ]
Ifno template_file is given, ndn_utils/default-topology.conf (givensample file)
willbe used.
If--testbed is used, minindn will run the NDN Project Testbed.
minindn:error: no such option: --p4
这次我在整个计算机中搜索叫做minindn的文件,
发现在/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts文件夹中也包含minindn文件,看一下这个文件是否打过补丁.
diff/home/zdd/压缩包/mini-ndn-0.1.1/bin/minindn/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn> ~/bishe/lastone3
发现这个/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn也是没有打过补丁的.
那么继续备份一份,然后尝试一下
复制,丢弃,备份完了之后,再尝试一下:
sudominindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment –p4
这次运行完了之后,终于出现了不同的提示信息:
zdd@zdd-VirtualBox:~$sudo minindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment --p4
Traceback(most recent call last):
File"/usr/local/bin/minindn", line 5, in <module>
pkg_resources.run_script('Mini-NDN==0.1.1','minindn')
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line528, in run_script
self.require(requires)[0].run_script(script_name,ns)
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line1394, in run_script
execfile(script_filename,namespace, namespace)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 73, in <module>
fromndn.p4_mininet import P4Switch
ImportError:No module named p4_mininet
看来文件是改对了,但是还存在一些问题,ImportError:No module named p4_mininet
查了一下ImportError:No module named p4_mininet的解决方案:
先搜索p4_mininet.py文件,发现/home/zdd/bishe/bmv2/mininet中有,/home/zdd/bishe/mini-ndn-0.1.1/ndn也有.而且两个文件的内容还不一样.
先处理/home/zdd/bishe/bmv2/mininet的文件吧
解决方案链接:https://cnblogs.com/qq952693358/p/6195041.html
再试一次P4实验:
Traceback(most recent call last):
File"/usr/local/bin/minindn", line 5, in <module>
pkg_resources.run_script('Mini-NDN==0.1.1','minindn')
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line528, in run_script
self.require(requires)[0].run_script(script_name,ns)
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line1394, in run_script
execfile(script_filename,namespace, namespace)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 73, in <module>
fromndn.p4_mininet import P4Switch
ImportError:No module named p4_mininet
结果还是一样,
那接下来就处理一下/home/zdd/bishe/mini-ndn-0.1.1/ndn中的文件吧
处理了之后,还是不行
查看了一下minindn中的源码
fromndn import ExperimentManager
fromndn.ndn_host import NdnHost, CpuLimitedNdnHost
fromndn.conf_parser import parse_hosts, parse_switches, parse_links
fromndn.p4_mininet import P4Switch
发现同时导入了好几个包conf_parser,ndn_host都在下面这个文件夹中.
/home/zdd/bishe/mini-ndn-0.1.1/build/lib.linux-x86_64-2.7/ndn
唯独p4_mininet没在,先试一下,将p4_mininet手动拷进去
考进去了,但是还是出现了那样的问题:
Traceback(most recent call last):
File"/usr/local/bin/minindn", line 5, in <module>
pkg_resources.run_script('Mini-NDN==0.1.1','minindn')
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line528, in run_script
self.require(requires)[0].run_script(script_name,ns)
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line1394, in run_script
execfile(script_filename,namespace, namespace)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 73, in <module>
fromndn.p4_mininet import P4Switch
ImportError:No module named p4_mininet
#fromndn.p4_mininet import P4Switch ,将这句话试着去掉ndn.p4_mininet,改成p4_mininet
晚上解决:
切换到mini-ndnv0.1.1目录下,使用./install.sh-i重新将mini-ndn进行安装了一下.
zdd@zdd-VirtualBox:~$sudo minindn /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf--experiment=P4_NDN_experiment
[sudo]password for zdd:
Noresults folder specified; experiment results will remain in theworking directory
cp:无法获取"/usr/local/etc/ndn/nfd.conf"的文件状态(stat):没有那个文件或目录
Parseof /home/zdd/bishe/NDN.p4/mini-ndn/p4.ndn.basic.conf done.
***Creating network
***Adding controller
***Adding hosts:
ab
***Adding switches:
s1
***Adding links:
***Configuring hosts
a*** defaultIntf: warning: a has no interfaces
b*** defaultIntf: warning: b has no interfaces
Setuptime: 0
***Starting controller
c0
***Starting 1 switches
s1...
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
Loadingexperiment: P4_NDN_experiment
Failedto get nfd-status after 10 attempts on host a
Traceback(most recent call last):
File"/usr/local/bin/minindn", line 5, in <module>
pkg_resources.run_script('Mini-NDN==0.1.1','minindn')
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line528, in run_script
self.require(requires)[0].run_script(script_name,ns)
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line1394, in run_script
execfile(script_filename,namespace, namespace)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 428, in <module>
execute(options)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 406, in execute
experiment.start()
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/ndn/experiments/my_experiment.py",line 30, in start
self.setup()
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/ndn/experiments/my_experiment.py",line 51, in setup
raiseAssertionError(res1)
AssertionError:ERROR: error while connecting to the forwarder (No such file ordirectory)
重新安装了mini-ndnv0.1.1,然后运行sudominindn,发现报出下面的错误:
cp:无法获取"/usr/local/etc/ndn/nfd.conf"的文件状态(stat):没有那个文件或目录
Parseof /usr/local/etc/mini-ndn/default-topology.conf done.
***Creating network
***Adding controller
***Adding hosts:
ab c d
***Adding switches:
***Adding links:
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(a,b) (10ms delay) *** Error: RTNETLINK answers: No such file ordirectory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(a,c) (10ms delay) *** Error: RTNETLINK answers: No such file ordirectory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(b,d)
***Configuring hosts
ab c d
Setuptime: 0
***Starting controller
c0
***Starting 0 switches
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
***Starting CLI:
mininet>
感觉,好像是NFD也没有装好,NLSR也没有装好,
使用sudocp /usr/local/etc/ndn/nfd.conf.sample.usr/local/etc/ndn/nfd.conf,将nfd.conf.sample文件复制一份,命名为/usr/local/etc/ndn/nfd.conf放到同一个目录下,
cdmini-ndn0.1.1
sudopython setup.py clean
sudopython setup.py install
再运行sudominindn:出现下面的情况:
Parseof /usr/local/etc/mini-ndn/default-topology.conf done.
***Creating network
***Adding controller
Traceback(most recent call last):
File"/usr/local/bin/minindn", line 5, in <module>
pkg_resources.run_script('Mini-NDN==0.1.1','minindn')
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line528, in run_script
self.require(requires)[0].run_script(script_name,ns)
File"/usr/lib/python2.7/dist-packages/pkg_resources.py", line1394, in run_script
execfile(script_filename,namespace, namespace)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 428, in <module>
execute(options)
File"/usr/local/lib/python2.7/dist-packages/Mini_NDN-0.1.1-py2.7.egg/EGG-INFO/scripts/minindn",line 295, in execute
net= Mininet(topo,host=NdnHost,link=TCLink)
File"build/bdist.linux-x86_64/egg/mininet/net.py", line 172, in__init__
File"build/bdist.linux-x86_64/egg/mininet/net.py", line 442, inbuild
File"build/bdist.linux-x86_64/egg/mininet/net.py", line 409, inbuildFromTopo
File"build/bdist.linux-x86_64/egg/mininet/net.py", line 261, inaddController
File"build/bdist.linux-x86_64/egg/mininet/node.py", line 1519,in DefaultController
File"build/bdist.linux-x86_64/egg/mininet/node.py", line 1360,in __init__
File"build/bdist.linux-x86_64/egg/mininet/node.py", line 1378,in checkListening
Exception:Please shut down the controller which is running on port 6633:
激活Internet连接(服务器和已建立连接的)
tcp 0 0 0.0.0.0:6633 0.0.0.0:* LISTEN 14990/controller
tcp 0 0 127.0.0.1:56158 127.0.0.1:6633 TIME_WAIT -
出现错误:Exception:Please shut down the controller which is running on port 6633:
上个问题消失了,但是又出现了这个问题:
zdd@zdd-VirtualBox:~$sudo minindn
Parseof /usr/local/etc/mini-ndn/default-topology.conf done.
***Creating network
***Adding controller
***Adding hosts:
ab c d
***Adding switches:
***Adding links:
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(a,b) (10ms delay) *** Error: RTNETLINK answers: No such file ordirectory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(a,c) (10ms delay) *** Error: RTNETLINK answers: No such file ordirectory
(10msdelay) *** Error: RTNETLINK answers: No such file or directory
(b,d)
***Configuring hosts
ab c d
Setuptime: 0
***Starting controller
c0
***Starting 0 switches
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
Idon't start the NLSR daemon on the host
***Starting CLI:
mininet>
打算重新装一下NLSR