Skip to main content


Showing posts from March, 2014

Installing ns-3.37 and ns-3.35 in Ubuntu | Ubuntu 22.04 | NS3

Multiple Versions of ns3 in Ubuntu 22.04 In this post, we are going to install two versions of ns3 namely ns-3.35 and ns-3.37  My OS is : Ubuntu 22.04 LTS (Long Term Support) ns-3.35 uses waf and (./waf --run scratch/first)  ns-3.37 uses cmake  (./ns3 run scratch/ So we will install both the packages  Go through the video for complete instructions To start with  $ sudo apt update  $ sudo apt install build-essential autoconf automake libxmu-dev g++ python3 python3-dev pkg-config sqlite3 cmake python3-setuptools git qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 openmpi-bin openmpi-common openmpi-doc libopenmpi-dev autoconf cvs bzr unrar gsl-bin libgsl-dev libgslcblas0 wireshark tcpdump sqlite sqlite3 libsqlite3-dev  libxml2 libxml2-dev libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake python3-pip libxml2 libxml2-dev libboost-all-dev  I have downloaded both the versions of ns3 fr

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 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 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  (The above

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/ 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 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_nex