integration of the usherbrooke implementation of 802.11p to ns2.35
Hello,
I am working on ubuntu 13.10 32 bits. I am trying to integrate the usherbrooke implementation of 802.11p to ns2.35. The link of the implementation is: http://www.gel.usherbrooke.ca/interl...x.php?page=NS2 After respecting the instructions in the file instructions.txt present in the downloaded archive and when trying to make a simple example to try the 802.11p implementation, i got the error: Mac/802_11p set basicRate_: can't read "basicRate_": no such variable . It seems like there is a binding error because the class Mac802_11p has a member variable: double basicRate_; The error is caused by the line bind_bw("dataRate_", &dataRate_); in the constructor Mac802_11p::Mac802_11p() A snippet of the code in the constructor: tcl.evalf("Mac/802_11p set dataRate_"); if (strcmp(tcl.result(), "0") != 0) bind_bw("dataRate_", &dataRate_); else dataRate_ = bandwidth_; I noticed that this same code is used in 802.11 implementation which works well in ns2. I noticed also that the file ns_tcl.cc contains the line Mac/802_11 set basicRate_ 1Mb and there isn't a line for 802.11P protocol. Does anyone has an idea to fix this problem ? If you have better alternatives for 802.11p implementation, your suggestions are welcome. |
IEEE802.11p is already present in ns-2.35/ :
//ns-2.35/tcl/ex/802.11/IEEE802-11p.tcl , //ns-2.35/common/packet.h , //ns-2.35/mac/{mac-802_11Ext.cc, mac-802_11Ext.h, etc."Ext"} , //ns-2.35/tcl/lib/ns-default.tcl . First thing to do with the "usherbrooke IEEE802.11p.package.zip" : Make it work in the version it was meant for = ns-2.31 . And I have had no luck with that so far. IEEE802.11p was introduced in ns2 with version ns-2.33 . So I guess that the usherbrooke code was meant to be used in ns2 versions with no 802.11p. - |
thanks
thanks you knudfl,
I know about the integrated version in the ns2.35. This versions only modifies the parameters of a regular 802.11 mac and phy to make it like 802.11p. So to support 802.11p you need only to put the default parameters of 802.11p in the file ns_default.tcl. I thought that the usherbrooke's implementation is more accurate this why i tried to integrate it with ns2.35. |
# 3 .
Quote:
I will still suggest that before you try porting the code to ns-2.35, it would be nice to have it working in ns-2.31 . About porting the code : Besides the difference in the ns231 mac and the ns235 mac, etc. code, also be aware that the code was written when the g++ version was 4.1.2 . No guaranty that any of g++-4.4 g++-4.6 g++-4.8 etc. versions will work. ( The default Ubuntu 13.10 g++ versions are 4.4, 4.6, 4.7, 4.8 ). - |
Hello, I'm trying to do the same. I'd like to know if you've been finally able to integrate the usherbrooke's implementation of 802.11p to ns-2.35 and how did you do it.
Thanks a lot in advance |
#5, @bikthor.
The code from "IEEE802.11p.package.zip" is buggy, and fails in the target = ns-2.31 . ( With g++41 or g++34, etc.) And : 802.11p is present in all ns-2.33 ... ns-2.35 → → Please read post #2. |
All times are GMT -5. The time now is 10:04 PM. |