UnderlayConfigurator Class Reference

#include <UnderlayConfigurator.h>

Inheritance diagram for UnderlayConfigurator:

IPv4UnderlayConfigurator SimpleNetConfigurator List of all members.

Detailed Description

Base class for configurators of different underlay models.

Author:
Stephan Krause, Bernhard Heep


Public Member Functions

bool isInit ()
 still in initialization phase?

Public Attributes

timeval initFinishedTime
 timestamp at end of init phase

Protected Member Functions

int numInitStages () const
 OMNeT number of init stages.
virtual void initialize (int stage)
 OMNeT init methods.
virtual void initializeUnderlay (int stage)=0
 Init method for derived underlay configurators.
virtual void createRandomNode (bool initialize)=0
 Creates an overlay node.
virtual void killRandomNode ()=0
 Removes randomly chosen overlay nodes from a randomly chosen access net.
virtual void migrateRandomNode ()=0
 Migrates randomly chosen overlay nodes from on access net to another.
virtual void finish ()=0
 Cleans up configurator.
virtual void setDisplayString ()=0
 Sets display string.
void handleMessage (cMessage *msg)
 Node mobility simulation.

Protected Attributes

std::vector< std::string > channelTypes
 possible access types
bool init
 still in initialization phase?
int initialOverlayTerminalNum
 number of overlay terminals at beginning of simulation
int targetOverlayTerminalNum
 final number of overlay terminals
int overlayTerminalCount
 current number of overlay terminals

Private Attributes

double creationProbability
 probability of creating a new overlay terminal
double migrationProbability
 probability of migrating an overlay terminal
double removalProbability
 probability of removing an overlay terminal
double initialMean
 mean of update interval during initalization phase
double initialDeviation
 deviation of update interval during initalization phase
double targetMean
 mean of update interval after initalization phase
double targetDeviation
 deviation of update interval after initalization phase


Member Function Documentation

virtual void UnderlayConfigurator::createRandomNode ( bool  initialize  )  [protected, pure virtual]

Creates an overlay node.

Parameters:
initialize 

Implemented in IPv4UnderlayConfigurator, and SimpleNetConfigurator.

virtual void UnderlayConfigurator::finish (  )  [protected, pure virtual]

Cleans up configurator.

Implemented in IPv4UnderlayConfigurator, and SimpleNetConfigurator.

void UnderlayConfigurator::handleMessage ( cMessage *  msg  )  [protected]

Node mobility simulation.

Parameters:
msg timer-message
00055 {
00056     if ( init ) {
00057         // increase the number of nodes steadily during setup
00058 
00059         init = (overlayTerminalCount < (int)par("targetOverlayTerminalNum"));
00060 
00061         if (!init)
00062             gettimeofday(&initFinishedTime, NULL);
00063         else
00064             createRandomNode(false);
00065 
00066         scheduleAt(simulation.simTime()
00067                    + truncnormal(initialMean, initialDeviation), msg);
00068     } else {
00069         double random = uniform(0, 1);
00070 
00071         // modify the number of nodes according to user parameters
00072         if (overlayTerminalCount != 0) {
00073             if(random < creationProbability) {
00074                 createRandomNode(false);
00075             } else if(creationProbability <= random &&
00076                       random < creationProbability + removalProbability &&
00077                       overlayTerminalCount > 1) {
00078                 killRandomNode();
00079             } else if ( creationProbability + removalProbability <= random &&
00080                         random < creationProbability + removalProbability
00081                         + migrationProbability) {
00082                 migrateRandomNode();
00083             }
00084         }
00085         scheduleAt(simulation.simTime()
00086                    + truncnormal(targetMean, targetDeviation), msg);
00087     }
00088     setDisplayString();
00089 }

void UnderlayConfigurator::initialize ( int  stage  )  [protected, virtual]

OMNeT init methods.

00035 {
00036     if(stage == MIN_STAGE_UNDERLAY) {
00037         initialOverlayTerminalNum = par("initialOverlayTerminalNum");
00038         targetOverlayTerminalNum = par("targetOverlayTerminalNum");
00039         creationProbability = par("creationProbability");
00040         migrationProbability = par("migrationProbability");
00041         removalProbability = par("removalProbability");
00042         initialMean = par("initialMobilityDelay");
00043         initialDeviation = initialMean / 3;
00044         targetMean = par("targetMobilityDelay");
00045         targetDeviation = targetMean / 3;
00046         channelTypes = cStringTokenizer(par("channelTypes"), " ").asVector();
00047         init = true;
00048     }
00049 
00050     if(stage >= MIN_STAGE_UNDERLAY && stage <= MAX_STAGE_UNDERLAY)
00051         initializeUnderlay(stage);
00052 }

virtual void UnderlayConfigurator::initializeUnderlay ( int  stage  )  [protected, pure virtual]

Init method for derived underlay configurators.

Implemented in IPv4UnderlayConfigurator, and SimpleNetConfigurator.

bool UnderlayConfigurator::isInit (  )  [inline]

still in initialization phase?

00049     {
00050         return init;
00051     };

virtual void UnderlayConfigurator::killRandomNode (  )  [protected, pure virtual]

Removes randomly chosen overlay nodes from a randomly chosen access net.

Implemented in IPv4UnderlayConfigurator, and SimpleNetConfigurator.

virtual void UnderlayConfigurator::migrateRandomNode (  )  [protected, pure virtual]

Migrates randomly chosen overlay nodes from on access net to another.

Implemented in IPv4UnderlayConfigurator, and SimpleNetConfigurator.

int UnderlayConfigurator::numInitStages (  )  const [protected]

OMNeT number of init stages.

00030 {
00031     return MAX_STAGE_UNDERLAY + 1;
00032 }

virtual void UnderlayConfigurator::setDisplayString (  )  [protected, pure virtual]

Sets display string.

Implemented in IPv4UnderlayConfigurator, and SimpleNetConfigurator.


Member Data Documentation

std::vector<std::string> UnderlayConfigurator::channelTypes [protected]

possible access types

double UnderlayConfigurator::creationProbability [private]

probability of creating a new overlay terminal

bool UnderlayConfigurator::init [protected]

still in initialization phase?

struct timeval UnderlayConfigurator::initFinishedTime

timestamp at end of init phase

double UnderlayConfigurator::initialDeviation [private]

deviation of update interval during initalization phase

double UnderlayConfigurator::initialMean [private]

mean of update interval during initalization phase

int UnderlayConfigurator::initialOverlayTerminalNum [protected]

number of overlay terminals at beginning of simulation

double UnderlayConfigurator::migrationProbability [private]

probability of migrating an overlay terminal

int UnderlayConfigurator::overlayTerminalCount [protected]

current number of overlay terminals

double UnderlayConfigurator::removalProbability [private]

probability of removing an overlay terminal

double UnderlayConfigurator::targetDeviation [private]

deviation of update interval after initalization phase

double UnderlayConfigurator::targetMean [private]

mean of update interval after initalization phase

int UnderlayConfigurator::targetOverlayTerminalNum [protected]

final number of overlay terminals


The documentation for this class was generated from the following files:
Generated on Fri Dec 15 17:50:31 2006 for ITM OverSim by  doxygen 1.4.7