Quick ns-3 installation on Ubuntu 12.04

ns-3 is a discrete-event network simulator, commonly used to gain insight into dynamics of complex networks. Descriptions here are short, to get you running ns-3 quickly, but further information can be found in the official documentation. Instructions are based the ns-3 installation wiki and the ns-3 tutorial.

Installation and build

{codecitation style=”brush:bash”} # Install prerequisites for Ubuntu 12.04, no MPI-based distributed emulation:
sudo apt-get install gcc g++ python python-dev bzr mercurial gdb valgrind gsl-bin libgsl0-dev libgsl0ldbl flex bison libfl-dev g++-3.4 gcc-3.4 tcpdump sqlite sqlite3 libsqlite3-dev libxml2 libxml2-dev libgtk2.0-0 libgtk2.0-dev vtun lxc uncrustify doxygen graphviz imagemagick texlive texlive-extra-utils texlive-latex-extra python-sphinx dia python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev libboost-signals-dev libboost-filesystem-dev

# Clone repositories and download code: 
hg clone http://code.nsnam.org/ns-3-allinone 
cd ns-3-allinone
./download.py -n ns-3.16 

# Build the code:
./build.py –enable-examples –enable-tests 

# Sanity tests for build: 
cd ns-3.16 
./test.py -c core 


A Node is a simulated computation device (e.g., computer), which runs Applications. Each Node is connected to Net Devices, which simulate the behavior of a NIC’s software (driver) and hardware together. The Net Device is in turn connected to a Channel. Each of these abstractions (Node, Application, Net Device and Channel) are C++ classes that the programmer specializes. For example WifiChannel is a subclass of Channel.

Topology helpers connect multiple components in known, useful structures; they are a high-level tool to reduce the burden of common configuration tasks.

More information in the official tutorial.

Posted in Tech Blog.

Leave a Reply

Your email address will not be published. Required fields are marked *