Search This Blog

Modified AOMDV with Multiple Interface Support in NS-2

Labels: , , ,

Reactions: 

This patch is designed for ns-allinone-2.33.

Contributed by: Chirag Raval

Download NS-2.33-AOMDV-Multiple-Interface.patch

Following are the steps to be followed to apply above given patch to ns-2.33:



3. Unzip ns-allinone-2.33.tar.gz. You will get a folder named ns-allinone-2.33.

4. Paste the downloaded patch in this folder.

5. Give the following command:

    patch -p1 < NS-2.33-AOMDV-Multiple-Interface.patch

6. Then give ./install

If you have already installed copy of ns-allinone-2.33 then follow the below given steps to apply multi-interface patch.

1. Paste the downloaded patch in ns-allinone-2.33 folder.

2. Give the following command:

    patch -p1 < NS-2.33-AOMDV-Multiple-Interface.patch

3. Go in ns-allinone-2.33/ns-2.33 directory.

4. Give the following commands:

    ./configure

    make clean

    make

    make install

You are done with it!

Example TCL scripts to verify the working of this patch are similar to that of TCL Scripts provided for Multi Interface DSDV patch. You need to replace DSDV by AOMDV in TCL Scripts. Scripts can be downloaded from the following link:


Kindly Note: The tcl scripts having "mesh" word in their name are the scripts designed with multiple interfaces. Others are designed with single interfaces. To verify the working of multiple interfaces, two awk scripts are also provided in the folder.

A tcl script named im3pmanual.tcl is a tcl script wherein nodes have different number of interfaces assigned to them whereas, other tcl scripts designed with multiple interface are designed such that all the nodes in the network have equal number of interfaces.

If you encounter any problem in downloading the patch from the link given above, please follow this link:


If you encounter any problem in downloading example tcl scripts, please follow this link:


Hope it helps.

Regards,
Mohit P. Tahiliani

Comments (81)

Hey mohit, I usually dont comment in any blog or sites. but u hav done a tremendous job. i appreciate ur approach and mentality. keep sharing ur knowledges, some 1 out there needs a hand with ur working solutions....

Sir,
I want to simulate a simple ESS using NS2 and find the performance of network.I tried and not able to represent AP's in the network.Please help me in this regard.

P.V.BHAT
VCET Puttur

@Obaida007 - Thank you Obaida007!!!

@P.V.Bhat - You can refer Section X on the following link for the same:

http://www.isi.edu/nsnam/ns/tutorial/

Hope it helps.

Regards,
Mohit P. Tahiliani

Hi ,I wanna use multiple interface in ns2 2.34,I saw multiple interface script regarding dsdv on http://mohittahiliani.blogspot.com/
and a patch for ns2.33,do ns2.34 support multiple interface ?can anybody give me an example script with two interfaces of nodes both transmitting and ho do I deal with awk script for parameter evaluation for that ?

Hi bro thanks for sharing. i want to know how i can create the node in vanet-UMTS scenerio with two interfaces one to connect to UMTS network and another (IEEE802.11p) to connect to the other vehicles.if you have any link or can please send me to my email mudy21@hotmail.com. thanks

@Umair - The patches available on my blog related to Multiple interfaces will work only on ns-2.33. You will have to modify them to work on ns-2.34.

Example scripts for these patches (including the scenario which you have mentioned) are available on the link given below:

http://www.megaupload.com/?d=Y2J3P6J0

AWK Scripts which are available on this blog can be used for analysis. They do not need any modification unless you are simulating some specific scenario.

@Mahmoud (Project Management in IT) - Following link may be useful to you:

http://upcommons.upc.edu/pfc/bitstream/2099.1/10829/1/PFC_Pablo%20Urmeneta.pdf

Hope it helps.

Regards,
Mohit P. Tahiliani

Hi,

I tried to install NS-2.33-AOMDV-Multiple-Interface patch in ns-allinone-2.33. I followed the instructions above in this blog (Paste the downloaded patch in ns-allinone-2.33 folder; Give the following command:
patch -p1 < NS-2.33-AOMDV-Multiple-Interface.patch).

When i given ./install i had the following error:

