Go to content Go to menu

Recently, for a project, I needed to work with ns2 (1), (2). Adding own protocols to ns2 requires to compile it from the sources instead of just installing it via apt-get.

It has a lot of dependencies (e.g. tcl/tk) which where already installed on my system. According to here there is a all-in-one package of ns2 including ALL its dependencies. As my machine is always near to 100% full and I already have installed its dependencies for other projects I just downloaded ns2 source without dependencies. Downloading the sources and the well known stanza ‘configure / make / make install’ should be enough - I though.

But alas - configure didn’t find required dependencies. OK - so fix some paths to keep configure happy. But now lots of compile time errors occurred. I’m running on Ubuntu Linux 16.04 LTS 64bit and a lot of include files and libraries are not there where ns2’s configure script expects it to find. It also seems that ns2’s dependencies installed via apt-get have been compiled with different compile time options as ns2 expects. Google did not help much and so I decided to fix things so that I can successfully compile ns2 an start hacking new protocols.

This post shows the steps and also provides the patches.

Step 1: Install prerequisites (from package repository)

sudo apt-get install \
   tcl8.6 libtcl8.6 tcl8.6-dev \
   tk8.6 tk8.6-dev \
   libotcl1 libotcl1-dev \
   tclcl libtclcl1 tclcl-dev

Step 2: Get the sources (ns2 without dependencies)

wget \
    https://sourceforge.net/projects/nsnam/files/ns-2/2.35/ns-src-2.35.tar.gz/download \
    -O ./ns-2.35.tgz
tar xvf ./ns-2.35.tgz

Step 3: Apply the patches

The patches can be downloaded here ns-2.35-ubuntu-16.04-64bit.patch.

patch \
    -d ./ns-2.35 \
    -p2 \
    < ./ns-2.35-ubuntu-16.04-64bit.patch

Step 4: configure / make / make install

cd ./ns-2.35
./configure \
    --with-tcl-ver=8.6 \
    --with-tk-ver=8.6
make

Now you should have a ns binary in ns2 source folder. To ensure that ns2 compiled correctly, run validate to perform tests (warning: this takes long)

Step 5: Start hacking

For more infos about ns2 and ns2 development see the following links

This steps were tested with Ubuntu 16.04 LTS 64bit and it might be that they wont work with other versions or distributions. But they may help to fix problems there too.

Proxy Mobile IPv6 using Cisco

Wednesday, June 28, 2017

pmipv6-cisco.jpg Proxy Mobile IPv6 (or PMIPv6 for short) allows an ordinary host (PC, Laptop, Smartphone etc.) to use a non changing IP address while roaming between different access points/routers within a PMIP domain. See Wikipedia for more info’s. Cisco offers a powerful implementation in its IOS targeted at large scale installations with regard to ease of deployment and management. For this to work Cisco recommends things like Lightweight Access Points - LAP, Wireless LAN Controllers - WLC and protocols like Control And Provisioning of Wireless Access Points - CAPWAP. Using these components its fairly easy to setup and manage PMIPv6 domains. See this Cisco guide for more infos.

For a project I had to design a very, very low level PMIPv6 lab without almost all the nice things Cisco recommends. And - it works - almost.
[Read More…]

ESA AMP testbed completed

Tuesday, December 13, 2016

Finally after about two years of development the AMP (Advanced Mobility Protocolls) testbed developed for the European Space Agency (ESA) was delivered to its European Space Research and Technology Center (ESTEC) in Noordwijk, Netherlands.

amp-2.jpg  amp-1.jpg

AMP consists of a virtualization host, cisco switches, a JAR Network Emulator and some physical hosts and allows the simulation of various IPv6 mobility protocolls in a satellite context like PMIP, NEMO and MPTCP. It is completely self contained, remote controllable and can simulate even complex network layouts.

amp-3.jpg

It was a pleasure to work on this project!

Little Wireshark

Friday, February 8, 2013

In times of Carrier IQ and other unwanted pieces of software possibly active on your mobile phone it would be nice to have tools like on your desktop PC to see whats going on. One of these tools on a PC is WireShark, a network sniffer. Unfortunately it only runs on PC’s (either Windows or Linux) and not on your SmartPhone. So how would it be possible to trace your phones network traffic?

[Read More…]