[NS3]Openflow Modle安装

    因为一般直接NS3官网下载安装的NS3不自带openflow模块,需要自己安装的,现在我把过程写一下

    官网其实有相关的英文安装过程,如下:http://www.nsnam.org/docs/release/3.17/models/html/openflow-switch.html

    本人所做的是在Ubuntu 13.04和ns-3.17的环境下的。

安装过程如下:

 一. 获取OFSID(The OpenFlow software implementation distribution )代码。使用 mercurial 下载并编译在目录中:

                PS:为了下面安装过程不出错最好安装在“ns-allinone-3.17/ns-3.17/”目录下,而且避免下次寻找,毕竟他只是ns-3.17的一个模块

$ hg clone http://code.nsnam.org/openflow
$ cd openflow

显示如下:

[NS3]Openflow Modle安装_第1张图片

二. 在openflow目录中,运行::

$ ./waf configure
$ ./waf build
显示如下:

Waf: Entering directory `/home/roger/openflow/build'
[ 1/58] cc: lib/command-line.c -> build/default/lib/command-line_1.o
[ 2/58] cc: lib/csum.c -> build/default/lib/csum_1.o
[ 4/58] cc: lib/dhcp.c -> build/default/lib/dhcp_1.o
[ 3/58] cc: lib/daemon.c -> build/default/lib/daemon_1.o
[ 5/58] cc: lib/dhcp-client.c -> build/default/lib/dhcp-client_1.o
。。。。
[56/58] cc: switch/table-hash.c -> build/default/switch/table-hash_1.o
[57/58] cc: switch/table-linear.c -> build/default/switch/table-linear_1.o
[58/58] static_link: build/default/lib/command-line_1.o build/default/lib/。。。。。。
Waf: Leaving directory `/home/roger/openflow/build'
'build' finished successfully (4.114s)

三. OFSID现在已经建进libopenflow.a库,为了链接OpenFlow switch module到ns-3 bulid中还需要在ns-3.17中运行:

$ ./waf configure --enable-examples --enable-tests --enable-mpi --with-openflow=/home/roger/ns-allinone-3.17/ns-3.17/openflow
PS:因为此处官网使用的是:./waf configure --enable-examples --enable-tests --with-openflow=path/to/openflow         
         你在使用中会发现出错的,所以需要把openflow的目录写详细         
         这其中的--enable-sudo是使 Use sudo to set suid bit enable                        -
                         --enable-mpi是使MPI Support enable                      
                         --with-openflow是使NS-3 OpenFlow Integration enable
结果显示如下:

[NS3]Openflow Modle安装_第2张图片

上述表明库已经链接到ns-3 

四. 构建ns-3,并触发ns-3中的OpenflowSwitch模块,运行:

$ ./waf build
显示如下:

。。。
[2101/2103] cxx: src/tap-bridge/model/tap-creator.cc -> build/src/tap-bridge/model/tap-creator.cc.4.o
[2102/2103] cxx: src/tap-bridge/model/tap-encode-decode.cc -> build/src/tap-bridge/model/tap-encode-decode.cc.4.o
[2103/2103] cxxprogram: build/src/tap-bridge/model/tap-creator.cc.4.o build/src/tap-bridge/model/tap-encode-decode.cc.4.o -> build/src/tap-bridge/ns3.17-tap-creator-debug
Waf: Leaving directory `/home/roger/ns-allinone-3.17/ns-3.17/build'
'build' finished successfully (20m52.990s)

Modules built:
antenna                   aodv                      applications             
bridge                    buildings                 config-store             
core                      csma                      csma-layout              
dsdv                      dsr                       emu                      
energy                    fd-net-device             flow-monitor             
internet                  lte                       mesh                     
mobility                  mpi                       netanim (no Python)      
network                   nix-vector-routing        olsr                     
openflow (no Python)      point-to-point            point-to-point-layout    
propagation               spectrum                  stats                    
tap-bridge                test (no Python)          tools                    
topology-read             uan                       virtual-net-device       
visualizer                wifi                      wimax                    

Modules not built (see ns-3 tutorial for explanation):
brite                     click        
可见ns-3中的Openflow模块已经安装好了(和前一篇Blog相比)。

五. 在一个简单的例子中证明其用法:

$ ./waf --run openflow-switch

或者你也可以用下述命令看详细记录:

$ ./waf --run "openflow-switch -v"
显示如下:(我使用的是前者)

[NS3]Openflow Modle安装_第3张图片

六. 当然你也可以通过一个测试组件测试:

$ ./test.py --suite=openflow
[NS3]Openflow Modle安装_第4张图片

你可能感兴趣的:(NS3)