trace/cmu-trace.o: In function `hdr_aomdv::access(Packet const*)':
cmu-trace.cc:(.gnu.linkonce.t._ZN9hdr_aomdv6accessEPK6Packet+0x7): undefined reference to `hdr_aomdv::offset_'
collect2: ld returned 1 exit status
make: *** [ns] Error 1
Ns make failed!

Please help me in this regard.
Regards
E. Reis

Mohit sir - Please give me link for AOMDV patches that will work on ns-2.34!

can anyone explain to me how AOMDV in ns2 calculates its paths to destination? in other words, what techniques does it use to find the paths to destination?

@Kapil - AOMDV is available in the default package of ns-allinone-2.34. Only thing you need to do is take relevant part from the patch given above and incorporate it in relevant files.

@Ejan - It depends whether you want AOMDV to calculate node disjoint paths or link disjoint paths. The metric used is hop count.

Hope it helps.

Regards,
Mohit P. Tahiliani

Hi mohit,
How to install visual network simulator?
I have downloaded 3.3MB .jar file but I can't find application to install.
If any other way to install it then plz tell me...

Mandar Jajal
LDCE Ahmedabad

@E. Reis

The error is due to following lines are not added in Makefile.in.

aomdv/aomdv.o aomdv/aomdv_logs.o \
aomdv/aomdv_rtable.o aomdv/aomdv_rqueue.o \

The patch is not adding this lines to Makefile.in

Search for "aodv/aodv_rqueue.o \" in Makefile.in and add above aomdv lines below aodv lines.

Again give ./install. The installation will be successful.


Regards,
Chirag Raval

@Mandar - There is no need to install it. You just need to download the .jar file and open it. Note that you must have Java 1.6 or above already installed on your machine.

Hope it helps.

Regards,
Mohit P. Tahiliani

Sir,

Thanks for the above reply.It was indeed helpful.

I also want to know that how I can introduce another field in AOMDV reply packet.Could you please tell me the relevant code by which I can do this?

@Kapil - To introduce another field in AOMDV reply packet, you need to make required changes in "struct hdr_aomdv_reply {" (line number 167) in aomdv_packet.h which is available in ns-allineone-2.34/ns-2.34/aomdv directory.

Hope it helps.

Regards,
Mohit P. Tahiliani

Dear Mohit,

Could you please update your links? All of them seem not working.
Thanks in advance.

Hi Mohit and all,

How can i define in an NS2 tcl script that i want:
- link or node-disjoint paths;
- maximum number of paths to find by aomdv
- difference between primary path lenght and others paths

I need to configure at ns-agent.h and aomdv.h?

@Chirag Raval

Thanks for your answer. I had found the solution to the problem after some days after a few days of my post.

Thanks
Elisabete Reis

Sir,

I am not able to add another field in reply packet of AOMDV.Actually i want to add a field in reply packet which can store the buffer size of the current node.As packet moves forward it adds buffer sizes of each node & when it finally reaches source it can tell me total buffer of the network.
I am stuck on this problem.I am in dire need of your help.

@E.Reis - As of now these options are not provided in the TCL Script. For setting all these 3 parameters you need to make changes in C++ itself. However, you can always use "bind" function and link TCL variables with C++ variables to control these parameters from TCL Script.

@Kapil - Buffer size of each node can be obtained by using q_->length() (See drop-tail.cc). The value returned by this function can be directly copied in AOMDV reply field. Refer to my previous answer to know where to make changes.

Hope it helps.

Regards,
Mohit P. Tahiliani

Hello Sir

I am trying to run the tcl script for energy model but when I run it I am not able to visualize nam for this simulation. I am using MyTest.tcl script that is already available. And when I try to use nam MyTest.nam it gives me error of nam can't recognize the trace file. How to solve this problem? Thanking You.

Hello Mohit sir

i have to modify Aodv protocol and i have to add 3 new packet . Route discovery process is complete. and if the link break occur or topology may change then this 3 packet are forwarded for find the new optimal route . so where i have to do changes and which file?

Hello Sir,

I am trying to simulate MPLS along with Mobile IP in ns2.. Can you please help me regarding this that how we can integrate them?

hello sir,

i want to implement a secure multipath routing(SecMR) algorithm using NS2. I am getting some problems in understanding code of AOMDV patch. Can u guide me.

regards
Himanshu

@Nishidh - Check whether the nam is correctly installed or not. Also verify you have turned ON the nam tracing in TCL Script.

