NS3的網站上有很詳細的安裝講解,如果英語閱讀沒有障礙的話可以直接上看英文原版的turtorial。
上述更新最好全部成功,如果不成功可以將其拆開更新,因爲有時候寫錯的可能性很高。如果全部更新成功了,則安裝問題就不大了。
PS:此處可以去NS3中下最新版本的,用瀏覽器下載更快一些。
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裏面的。