#include <UnderlayConfigurator.h>
Inheritance diagram for UnderlayConfigurator:
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 |
virtual void UnderlayConfigurator::createRandomNode | ( | bool | initialize | ) | [protected, pure virtual] |
Creates an overlay node.
initialize |
Implemented in IPv4UnderlayConfigurator, and SimpleNetConfigurator.
virtual void UnderlayConfigurator::finish | ( | ) | [protected, pure virtual] |
void UnderlayConfigurator::handleMessage | ( | cMessage * | msg | ) | [protected] |
Node mobility simulation.
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] |
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] |
virtual void UnderlayConfigurator::setDisplayString | ( | ) | [protected, pure virtual] |
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