@Rachu - The following will help you. You need to make changes in few functions specific to AODV such as localrepair, etc.

www-npa.lip6.fr/~rehmani/aodv_v2.pdf

@Jk - MPLS is already implemented in ns-2. You can find a sample TCL Script in the following directory:

ns-allinone-2.xx/ns-2.xx/tcl/ex

@Himanshu - The code of AOMDV is very much similar to that of AODV. The following tutorial will help you to understand the code of AODV:

www-npa.lip6.fr/~rehmani/aodv_v2.pdf

Hope it helps.

Regards,
Mohit P. Tahiliani

Hi Mohit and all,

How can i print the routing table for all nodes in AOMDV? I try the following command in tcl, like I can do to OLSR but give me error:

for { set I 0 } {$i < $val(nn) } {incr i}
[node_($i) agent 255] print_table;

Regards,
E. Reis

@E. Reis - The name of the object is "dump-table" but I am not sure of the syntax to be used to print the table.

Hope it helps.

Regards,
Mohit P. Tahiliani

Hi Mohit and all,

Thanks for your last answer, it´s all work fine.
I using AOMDV with multiple interfaces and want to benefict from multiple paths node/link-disjoint between 2 nodes.
When i conult the routes established in routing paths i verufy that the different interfaces aren´t specified and different routes established by using differents interfaces in the same node. Also, i verify that is always selected the first interface in the transpor layer.

This problem result by the fact from routing layer consider only the node and not node with interfaces? How i can use the different interfaces to established different routes?

I appreciate some help.
Thanks in advance
Regards
Elisabete Reis

Sir i am comparing IP netwok with Mpls Network on ns 2.34..
PROBLEM- In my Tcl file of mpls when i send a packet then it follow only one path(shortest Path). please send me a tcl file so that i can remove this problem.

hello sir i have problem to install mns_rsvp patch file.
please help me

hello Mohit and all
im trying to modifier AOMDV to introduce QoS service (end to end daily ) . im new in NS, i found difficulty to calculate daily in each node during the route request
i need to know where can i modifie and how can i calculate the daily .
i appreciate some help.

Thanks in advance
Regards

halim zidane

sorry delay not daily ;)



Hai,
I have to display the possible shortest path in MANET from
source to destination using aodv...
Kindly help me which part of the aodv.cc file I have to modify...

Hi Mohit and all,

I need some help, how to implement node overhear for RREP AODV in NS2 ?! please help me!.

thank
best regard

@E.Reis - These changes must be incorporated in the routing table. Instead of just putting the next hop information, we can also put the interface information so that packets destined for a particular node are always forwarded through that interface. Yes, if you do not specify a particular interface - by default the first free interface will be used.

@Akki - Thats not a problem, because routing protocols are designed such that use the shortest path only (parameter defining shortest path may be different).

What is the error you are getting while applying that patch?

@Hocine Saadi - You can download the e2edelay.awk from the following link:

http://mohittahiliani.blogspot.in/2010/02/few-more-awk-scripts-for-ns2.html

Make sure you modify it work for RREQ because it is designed to work for data packets. $7 will have to be modified and one more condition must be added in "if" loop to make sure it is a RREQ packet.

@Prem - The following link explains the changes required to print the Routing Table of AODV:

http://elmurod.net/index.php/2009/04/08/ns2-printing-routing-table-in-aodv-2/

@Ach. Khozaimi - The following explains the same, however, it is general and not specific to RREP:

https://www.cse.msu.edu/~wangbo1/ns2/nshowto1.html

Hope it helps.

Regards,
Mohit P. Tahiliani

Mr. Mohit P. Tahiliani thank you sir! it's work..

Mr. how to calculate a nodes congestion in AODV??

Thank you a lot..

Regards
A. Khozaimi

@Ach. Khozaimi - Information related to congestion can be obtained from the trace file by looking at 1st column and 5th column. If 1st column indicates a packet drop and 5th column indicates IFQ - it means the packet was dropped because of congestion. You can write an AWK Script to do this.

Hope it helps.

Regards,
Mohit P. Tahiliani

Mr. Mohit P. Tahiliani

I need to calculate a buffer size of node in aodv.cc file, is it possible?! help me please...

thank you..

best regard
Ach. Khozaimi

