AODV simulation in NS2 (Part 1) - NS2 Tutorial # 11

Lecture 11 - AODV - Part 1
Todays topic on AODV protocol

AODV - Adhoc Ondemand Distance Vector
the location of the source code for Aodv is in the folder

~ns-2.35/aodv/

My suggestion is
Always try to understand the header file first.. later you can move on to source file (.cc files)
I will go through aodv.h file first and then aodv.cc file next....
let me explain....

I should know where my work is residing, for example in AODV

should I work on


  • Routing Table
  • Energy Management
  • Quality oif Service
  • Link Failure
  • Logs or tracing
  • Neighbour management
  • Attacks (Black hole, gray hole, etc...)
  • Security

so prefer to stay at the header files first...
Now the action begins.
how do i modify the AODV protocol as per my small piece of algorithm...
I would like to print the nodes that are forwarding the packets.
Two information will be recorded in a text file separately..

Name of the file: aodv_output.dat data recorded will be: forwarded packet, node index (node number).

For this, please open the aodv.h and aodv.cc file.

Step 1:
add a variable called as pkt_count as an integer in protected scope inside the aodv.h file.

int pkt_count;
Step 2:

Initialize pkt_count with a value 0 in the aodv.cc file (preferably in the constructor)

pkt_count=0;

Step 3:

Since I am going to get the packet counts in a file, i need to create a file pointer. But first let me get the data in the terminal itself. later i will create it in the file.

Also, only during the forwarding of packets, i am going to get the count, so my code will be running inside the forward() function.

Add the following line to the forward() function of aodv.cc

printf("I am packet no %d and from node number %d\n",pkt_count++,index);


Step 4:
Now recompile ns2 using the command make

$] cd ns-allinone-2.35/ns-2.35/

$] make


Once, there are no errors, your code is compiled successfully....

Then, run any wireless tcl script that has the routing protocol as AODV.
I am running AODV.tcl file that was generated in LEcture number 9.

to run that just
$] ns AODV.tcl

$] nam AODV.nam

I need to get this output in a file called as aodv_output.dat
How to do that... Again the same step open, aodv.cc and aodv.h

Declare a file pointer inside the aodv.h file

FILE *fp;

Initialize this file pointer in aodv.cc constructor

fp = fopen ("aodv_output.dat","w");

include the following line in the forward() function of aodv.cc


fprintf(fp,"I am packet no %d and from node number %d\n",pkt_count++,index);

and run the AODV.tcl file and check for a file called aodv_output.dat is created in the same folder where the AODV.tcl is residing.


Thank you for watching..
To download the codes, visit https://www.nsnam.com

and share and subscribe to my youtube channel
Youtube.com/tspradeepkumar
Stay Tuned for more lectures...

T S Pradeep Kumar