Manual of Installation and Usage
Panagiotis Sebos
Columbia University
New York 10027 USA
psebos@comet.columbia.edu
Abstract
The main aim of this project is to build a distributes system for running simulations through Opnet simulation tool. This can be done by entering certain parameters to the program such as nodes numbers, redudancy factors etc to produce files that can be used as an input for Opnet, without interfering with the GUI of the program. Also it is provided a tool that can be named as a simulation manager and can handle the simulations and run them in remotely located machines. This is quite useful when we need to run large simulations with the same main characteristics but different specific ones. Also all the results are indexed inside a main database giving to the user the flexibility to access them through a well defined language (SQL)
Requirements
The tiers algorithm was written using C++ (and compiled using g++). The topology generator and fault injection for EMA code was written using C (and compiled using gcc).
The Database is Mini SQL and can be compiled on a UNIX station (but has also a JDBC interface).
The Simulation Manager was written using Java JDK1.1.5.
The great advantage is tha the whole code is portable, so that the whole platform can be run in Unix stations and Windows NT stations as well.
Of course we need to install some clients that support opnet.
Installation
We have to compile the following parts:
MSQL
Download Mini SQL 2.0.3 from here Compile it and afterwards create a database called ais by using the command: msqladmin create ais
Get the definition file from here and save it as <filename> and run:
cat <filename> | msql ais
Topology Generator, Fault Injection
Get topology generator, fault injection from here
Untar them get inside src and run make. The output files are going to be inside the bin directory.
Simulation Manager
Get Simulation Manager from here, Compile
it by running compile. First edit the Compile file to define correct path for the Java Classes. Compile them by
running make.
Operation
Topology Generator/Fault Injection
from inside bin direcory you can run the program creator in the following forms:
The first type is for automatic injection of fault (as discussed in the main paper)
creator <nodes_number> <model_name> <redudancy_factor1> <redudancy_factor2> <receivers> <senders> <simulation_length> <#failures> <max_time_per_failure>
The second type is for manual injection of fault
creator <nodes_number> <model_name> <redudancy_factor1> <redudancy_factor2> <receivers> <senders> <simulation_length> <input_filename>
The input filename must be in the form of:
#Start time End time Link oject id 10.240000 14.930000 33 13.950000 15.020000 4 14.300000 15.290000 6 14.570000 15.380000 7 14.660000 15.650000 9
Also when entering manually the IP address in the model the command should be like:
creator .............. <IP=xxx.xxx.0.0>
The output file is equals to the model name.
For compiling it copy the output model file inside user's model directory usually at ~/op_models with an em.c extension. also move there the fault_pr.em.c file, the script file. Also move the ethcoax2_slip4_gtwy_base_fault.em.c if not there already. Afterwards run
m3_mkema -m <model_name> <model_name>.s1.em.x m3_mkema -m fault_pr fault_pr.s1.em.x ethcoax2_slip4_gtwy_base_fault.s1.em.x m3_mkema -m ethcoax2_slip4_gtwy_base_fault
Afterwards enter opnet and open the output model from the network editor with the name of model_name.
Examples:
creator 10 test 2 4 100 30 1000 60 10
creates a network which consists of 10 routers with r1,r2 2 and 4 with a fraction of 100% receivers and 30% senders for simulation time 1000 time units 60 failures inside the system and 10 time units for earch router the maxinum failure time. The output will look like:
We can see 10 routers with 3 senders (30%) and 10 receivers (100%)
Other examples can be like:
creator 10 test 2 4 100 30 1000 in
This is with manual injection. the in file looks like:
10.240000 14.930000 33 13.950000 15.020000 4 14.300000 15.290000 6 14.570000 15.380000 7 14.660000 15.650000 9
This means that the link 33 must fail at 10.24 time units and come back again at 14.93
Finally someone can use
creator 10 test 2 4 100 30 1000 in IP=147.102.0.0
for specifying the ip addresses in the model.
Simulation Manager
By using the GUI someone can very easy run it and starts the simulations.
After compiling everything and after copying the code to the opnet clients the user can get in there and run:
rmiregistry 4001& java Adapter <hostname>
where the hostname is the hostname of the machine
For the client you have to run
java gui.html
Here the user can login (It checks the authentication inside the database). The user after entering his username and password the application connects to the database and authenticate the user.
He chooses which clients he would like to run the simulation (from the available inside the database)
Inserts the specific commands for each simulation. Here the user can specify nodes number, simulation length, redudancy factor 1, redudancy factor 2,maximum number of failure, muximum time per failure as they are described in the document. By pressing lauch it launches the simulation.
Monitor the simulation (The green border means that everything is fine). This is done by invoking methods to the opnet clients through java RMI. After the end of each simulation the opnet client dumps directly the output file into the database
I do not think that I need more to describe. Just have fun with it :)
Acknowledgements
I would like to thank Xin Wang, Paul Stirpe for helping me through their answers to various implementation problems to improve the outcome. Also I would like Prof. Henning Schulzrinne because through his course I had the oportunity to work and learn for this really powerful tool OpNet.