@Ach. Khozaimi - You must do that by looking in the CC file of the interface queue that you are using. Suppose if you are using DropTail then you must calculate the buffer size from droptail.cc. Similarly, if you are using PriQueue - you must calculate the buffer size from priqueue.cc

q_->length() gives you the current size of the queue.

Hope it helps.

Regards,
Mohit P. Tahiliani

Mr. Mohit P. Tahiliani..

I got it, thank you a lot,...
Mr. how to calculate a signal strength in AODV ???

Salam..
Khozaimi

@Ach. Khozaimi - It can be done by looking into the CC file of the Radio Propagation model that you are using. Suppose if you are using TwoRayGround in your TCL Script, then look into tworayground.cc. Similarly if you are using FreeSpace in your TCL Script, then look into freespace.cc. The parameter to be looked into is Pr - it corresponds to received signal strength.

Hope it helps.

Regards,
Mohit P. Tahiliani

Hey, do you have any idea of ns2 patch which supports GTS allocation mechanism of IEEE 802.15.4? The current version of ns2 has function declared but not defined. Please help.

Mr. Mohit P. Tahiliani

how to get a transfer rate ? AODV #NS2

Salam
Ach. Khozaimi

Hello Mr. Mohit and All

I am simulating OLSR in NS2.34. How to see the route from source to destination in nam? And how to set the color of MPR (Multi-Point Relay) which forward the packet to destination dynamically (to ensure that node selected as MPR)? I want to see the traveling of packet from source to destination. Please help me.

Thank you before.

Regards,

Buda.

Hi Mohit and All,

I´m simulating AOMDV with multiple interfaces and channels in ns2.33. I need to attach the Transport Agent to each one of interfaces or just to node and this management the multiple interfaces?

I appreciate some help
Thanks in advance
Elisabete Reis

Hello Mohit, I want to down primary path in AOMDV during transmission and set secondary path as primary path. How it is possible.

Can you suggest me. Please

i wanna to incorporate the asymmetric keys in RREQ and RREP packet in AODV protocol for ns-2.35.so if there is patch for it pls tellme

Dear sir, may you help me by sending me awk script to calculate normalizing routing load for the trace file of zone routing protocol

mohit im working a thesis Comparative Analysis of DSDV, AODV, AOMDV Protocols.i want to modified NS-2.34-AOMDV-Multiple-Interface.patch.pls help me.how can i compared among them??

Mohit sir i've download ur awk scripts.its helpful bt i want to plot xgraph by using throughput of aomdv result.what is the code or command for to plot xgraph?is awk scripts is diffrent for aodv,aomdv?pls ans my ques

Hello Mohit,

How can a Transport Protocol Agent to communicate with the AOMDV to get a path from Routing table? What function must be called?

I´m using AOMDV with multiple interfaces wireless with multiple channels in NS2.

I appreciate some help.
Thanks in advance
Elisabete Reis

Hello Bawa Onkar S,

See the function rt_dow in aomdv_rtable.c. Can be interesting to down a route.

Elisabete Reis

This comment has been removed by the author.
This comment has been removed by the author.

Hi all,
by patching this code, my original AOMDV wouldn't work?
So,How can i use both original AOMDV and AOMDV with multiple interfaces?

Hi Mohit sir,

I am new to NS.
Can you please suggest me a way to create an Agent of AOMDV in my tcl file.
Whenever I write "set aomdv2 [new Agent/AOMDV]" in my file and run it, it shows core dumped error.
It works fine with AODV but not with AOMDV.

Thanks in advance :)

My name is Said, A PhD Student from Japan

I am currently working with AODV protocol optimization in which I want to set the parameters like ACTIVE_ROUTE_TIMEOUT and others to be able to change them in tcl script.

After long time searching through the Internet, I came across your paper which explain about network simulator ns2;

Please consider the following scenario;
_______________________________________________________

In AODV.cc, bind the variable using
bind("actrttout",&ACTIVE_ROUTE_TIMEOUT);
and in the tcl file use

Agent/AODV set actrttout $opt(val)

where $opt(val) is the actual value.
______________________________________________________________

Do I need to declare the variable "actrttout" ?

Where Scpecifically (in which function?) shall I put below line?
bind("actrttout",&ACTIVE_ROUTE_TIMEOUT); Because When I tried to just put it in aodv.cc file, at the end it gives me the following error;

