[NS 3]Openflow Modleインストール

5448 ワード

一般的に直接NS 3公式サイトにダウンロードしてインストールするNS 3はopenflowモジュールを持っていないので、自分でインストールする必要があります.今、プロセスを書きます.
公式サイトには英語のインストールプロセスがあります.以下のようにします.http://www.nsnam.org/docs/release/3.17/models/html/openflow-switch.html
私がやったのはUbuntu 13.04とns-3.17の環境下です.
インストール手順は次のとおりです.
一.OFSIDコードを取得します.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は、Usesudo 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张图片