2.2命令终端进入解压缩文件夹 执行命令
./build.py
2.3 进入ns-3.13目录使用waf构建(waf是ns-3采用的基于Python的BuildSystem)
./waf -d optimized configure
./waf -d debug configure
./waf
./waf -d debug --enable-sudoconfigure
./waf configure--enable-tests //使测试可用
./waf configure--enable-examples //使例子可用
PS:这两个很重要,执行完后可以看到examples和tests状态均为enable
---------------------------------------------------------------------------------
3. 脚本运行
退到上级目录(如ns3)
./build.py --enable-examples--enable-tests//执行后才以下语句才有用
./waf --runhello-simulator//不加.cc,且run前面是两个“-”。
会输出如下信息: hello simulator
此时就表示NS3安装成功了!!
PS:下面的步骤是转过来的,并没有尝试过,若尝试,以后会记录过程。
4.出现的问题
brite click openflowvisualizer没有完成安装
(1)brite安装
#: hg clone http://code.nsnam.org/jpelkey3/BRITE
#: cd BRITE
#: make
# cd..
#: hg clone http://code.nsnam.org/jpelkey3/ns-3-brite-modular
#: cd ns-3-brite-modular
#: ./waf configure--with-brite=BRITE的路径
#: ./waf
测试:
#: ./waf –run ‘brite-generic-example–verbose=1’
(2)click模块
click是一个构建可配置路由器的软件架构,通过使用称之为元素element(即包处理单元)的不同组合,click路由器能够执行特定功能,这种灵活性提供了测试和实验不同协议的优良平台。
*下载click(http://read.cs.ucla.edu/click/download)
*进入click目录配置编译click
cd click
./configure --enable-userlevel--disable-linuxmodule --enable-nsclick--enable-wifi
./make (没有必要使用makeinstall,或者用make)
*重新配置和构建ns3(进入ns3.17目录)
./waf configure --enable-examples --enable-tests--with-nsclick=click源码路径
如果click安装在ns-3-allinone文件夹中,即ns-3文件夹的上层文件夹中,"--with-nsclick=click源码路径"不需要,ns3构建器能够自动找到click源码
./waf
*测试click
./waf --run nsclick-simple-lan
将得到两个.pcap跟踪结果文件:nsclick-simple-lan-0-0.pcap和nsclick-simple-lan-0-1.pcap
(2)openflow
openflow 交换广泛用于科研中,通过openflowAPI可以对OpenFlow交换进行配置。openflow交换拥有针对服务质量的多协议标签交换(MPLS)扩展和支持service-level-agreement。通过使用openflow交换,ns3能够精确仿真多种不同的交换。
*下载openflow
hg clone http://code.nsnam.org/jpelkey3/openflow
*配置和构建openflow(在openflow文件夹下运行)
./waf configure
./waf build
此时生成libopenflow.a库文件
*链接OpenFlow模块到ns3(在ns3的源码文件夹下运行,如ns-3.12.1)
./waf configure --enable-examples --enable-tests--with-openflow=下载的openflow源码路径(openflow)
此时并没有用OpenFlow的自带模块
./waf build(构建ns3并激活ns3的openflow模块)
*测试openflow
./waf --run openflow-switch
./waf --run "openflow-switch-v"(查看日志细节)
*验证openflow模块
./test.py --suite=openflow
注释说明:
NS3本身自带的只是openflow的封装接口,这些接口要去调用openflow的库,就是后面下载的那一部分。在安装的过程中它会编译成相应的库连接到NS3中。在你没有安装openflow的时候在build/debug/src下是看不到的openflow模块的,只有完成以上操作是的时候,才能找到openflow的模块,进而可以执行openflow下相应的程序。
./waf --run openflow-switchopenflow-switch是src下openflow模块下的代码编译的可执行文件。并不是下载的openlfow里面的。