Skip navigation.

Southern Park

A new one for hyacinth for NS-2.29


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

Marco_PhD 26. July 2006, 08:40

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.

HenryFD 27. July 2006, 06:56

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

fangyang 26. August 2006, 02:49

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

inesquiano 13. September 2006, 13:27

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

tanky 3. October 2006, 02:45

Hi Henry FD,

Firstly, thanks for your reply. The questions I have right now are.

1. After applied all the changes mentioned in http://my.opera.com/HenryFD/blog/show.dml/270422, I could run the Hyacith examples successfully, but the problems was that the actual results were different from the expected ones shown on the tutorials. When I checked the trace file, all the cbr packets were dropped. Thus, the network throughput was in fact 0.

2. Since my project aim is to integrate OLSR (I'm using um-olsr 0.88) with multi-channel, I've tried to modify the OLSR.cc (similar to aodv.cc) to identify the argvs "down-target-1" and the like, but it turns out showing an error message "Scheduler: attempt to schedule an event with NULL handler". I'm wondering anyone has encountered this before.

3. Finally, could you please tell me what extra .cc files you did change other than those files mentioned in http://my.opera.com/HenryFD/blog/show.dml/270422 and http://greenw.blogspot.com/ in order to make your simulation working. As you have mentioned that you've modified arp.cc arpresolve() and wireless-phy.cc, I couldn't find any change in your version. Would you please help me out?

I'm really appreciate for your help.

Best regards,
Ho Lun, Ho
School of Information Technologies
The University of Sydney

tanky 3. October 2006, 02:52

Continue to previous post.

Files I did change include:
tcl/lib/ns-lib.tcl
tcl/lib/ns-mobilenode.tcl
mac/arp.cc
mac/channel.h
mac/channel.cc
mac/mac-802_11.cc
olsr/OLSR.h (pretty similar to aodv.h)
olsr/OLSR.cc (pretty similar to aodv.cc)

for Hyacith
tcl/lib/ns-lib.tcl
tcl/lib/ns-mobilenode.tcl
apps/udp.h
apps/upd.cc
common/packet.h
tcp/tcp.h
tcp/tcp.cc
tcp/tcp-sink.h
tcp/tcp-sink.cc
and the manual/*.*

All changes made are exactly the same as in http://www.cse.msu.edu/~wangbo1/ns2/nshowto8.html.

Thank you guys

inesquiano 3. October 2006, 07:46

Hello Ho Lun, Ho

In the very beginning I also followed the tips provided in http://www.cse.msu.edu/~wangbo1/ns2/nshowto8.html. However, since things were not working, I tried to find another tutorial explaining how to make ns-2 support multi-interface multi-channel. Then, I found this blog by Henry FD. What I did was the following:

1. Downloaded the file http://my.opera.com/HenryFD/homes/blog/ns-2%5B1%5D.29-mini-version.rar (see above in this page) and applied it in the ns-2 tree (this contains the modifications required to enable multi-interface multi-channel)

2. As mentioned above, I included the following Tcl code in the Node/MobileNode instproc add-interface { channel pmodel lltype mactype \
qtype qlen iftype anttype inerrproc outerrproc fecproc} that you find in the ../ns-2.29/tcl/lib/ns-lib.tcl file

#line of code added to attach a specific node interface to a specific channel
$channel add-node $self

For me this appeared to be enough to have things running for the MANUAL routing protocol also included in http://my.opera.com/HenryFD/homes/blog/ns-2%5B1%5D.29-mini-version.rar. Regarding OLSR I did not make any experiment. Anyway, I would be interested in be informed if you can put OLSR running over multi-interfaces. Thanks in advance!

BR,
Rui Campos (rcampos@inescporto.pt)
http://telecom.inescporto.pt/~rcampos

Annous 5. October 2006, 10:20

hi Ho Lun, Ho;

I faced the same problem with this error message:
"Scheduler: attempt to schedule an event with a NULL handler. Don't DO that"

I found this message in "scheduler.cc"
If you have any sollution to this.
Thinks for the help.

Anis;
INSA Lyon;
France.

Annous 9. October 2006, 09:29

hi;

I understand the cause of this problem.
Look at the ns-mobilenode.tcl.
the tutorial made these lines commented:

set sndT [$self mobility-trace Send "RTR"]
set sndT [cmu-trace Send "RTR" $self]
$sndT namattach $namfp
$agent target $sndT
$sndT target [$self set ll_(0)]
$agent target [$self set ll_(0)]

For this we have the message: Scheduler: attempt to schedule an event with a NULL handler. Don't DO that

Anis;
INSA Lyon;
France.

santhish 6. December 2006, 00:29

Hi,

I attempted simple.tcl script given in http://my.opera.com/HenryFD/homes/blog/ns-2%5B1%5D.29-mini-version.rar.

It gives a floating-point exception.I'm running ns-2.29(with the manual routing modifications for multi-interface/channel) on Ubuntu [2.6.15-27-386].

Here's the output,

num_nodes is set 4
INITIALIZE THE LIST xListHead
INITIALIZE THE LIST xListHead
INITIALIZE THE LIST xListHead
Calling superclass Agent's command function!Calling superclass Agent's command function!Calling superclass Agent's command function!Calling superclass Agent's command function!RouteTable: Adding destination 1 tag 999
RouteTable: Adding destination 3 tag 998
Starting Simulation...
RouteTable: Adding destination 0 tag -1
Self address = 0
RouteTable: Adding destination 1 tag -1
Self address = 1
RouteTable: Adding destination 2 tag -1
Self address = 2
RouteTable: Adding destination 3 tag -1
Self address = 3
Floating point exception


Could you kindly help me sorting this issue.

Many thanks in advance.

Santhish.

new_user 7. December 2006, 11:13

hi,
can i use this extension for ns.2-29 allinone under Windows XP ??
with wich step should i start after unzip the tarball???



thanks

abcteo 19. January 2007, 07:06

has anyone test wiht multihop routing or wired-cum wireless simulations

as i do the same thing from http://www.cse.msu.edu/~wangbo1/ns2/index.html

i can run
but when i try to puthte nodes quite far away from each other and try for multihops routing, i fails, the packet can not route, it drops due to IFQ FULL

ver much appreciate for any helps

W. Tu 15. February 2007, 22:21

Hi, All,

I am also doing simulations about multiple interface multiple channel. I am just wondering how I can how to use multiple channels in ns2 running script. I added

#Creating Channel
set chan_0_ [new $val(chan)]
set chan_1_ [new $val(chan)]
set chan_2_ [new $val(chan)]
set chan_3_ [new $val(chan)]
set chan_4_ [new $val(chan)]

$ns_ node-config -channel $chan_3_\
-channel2 $chan_11_\
-channel3 $chan_12_\
-channel4 $chan_12_\
-channel5 $chan_12_

in my running script. But, don't know how to use the multiple channels.
For example, if I set one source agent $sagent_ and one destination agent $dagent_, and I connect the two agent $ns connect $sagent_ $dagent_. How does the sending node use multiple channels? Would you please kindly give me some knowledge about it? Thank you very much!



iwithu 3. April 2007, 16:04

Hi

I want to simulate MultiChannel Ad Hoc network (802.11b) with one interface in NS2.29.(each node have some channels with only one interface).
How can i do this?

by the way, which function choose channel for sending data (in NS)?

i will be thankful for any idea.

Regards.

pisety1 6. July 2007, 02:22

Hi

I simulated your code. But it always occured error. I can not find what the problem is.

I want to just know how to use multiple interface and multiple channel.
It is the similar question to what W.Tu asked.
Could you give me the example source to use multiple channel?
Please give me the your knowledge. Thank you so much.

hanbin 18. August 2007, 05:13

Hello everyone:
Please help me!
The examples are about Udp in the hyacinth-Debian-ns2.29 files, what about Tcp ?
Please help me!
Who could give me one stricpt tcl file that is about tcp useing the hyacinth-Debian-ns2.29 files.
Please help me!

Thank you so much!

my mail : hanbin19840806@gmail.com

myh0307 19. September 2007, 07:16

Hello.

I want to simulate multiple channel adhoc network with multiple interface.
But, I don't know how to map a packet to each interface to send parallel.
Would you give me the example source to use multi channel and interfaces?
please help me.
Thank you so much.

sridatta 26. September 2007, 16:33

Hi...

I have tried the changes mentioned in the tutorial http://www.cse.msu.edu/~wangbo1/ns2/nshowto8.html to NS2.31 installation.. I have manually edited the files but after recompiling ns, i am getting the error like

expected ?inst/local? or ?inst? ?local? but got

when i try to run the code http://www.cse.msu.edu/~wangbo1/ns2/manual/twoflows-2channel.tcl , i am getting the above error..

I would like to add multiple-channel multiple-interface to my ns2.31 to run sample scripts..

anyone pls helppppp me providing detailed instructions and also some sample scripts..

Thanks

Sridatta

Yuhsiang9 10. October 2007, 17:21


Hi,

I met a problem when I implemented the code about
Multi-channel Multi-interface in NS2.

http://www.cse.msu.edu/~wangbo1/ns2/nshowto8.html

My environment is NS2.31 in Fedora 5.

My problem is as below:

When TCPSink wants to foward ACK pkt, the "tag" of next hop has been changed.

For example,
(0) <-------> (1)
source sink

$node(0) add-route-tag 1 99
$node(1) add-route-tag 0 55

$node(0) add-next-hop 1 99 1 2
$node(1) add-next-hop 0 55 0 3

After source "node(0)" sent pkt to "node(1)" by tag 99,
the routing tag from node(1) to 0 will become to "99."

It makes manual routing can't find route, and results in segment fault.

Have you ever met/sloved this problem?

Thanks for your help.

Yuhsiang Cheng

Yuhsiang9 30. October 2007, 12:00

I'm sorry for misunderstanding how to set the tag.
And "Manual Routing" can work well as TCP flows are used.

But I meet the other problem about this code.

I can't get a correct throughput, when I use the topology as following:

(A) <--->(B)<--->(C) <--->(D)
----------------> <------
Flow 1(A to C) Flow 2(D to C)

Naturally, throughput of "Flow 2" must be better than "Flow 1."

But, I got the worse throughput of "Flow 2" than "Flow 1."

I don't know why.

Have anyone met this problem before?

blackizen 13. November 2007, 02:49

Hi....

Firstly, Could you guide me through installing your source code "ns-2.29-mini-version" ?
After reading other comments I just wonder about how to simulate multiple channel adhoc network with multiple interface like "myh0307".
Could you give me an advice or the example to use multi channel and interfaces?


Thank you so much....

mayurmvegad 24. July 2008, 11:30

I tried to install hyacinth-Debian-ns2.29.tar on ns2.31 on Ubuntu 7.1, as per the instructions given there. (i.e. copying all the files udp.*, tcp.* etc and changes related to manual and hyacinth directory...) The 'make' fails with following error:

tcp/tcp-reno.cc: In member function ‘virtual void RenoTcpAgent::dupack_action()’:
tcp/tcp-reno.cc:176: error: ‘bugfix_ss_’ was not declared in this scope
make: *** [tcp/tcp-reno.o] Error 1

> I have verified that the required changes in the relevant files (eg. ns-lib.tcl, ns-mobilenode.tcl etc are already done in the hyacinth tarball. Is it not possible to install on 2.31? If I need to have ns2.29 or ns2.19 only then from where I can get them? I tried on ns2 site but there only the latest version is available.

.... Your help is appreciated in anticipation.

my email address is: mayurmvegad@yahoo.com

Thanks and regards,
Mayur

gdoura 4. October 2008, 21:10

hello

i want to use hyacinth solution for multichannel multi interface. i succeed twith the the manual example but i want to use the multichannel multi interface with aodv.

//*********************************************
i modify aodv:
aodv.cc: else if (strcasecmp (argv[1], "down-target-1") == 0) {
downtarget1_ = (NsObject *) TclObject::lookup(argv[2]);
return TCL_OK;
}
else if (strcasecmp (argv[1], "down-target-2") == 0) {
downtarget2_ = (NsObject *) TclObject::lookup(argv[2]);
return TCL_OK;
}
else if (strcasecmp (argv[1], "down-target-3") == 0) {
downtarget3_ = (NsObject *) TclObject::lookup(argv[2]);
return TCL_OK;
}
else if (strcasecmp (argv[1], "down-target-4") == 0) {
downtarget4_ = (NsObject *) TclObject::lookup(argv[2]);
return TCL_OK;
}
else if (strcasecmp (argv[1], "down-target-5") == 0) {
downtarget5_ = (NsObject *) TclObject::lookup(argv[2]);
return TCL_OK;
}

i modify dmux_->recv(p,0); with downtarget1_->recv(p, (Handler *)0);

//*********************************************
i modify aodv.h

NsObject *downtarget1_;
NsObject *downtarget2_;
NsObject *downtarget3_;
NsObject *downtarget4_;
NsObject *downtarget5_;

//********************
when i compile an error appear: attempt to schedule an event with a null handler

i can resolve this error, help me please.

rajasekars3 9. April 2009, 20:46

Hi Thank you ,
I success fully installed ns-2.29 in fedora and hyacinth ns-2.29.
Its working fine ..
thank you very much

xyh2312087 25. August 2009, 06:12

Hi guys,
I success installed ns-2.1b9a in fedora and hyacinth. Its working fine, and I got a trace file in the new form, how I can analysis it to get throughput, delay and so on. I had really added mUDP and mUdpSink these two agents, but I don't know how to modify the main pragram, multich-tag.tcl. anybody could give me some advise? thank you~

Write a comment

You must be logged in to write a comment. If you're not a registered member, please sign up.

November 2009
S M T W T F S
October 2009December 2009
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30