LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   integration of the usherbrooke implementation of 802.11p to ns2.35 (https://www.linuxquestions.org/questions/linux-newbie-8/integration-of-the-usherbrooke-implementation-of-802-11p-to-ns2-35-a-4175500597/)

abenmariem 04-04-2014 12:48 PM

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.

knudfl 04-05-2014 08:51 AM

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.

-

abenmariem 04-05-2014 01:28 PM

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.

knudfl 04-05-2014 02:50 PM

# 3 .
Quote:

I thought that the usherbrooke's implementation is more accurate
You may be right in that matter.

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 ).

-

bikthor 09-10-2014 08:57 AM

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

knudfl 09-10-2014 10:45 AM

#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.