Skip to main content

Posts

Showing posts from March, 2014

MANET Routing Protocols using ns3

#AODV #OLSR #MANETs #DSDV #DSR

Download the Code here: 
https://drive.google.com/open?id=1OkVOsifjN9UfQjPGvfR7OuS-x_GBRgCV

Check the Video for Detailed instruction and how to use the plots, graphs and source code.


Comparison of MANET routing Protocols 1. AODV
2. DSDV
3. DSR
4. OLSR
using NS3 (Network Simulator 3)
B.Tech, M.Tech, PhD...
1. Reactive Vs Proactive routing
2. PErformance comparison of MANET protocols
3. AODV Vs DSDV Comparison

https://www.nsnam.com and also at my channel.

What Version: ns-3.29
My Ubunut OS is: Ubuntu 18.04

This file we are going to use for our simulation:
/home/networks/ns-allinone-3.29/ns-3.29/examples/routing/manet-routing-compare.cc

Once you under stand the code, now lets run this example

Step 1: Copy the above file in to ~ns-3.29/scratch/ folder

Step 2: Understand this code.
Step 3: Run this code
Open the terminal, Go to ns-3.29 and run the following command

$] ./waf --run scratch/manet-routing-compare

enable the following header file

#include "ns3/flo…

Propagation models in ns2

This post is helpful for you to find out the receiving threshold values of various propagation models for certain communication distance.

By default, ns2 uses a distance of 1.5m (the antenna is just placed 1.5m above the node ground). Suppose if someone needs to calculate the factor when the distance of the antenna is placed 10m above the ground, then the default value changes.

NS2 has an inbuilt mechanism to calculate the distance for certain communication range using the threshold.cc file in ~ns-2.35/indep-utils/propagation/ 

The file is not having any OTcl linkages, its a conventional C++ file that can be compiled using the command  g++

Before compiling the file, there are some changes in the threshold.cc file.
1. Change the #include<iostream.h> to#include <iostream>
2. Include the following two lines
#include <string.h>
using namespace std;

Once the changes are made, compile the file using the command
g++ -o threshold threshold.cc 
(The above command compiles and l…

Printing Routing Table in AODV: NS2

There are no automatic provisioning to print a routing table for a given node in ns2. However, using the tracefile generated using ns2, routing table can be printed, but one should be good enough in processing a file using awk, python or any other scripts.

The following code will make you print the routing table when you are using AODV Protocol.

Files to be modified:
~ns-2.35/aodv/aodv.h
~ns-2.35/aodv/aodv.cc

The RED colored code indicates the addition of these lines in to the existing codes.
The following line can be added to the aodv.h file inside the class AODV in the protected scope.  probably add the line after the rt_down() function.
void rt_print(nsaddr_t nodeid);
In the aodv.cc file, add the following entry anywhere, but probably after the end of rt_down() function.  void  AODV::rt_print(nsaddr_t nodeid) { FILE *fp; fp = fopen("route_table.txt", "a"); aodv_rt_entry *rt; for (rt=rtable.head();rt; rt = rt->rt_link.le_next) { fprintf(fp, "NODE: %i %f %i %i %…