Problem with EDCA patch of 802.11e for ns2.35
Hello, I started to use ns2.35 recently with Cygwin Terminal 1.7.35 under a virtual machine Windows XP Pro Service Pack 3. I'm having a problem when trying to apply a EDCA patch of 802.11e.
First i tried the oficial patch (intended for ns2.28), then i found a later version of EDCA: Ref. post #18 here: http://www.linuxquestions.org/questi...245/page2.html I also tried to apply the patch for ns-2.35 Ref. post #70 here: http://www.linuxquestions.org/questi...928/page5.html After I made the changes in the files and running the following commands (as said by the 'README.txt' inside the patch) ./configure; make clean; make depend; make I got the message: Code:
g++ -c -O2 -Wall -Wno-write-strings -DTCP_DELAY_BIND_ALL -DNO_TK -DTCLCL_CLASSINSTVAR -DNDEBUG -DUSE_SHM -DHAVE_LIBTCLCL -DHAVE_TCLCL_H -DHAVE_LIBOTCL1_14 -DHAVE_OTCL_H -DHAVE_LIBTK8_5 -DHAVE_TK_H -DHAVE_LIBTCL8_5 -DHAVE_TCLINT_H -DHAVE_TCL_H -DHAVE_CONFIG_H -DNS_DIFFUSION -DSMAC_NO_SYNC -DCPP_NAMESPACE=std -DUSE_SINGLE_ADDRESS_SPACE -Drng_test -I. -I. -I/home/Administrator/ns-allinone-2.35/tclcl-1.20 -I/home/Administrator/ns-allinone-2.35/otcl -I/home/Administrator/ns-allinone-2.35/include -I/home/Administrator/ns-allinone-2.35/include -I/home/Administrator/ns-allinone-2.35/include -I/usr/include/pcap -I./tcp -I./sctp -I./common -I./link -I./queue -I./adc -I./apps -I./mac -I./mobile -I./trace -I./routing -I./tools -I./classifier -I./mcast -I./diffusion3/lib/main -I./diffusion3/lib -I./diffusion3/lib/nr -I./diffusion3/ns -I./diffusion3/filter_core -I./asim/ -I./qs -I./diffserv -I./satellite -I./wpan -I./mac/802_11e -o mac/802_11e/mac-802_11e.o mac/802_11e/mac-802_11e.cc Code:
bash: ns: command not found Do you have any ideia how to correct this? Thank you in advance. |
Welcome to LQ.
Please use the patch `802.11e-EDCA-ns235_091814.patch' for ns235. https://drive.google.com/file/d/0B7S...ew?usp=sharing EDIT : Must be 802.11e-EDCA_ns235_2015-gcc49.patch , see post #5. - |
Thank you for your reply.
I've researched for similar threads in the forum and decided to download an Linux OS. I downloaded 'Ubuntu 14.04.02-desktop-i386' and installed the 'ns-allinone-2.35_gcc491.tar.gz' according to this post Ref. post #2 here: http://www.linuxquestions.org/questi...-a-4175537890/ Then I applied the patch you provided '802.11e-EDCA-ns235_091814.patch' but, when I try to run: $ns multi_udpflows.tcl I got the following mesage: Code:
num_nodes is set 5 $ cp ns ns235-EDCA $ sudo cp ns235-EDCA /usr/local/bin/ $ ns235-EDCA multi_udpflows.tcl Like suggested in this post: Ref. post #70 here:http://www.linuxquestions.org/questi...928/page5.html Also, I made a copy of 'multi_udpflows.tcl' file into a different directory , but i got the same error message in all the tries. Do you have any suggestions? |
Ref. post #3.
Any errors with applying the patch ? The ns-allinone-2.35_gcc491 (Dec 2014 update) is more complex than the old ns235: The three ns236 Codel patches are added. Better use ns-allinone-2.35_gcc482.tar.gz (Nov 2014 update), which is only modified to use all gcc-4.4 .... gcc-4.9.2 : https://drive.google.com/file/d/0B7S...ew?usp=sharing * Please keep your current ns-allinone-2.35(_gcc491) : I.e. you can have as many ns-allinone-2.xx as you want, installed at the same time. But do never add any *PATH text to .bashrc. Testing : Code:
$ ns235-EDCA multi_udpflows.tcl - |
Sorry, wrong patch.
Please use the new update, 802.11e-EDCA_ns235_2015-gcc49.patch Link https://drive.google.com/file/d/0B7S...ew?usp=sharing |
Ok, I tried the 'ns-allinone-2.35_gcc482.tar.gz' with the new update '802.11e-EDCA_ns235_2015-gcc49.patch' but I got the same error described in Ref. post #3.
I started to search and found that the MAC type inside the 'multi_udpflows.tcl' file is setted: set opt(mac) Mac/802_11e And the 'Mac/802_11e' class settings inside the 'ns-mac.tcl' file are quite smiliar to 'Mac/802_11' class settings (the difference lies in the CFB disabling). So I added the CFB disabling function to 'Mac/802_11' class settings and deleted the 'e' in the MAC type in 'multi_udpflows.tcl' file, turning it to: set opt(mac) Mac/802_11 Then i got a new error: Code:
num_nodes is set 5 Replace all occurrences of "Queue/DTail" by "Queue/DropTail" and "Queue/DTail/PriQ" by "Queue/DropTail/PriQueue" in both 'ns-default.tcl' and 'multi_udpflows.tcl' files. Finally, in response to the '$ns multi_udpflows.tcl' command i got the mesage: Code:
num_nodes is set 5 |
Since the last time i posted, all my simulations have been giving strange results.I think maybe i did something wrong when applying the patch.
Are these steps correct? $ cd ns-allinone-2.35/ $ patch -p0 < 802.11e-EDCA_ns235_2015-gcc49.patch $ export CC=gcc-4.4 CXX=g++41 && ./install $ cp ns ns235-EDCA $ sudo cp ns235-EDCA /usr/local/bin/ |
Re #7 : The new patch can probably use all gcc-4.4, gcc-4.6 ...gcc-5.1.1 .
$ tar xvf ns-allinone-2.35_gcc482.tar.gz $ cd ns-allinone-2.35/ $ patch -p0 < 802.11e-EDCA_ns235_2015-gcc49.patch $ ./install No issues running multi_udpflows.tcl, any g++ version used ... [g++41] : $ ns235-EDCA-g++41 multi_udpflows.tcl [g++-4.4] : $ ns235-edca-g++44 multi_udpflows.tcl [g++-4.9] : $ ns235-edca-g++49 multi_udpflows.tcl ... All OK. Exactly 814.7 MB out.tr`s are created. - |
Ok, I think at some point I missed that "./install" command after applying the patch. Now it is working how it's supposed to be.
knudfl, thank you very much for your help! Here are the the steps I made in case of someone in the future get the same errors that i did: $ sudo apt-get update && sudo apt-get install g++ automake libtool libxmu-dev xgraph $ tar xvf ns-allinone-2.35_gcc482.tar.gz $ cd ns-allinone-2.35/ $ ./install $ cd ns-2.35/ $ sudo make install $ cd ../nam-1.15/ $ sudo make install $ cd .. $ patch -p0 < 802.11e-EDCA_ns235_2015-gcc49.patch $ ./install $ cd ns-2.35/ $ cp ns ns235-edca $ sudo cp ns235-edca /usr/local/bin/ $ ns235-edca multi_udpflows.tcl Regards! |
Re #9.
Quote:
- |
Thank you for your reply, knudfl.
I have one more question related to the EDCA: In my simulations scenarios, I need to analyse nodes with different contention windows. For instance, node(0) with CWMin=7 CWMax=15 and node(1) with CWMin=15 CWMax=31. How can I do that inside the tcl file? All examples I have found show how to change the CW for all the nodes. And the examples that are supposed to change it individually do not work. I tried two different methods: 1)Add to /* Mac Class Function */ Code:
Mac802_11::Mac802_11(PHY_MIB *p, MAC_MIB *m) : .... Code:
Mac/802_11 set DSSS_CWMin 31 Code:
else if (argc == 4) { Code:
[$node_(0) set mac_(0)] set-cw-params 7 15 |
|
All times are GMT -5. The time now is 03:17 PM. |