>>>>>>>>>>>>>>>>>>>>>>>>>>
duplicate symbol _ACTIVE_ROUTE_TIMEOUT in:
aodv/aodv_logs.o
aodv/aodv.o
ld: 1 duplicate symbol for architecture x86_64
collect2: ld returned 1 exit status
make: *** [ns] Error 1
>>>>>>>>>>>>>>>>>>>>>>>>>>

dear mohit sir ,i want to use multiple paths simultaneously for
increasing data rate in aomdv of ns-2.34 ,what should be changed in my back end aomdv protocol?,im new in ns2..its urgent..can u pls help me....

if it was algorithm for multiple paths only one path is used at a
time
RREQ: A route request packet.
CSThreshold: carrier sense threshold.
Pr: Received power.
WRNG: Warning Packet.
Procedure Route Request (RREQ) update
Begin
When an intermediate node receives RREQ
if (Pr < CSThreshold) then
Drop the packet and send the WRNG packet to
source node.
else if (Pr == CSThreshold)
if ((Pr > CSThreshold) then
boardcast the RREQ to its neighbor nodes;
endif
else
Drop the packet RREQ and choose the another path;
endif

Hi Mohit,

Since i have installed ns2.34 so i thought of checking patch fie and make change manually, is it possible to get list of files which are been modified? also there some file like cmu-trace.cc are totally different in ns2.34 do we need to totally replace patch file or just part of code?

i want to add aomdv protocol in ns2.31. How should i add it

Hi Mohit

i am getting following error while running tcl script

while executing
"Phy/WirelessPhy/OFDM create _o35 "
invoked from within
"catch "$className create $o $args" msg"
invoked from within
"if [catch "$className create $o $args" msg] {
if [string match "__FAILED_SHADOW_OBJECT_" $msg] {
delete $o
return ""
}
global errorInfo
error "class $..."
(procedure "new" line 3)
invoked from within
"new $iftype"
(procedure "_o20" line 9)
(Node/MobileNode add-interface line 9)
invoked from within
"$node add-interface $chan $propInstance_ $llType_ $macType_ $ifqType_ $ifqlen_ $phyType_ $antType_ $topoInstance_ $inerrProc_ $outerrProc_ $FECProc_"
(procedure "_o3" line 77)
(Simulator create-wireless-node line 77)
invoked from within
"_o3 create-wireless-node 0.0.0"
("eval" body line 1)
invoked from within
"eval $self create-wireless-node $args"
(procedure "_o3" line 23)
(Simulator node line 23)
invoked from within
"$ns node 0.0.0"
invoked from within
"set bs [$ns node 0.0.0]"
(file "70.tcl" line 115)

How can i remove this error?

hi

I want the destination node to record the received RREQ packets within the
nearest five seconds. And compare a certain field to choose the best path to
send the RREP.

I know the destination node needs to wait some time for all the RREQ packets
to arrive, but I do not how to write a c++ code to record the RREQs and
choose the best node.

I HAVE A PROBLEM WITH THE XGRAPH CAN U HELP ME OUT... ITS SHOWING THAT SOME PROBLEM WITH THE INPUT DATA



Hi Mohit

i am getting following error while running tcl script

while executing
"Phy/WirelessPhy/OFDM create _o35 "
invoked from within
"catch "$className create $o $args" msg"
invoked from within
"if [catch "$className create $o $args" msg] {
if [string match "__FAILED_SHADOW_OBJECT_" $msg] {
delete $o
return ""
}
global errorInfo
error "class $..."
(procedure "new" line 3)
invoked from within
"new $iftype"
(procedure "_o20" line 9)
(Node/MobileNode add-interface line 9)
invoked from within
"$node add-interface $chan $propInstance_ $llType_ $macType_ $ifqType_ $ifqlen_ $phyType_ $antType_ $topoInstance_ $inerrProc_ $outerrProc_ $FECProc_"
(procedure "_o3" line 77)
(Simulator create-wireless-node line 77)
invoked from within
"_o3 create-wireless-node 0.0.0"
("eval" body line 1)
invoked from within
"eval $self create-wireless-node $args"
(procedure "_o3" line 23)
(Simulator node line 23)
invoked from within
"$ns node 0.0.0"
invoked from within
"set bs [$ns node 0.0.0]"
(file "70.tcl" line 115)

How can i remove this error?

@E. Reis

Did you succeed in printing the routing table for all nodes in AOMDV? Could you please explain how you used dump-table?
Thank you in advance.

I think I've found! I have used the following code in "AOMDV::forward" function. :

printf("Node %d: Routing table:\n", index);
rtable.rt_dumptable();

But still it doesn't show all of the possible paths from source to destination. I use a static topology that there are at least 2 link-disjoint paths between source-destination, but the routing table is like the following (source:0, destination:1):

Node 0: Routing table:
Dest Seq# Advhop Nxthop Hopcnt Lsthop
1 2 16383
4 3 5

Any help would be appreciated.

Hello Sir,

How can i generate .nam file of AOMDV Protocol?
I want to use DREAM Protocol in AOMDV protocol to find the node with higher energy and through.
I am working on ns2.34 in fedora 12.

Regards,
Nisarg Patel

Hi Mohit sir, I'm Kanchana Dixit, studying 4th sem M.Tech in East West Institute of Technology, Bangalore. I had attended 3 days workshop on ns-2, which u had conducted.
I have a query, pls let me know what is fitness function and how it should be used for multipath routing protocols.

Hello Sir,
you can help me to modify hwmp to support multiple interface and thanks in advance. My e-mail: gas.mouna@gmail.com

i want to know the difference between wireless network, wireless sensor network, Mobile adhoc network,VANET... Using NS2 is it possible to use MANET protocols for wireless network.... how we can choose cluster head and cluster member in NS2 without assuming... how to make the mobility of cluster , cluster head and cluster member in NS2...

by
premanand.infotech@gmail.com

Hi Arsin,

I used the following command on tcl script:

$ns_ at $time "[node_($i) agent 255] dump-table"

and on aomdv::command i created a command dump-table that invoke the function dump-table().



I tried genthroughput but im getting values as
Average Throughput[kbps]=-0.00 starttime=400.00
also tried the graph getting
Error in file `sample.xgr' at line 1:
Unknown line type
Problems found with input data.

How to rectify this i have been trying this for two weeks still not able to clarify it

Hi,

I´m using AOMDV with patch to multiple interfaces/multiples on ns2.33.
I have doing some tests with node-disjoint paths and its all ok.
Now i modify aomdv.h to use link-disjoint paths and when i running the tests there show the following message five times:

"cycle cycle"

The test was running to end and the obtained paths are the same that in node-disjoint case.

Why is it happening?

Thanks in Advance!

Elisabete Reis

sir, my research topic is "group mobility handover in mobile wimax network" so i want some tcl script for "Handover latency in wimax"..can you help me??

@Ishani - I haven't worked on WiMAX, so would not be able to guide you much on this.

Regards,
Mohit P. Tahiliani

Hello sir
will u please give description of awk files of energy,SDR,Packet loss & end to end delay..I have read about awk files on internet but i didnt get meaning..

Hello Sir

This is suresh babu chandolu, Ph.D (full time) scholar in Nagarjuna university.
my title is "performance evaluation of AODV routing protocol using Queuing Model"
I am working on classical queuing model M/M/1/K. Using this model I want to calculate delay between source and destination. I am using AODV routing protocol. which files i need to change in AODV protocol. I have seen M/M/1/K Example in book for wired network. how this can be converted into wireless. please help me sir. I am trying from jan'2015 but i didnt get. plaese sir.

@Anvika - Have you checked the following blog post:

http://mohittahiliani.blogspot.in/2009/12/awk-script-for-ns2.html

@Suresh - I don't think there is any need to change aodv.cc file or any file related to AODV. Since your major focus is on queues - I recommend you to take a look at the ns-2.xx/queue folder and search for the relevant file therein.

Hope it helps.

Regards,
Mohit P. Tahiliani

Hello Mohit....

I want the awk files for wired network scenario for old trace format.
Can i get it from you?

@Hardhi - Wired trace format does not have two types of trace files i.e., old and new. It has only one format.

Try using the tool provided on this link: http://perso.citi.insa-lyon.fr/mfiore/data/trace2stats_v05b.tgz

Hope it helps.

Regards,
Mohit P. Tahiliani

Thanks so much.
I will try with the link.

Guest Book...!!!