The project's goal
- fmipv6.org Home Page
- M.Sc. Faqir Zarrar Yousaf
- BitTorrent for the OMNeT++ Simulation Platform
- Network Simulation Cradle
- lwIP - A Lightweight TCP/IP stack - Summary
Working with OMNeT++ simulator
OMNet++ is a discrete event based simulator written in C++. Actually, it is a framework on which different simulation models are written. For the moment I'm aware of the following ones:
This framework provides implementation of the Internet protocols and some frequently used data-link layer protocols on the Internet (e.g Ethernet).
This is a fork of INET protocol that has added MIPv6 functionality. It is regularly synchronized with the INET framework.
Compiling and running on Fedora 11
The goal was to install the simulator in the /opt/simulators/omnetpp-4.0 directory. To do that I've done the following:
Create the directory /opt/simulators/ as a root user and change it's ownership to some unpriviledged user. Become the unpriviledged user, change your active directory and unpack the OMNeT++ sources. After unpacking you'll have the omnetpp-4.0 subdirectory. cd into that directory.
There are some compilation problems that are related to much stricter C++ compiler shipped with Fedora (GCC 4.4). So, in all the files that can not compile you should add #include <stdio.h>.Here is the patch that will do that for you. Apply it in the following way (after you unpacked the OMNeT++ sources):
$ patch -p1 < <path_and_filename_of_the_patch>
Do configure and make steps from the documentation. (Don't forget to set PATH variable before make).
After the compilation has finished, you have to one JAR in order to be able to run Eclipse IDE shipped with OMNeT++ (I found this tip on omnetpp group):
- Install Fedora eclipse
- Deleted file org.eclipse.swt.gtk.linux.x86_64_3.4.1.v3449c.jar from /opt/simulators/omnetpp-4.0/ide/plugins
- Copy file org.eclipse.swt.gtk.linux.x86_64_3.4.1.v3452b.jar from /usr/lib64/eclipse/plugins/ to /opt/simulators/omnet-4.0/ide/plugins
In this section I'll list some Howtos that I had to google so that the others can find it much quicker...
- How to filter main window content from INI file?
From the GUI this is done by selecting 7th icon from the left in the toolbar (the tooltip is Filter main window contents) or by pressing Ctrl+H. How this is done within the INI file, I don't know yet.
- How to collect TCP statistics?
Provided that you have properly set up the simulation, i.e. there are TCP applications put the following line in the ini file:
This will instruct all the TCP implementations in the model to collect statistics.
- How to get measurement data for analysis in OOCalc/Excel?
To get CSV data run the following command:
scavetool vector -p 'module(**tcp**)' -O out.csv -F csv General-0.vec
The input to this command is a file General-0.vec which is searched for in the current directory. The output format is csv (the option -F) and the output filename is out.csv. The data that is extracted from the General-0.vec matches the pattern module(**tcp**), i.e. any module that include substring tcp in the name. These are: TestTopology.MN.tcp/unacked, TestTopology.CN.tcp/RTO, etc.
- But how to get only specific data from e.g. only one node?
Run the following command:
scavetool vector -p '(module(**CN**) AND (name(**ssthresh**) OR name(**cwnd**)))' -O cn.csv -F csv General-0.vec
This command will extract TCP data from module that contains substring CN and only variables ssthresh and cwnd.