Passion/NS

multiinterface multichannel ns2.29

sunshout 2006. 9. 25. 21:09
Greetings, friends focusing on multi-channel on 2.29:
The " make hyacinth run on NS 2.29 " does has some errors. As "swt556" mentioned, some more modification should be added. The new version was finished several a month ago, and some test version was finished correctly. Because I was focusing on my recent paper, my blog was not updated for several days.
I looked into the NS2.29, and found that some parts are different from ns2.19. To support multichannel, the following parts should be modified:

1, All the extensions of hyacinth-on-2.19, including the routing protocol "manual.cc", the multi-channel, multi-radio support in ns-lib.tcl & ns-mobilenode.tcl, and some change in tcp, udp.
2, The arp.cc should be changed. The orginal ARP part works well in single channel, but in multichannel-multihop network the ARP entry in neighbour nodes' arp table will be updated by error. The function arpinput() and arpresolve() are modified.
3, The wireless.cc in ns-2.29 is designed for single channel. Especially, the node list listening on one channel. The original 2.29 maintain a table for the nodes listening on one channel, the only channel! If we want to add more channels, we should correct this part.

Download

ns-2[1].29-mini-version.rar
I delete some files to reduce the size of tar ball,
including the two biggest directory, the "/tcl/ex/" and "/tcl/test". It is about
20MB, I don't know whether you could receive it without any problem.
It only works on ns2.29, which I installed on RedHat Linux 2.4.20. As for the
problem you got, it is mainly because that 2.29 is quite different from ns2.19b,
the one hyacinth was developed.

NS2 Code Reading, for wireless nodeTeam Report 2006-6-1

Comments

avatar
Hi,
I have installed ns2.29 succesfully and then I add hyacinth-Debian-ns2.29 files as in your post.
Then I follow your instructions and I add channel.cc mac-802_11.cc arp.cc but it seems that ns2 does not work. I find that a class myList is not defined. You add the following lines in channel.cc for(int i = 0; i < 100; i++) {
myList = NULL;
}
but myList is not declared.
I have added this class in channel.h in order to solve the problem but the tcl scripts do not run.
I received a segmentation fault.

By Marco_PhD, # 26. July 2006, 08:40:13

avatar
Yes, some bugs are still there. show me your email. I will share the codes with you.

By HenryFD, # 27. July 2006, 06:56:05

avatar
Hi, HenryFD, could you tell me the detail steps of using the package of ns-2[1].29-mini-version.rar

on my machine. I have successful installed ns2.29.3 on my machine.

Another question: Now I have installed ns2.1b9a. But the Hyacingh packet seems very large provide from the website of Suny-SB. Do you know the steps of how to run Hyacingh Packet after installing ns2.1b9a?

My e-mail is fangyangshen@hotmail.com. Your help will be highly appreciated. Thanks.

FY

By fangyang, # 26. August 2006, 02:49:43

avatar
Hello guys,

I have been "playing" with this code regarding multi-interface multi-channel extensions. I tried to run the example script provided in the ns-2[1].29-mini-version.rar and found some problems to have it running properly. Basically, in the current implementation the nodes are not properly connected to the different wireless channels defined in the script. Therefore, the packets sent by the traffic source are not delivered to the sink (they do not even reach the first hop between the source and the sink).

I could solve the problem by adding the following line of code within the Node/MobileNode instproc add-interface method defined in "ns-mobilenode.tcl" file:

Node/MobileNode instproc add-interface { channel pmodel lltype mactype \
qtype qlen iftype anttype inerrproc outerrproc fecproc}
....

#line of code added to solve the problem
$channel add-node $self

# ============================================================

if { [Simulator set MacTrace_] == "ON" } {
...

Hope this helps you!

Regards,
Rui Campos