The ECMM Testing Ground
This network include all the necessary modules to create a simulation scenario, inlcuding the CMM, HCMM and ECMM models. The hosts regarded are simple MANET hosts with mobility defined by the omnetpp.ini file, which in this case in the CommunityMov. The DTApp is used to generate the network traffic, while the tracefile required is generated by the socMovGen module.
See also: socMovGen, CommunityMov, DTApp
Author: Nikolaos Vastardis
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
| Name | Type | Default value | Description |
|---|---|---|---|
| playgroundSizeX | double | ||
| playgroundSizeY | double | ||
| numHosts | int |
| Name | Value | Description |
|---|---|---|
| isNetwork | ||
| display | bgl=2;bgb=500,500;bgg=333;bgi=,f |
| Name | Type | Default value | Description |
|---|---|---|---|
| channelcontrol.coreDebug | bool | false |
debug switch for core framework |
| channelcontrol.pMax | double | 20mW |
maximum sending power used for this network (in mW) |
| channelcontrol.sat | double | -110dBm |
signal attenuation threshold (in dBm) |
| channelcontrol.alpha | double | 2 |
path loss coefficient |
| channelcontrol.carrierFrequency | double | 2.4GHz |
carrier frequency of the channel (in Hz) |
| channelcontrol.numChannels | int | 1 |
number of radio channels (frequencies) |
| channelcontrol.propagationModel | string | "PathLossReceptionModel" | |
| host.tcp.advertisedWindow | int | 14*this.mss |
in bytes, corresponds with the maximal receiver buffer capacity (Note: normally, NIC queues should be at least this size) |
| host.tcp.delayedAcksEnabled | bool | false |
delayed ACK algorithm (RFC 1122) enabled/disabled |
| host.tcp.nagleEnabled | bool | true |
Nagle's algorithm (RFC 896) enabled/disabled |
| host.tcp.limitedTransmitEnabled | bool | false |
Limited Transmit algorithm (RFC 3042) enabled/disabled (can be used for TCPReno/TCPTahoe/TCPNewReno/TCPNoCongestionControl) |
| host.tcp.increasedIWEnabled | bool | false |
Increased Initial Window (RFC 3390) enabled/disabled |
| host.tcp.sackSupport | bool | false |
Selective Acknowledgment (RFC 2018, 2883, 3517) support (header option) (SACK will be enabled for a connection if both endpoints support it) |
| host.tcp.windowScalingSupport | bool | false |
Window Scale (RFC 1323) support (header option) (WS will be enabled for a connection if both endpoints support it) |
| host.tcp.timestampSupport | bool | false |
Timestamps (RFC 1323) support (header option) (TS will be enabled for a connection if both endpoints support it) |
| host.tcp.mss | int | 536 |
Maximum Segment Size (RFC 793) (header option) |
| host.tcp.tcpAlgorithmClass | string | "TCPReno" |
TCPReno/TCPTahoe/TCPNewReno/TCPNoCongestionControl/DumbTCP |
| host.tcp.sendQueueClass | string | "TCPVirtualDataSendQueue" |
TCPVirtualDataSendQueue/TCPMsgBasedSendQueue |
| host.tcp.receiveQueueClass | string | "TCPVirtualDataRcvQueue" |
TCPVirtualDataRcvQueue/TCPMsgBasedRcvQueue |
| host.tcp.recordStats | bool | true |
recording of seqNum etc. into output vectors enabled/disabled |
| host.pingApp.destAddr | string | "" |
destination IP or IPv6 address |
| host.pingApp.srcAddr | string | "" |
source IP or IPv6 address (useful with multi-homing) |
| host.pingApp.packetSize | double | 56B |
of ping payload, in bytes |
| host.pingApp.interval | double | 1s |
time to wait between pings (can be random) |
| host.pingApp.hopLimit | double | 32 |
TTL or hopLimit for IP packets |
| host.pingApp.count | double | 0 |
stop after count ping requests, 0 means continuously |
| host.pingApp.startTime | double | uniform(0s,this.interval) |
send first ping at startTime |
| host.pingApp.stopTime | double | 0s |
send no pings after stopTime, 0 means forever |
| host.pingApp.printPing | bool | true |
dump on stdout |
| host.networkLayer.ip.procDelay | double | 0s | |
| host.networkLayer.ip.forceBroadcast | bool | false | |
| host.networkLayer.arp.retryTimeout | double | 1s |
number seconds ARP waits between retries to resolve an IP address |
| host.networkLayer.arp.retryCount | int | 3 |
number of times ARP will attempt to resolve an IP address |
| host.networkLayer.arp.cacheTimeout | double | 120s |
number seconds unused entries in the cache will time out |
| host.networkLayer.arp.updateTimeOut | bool | false |
if true, update the cache time out if the entry is used |
| host.manetrouting.manetmanager.routingProtocol | string |
Manager parameters |
|
| host.manetrouting.manetmanager.manetPurgeRoutingTables | bool | true | |
| host.manetrouting.manetmanager.AUTOASSIGN_ADDRESS | bool | false | |
| host.manetrouting.manetmanager.AUTOASSIGN_ADDRESS_BASE | string | "10.0.0.0" | |
| host.wlan.mgmt.UseQos80211e | bool | false | |
| host.wlan.mgmt.classifierClass | string | "Ieee80211eClassifier" | |
| host.wlan.mgmt.frameCapacity | int | 100 | |
| host.wlan.mac.address | string | "auto" |
MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0. |
| host.wlan.mac.maxQueueSize | int |
max queue length in frames; only used if queueModule=="" |
|
| host.wlan.mac.bitrate | double | ||
| host.wlan.mac.rtsThresholdBytes | int | 2346B |
longer messages will be sent using RTS/CTS |
| host.wlan.mac.retryLimit | int | -1 |
maximum number of retries per message, -1 means default |
| host.wlan.mac.cwMinData | int | -1 |
contention window for normal data frames, -1 means default |
| host.wlan.mac.cwMinBroadcast | int | -1 |
contention window for broadcast messages, -1 means default |
| host.wlan.mac.opMode | int | 2 |
1=b 2= g |
| host.wlan.mac.slotTime | double | 9us | |
| host.wlan.mac.basicBitrate | double | 2e6bps | |
| host.wlan.mac.AIFSN | double | 2.0 | |
| host.wlan.mac.mtu | int | 1500 | |
| host.wlan.mac.fixFSM | bool | false | |
| host.wlan.mac.PHY_HEADER_LENGTH | double | -1 |
if negative the code use 26 usec |
| host.wlan.mac.ForceBitRate | bool | false |
if true the mac force the bitrate to the physical layer |
| host.wlan.mac.autoBitrate | int | 0 |
autobitrate algorithm by default is disabled |
| host.wlan.mac.minSuccessThreshold | int | 10 |
parameters used by the autobitrate |
| host.wlan.mac.minTimerTimeout | int | 15 | |
| host.wlan.mac.timerTimeout | int | 15 | |
| host.wlan.mac.successThreshold | int | 10 | |
| host.wlan.mac.maxSuccessThreshold | int | 60 | |
| host.wlan.mac.successCoeff | double | 2.0 | |
| host.wlan.radio.TransmissionAntennaGainIndB | double | 0dB |
Transmission Antenna Gain |
| host.wlan.radio.ReceiveAntennaGainIndB | double | 0dB |
Receive Antenna Gain |
| host.wlan.radio.SystemLossFactor | double | 0dB |
System Loss of Hardware |
| host.wlan.radio.sigma | double | 1 |
LogNormalShadowingModel |
| host.wlan.radio.nak_m | double | 1 |
NakagamiModel |
| host.wlan.radio.KdB | double | 8 |
RiceModel |
| host.wlan.radio.TransmiterAntennaHigh | double | 1m |
Transmitter Antenna High |
| host.wlan.radio.ReceiverAntennaHigh | double | 1m |
Receiver Antenna High |
| host.wlan.radio.channelNumber | int | 0 |
channel identifier |
| host.wlan.radio.carrierFrequency | double | 2.4GHz | |
| host.wlan.radio.transmitterPower | double | 20mW |
power used for transmission of messages (in mW) |
| host.wlan.radio.bitrate | double |
(in bits/s) |
|
| host.wlan.radio.thermalNoise | double | -110dBm |
base noise level (dBm) |
| host.wlan.radio.pathLossAlpha | double | 2 |
used by the path loss calculation |
| host.wlan.radio.shadowingDeviation | double | 0dB |
used by the shadowing model calculation |
| host.wlan.radio.snirThreshold | double | 4dB |
if signal-noise ratio is below this threshold, frame is considered noise (in dB) |
| host.wlan.radio.sensitivity | double |
received signals with power below sensitivity are ignored |
|
| host.wlan.radio.berTableFile | string | "" | |
| host.wlan.radio.useBerClass | bool | false | |
| host.wlan.radio.PHY_HEADER_LENGTH | double | -1 |
must be the same that PHY_HEADER_LENGTH in the mac, double PHY_HEADER_LENGTH = default(-1), if negative the code use 26 usec |
| host.wlan.radio.phyOpMode | string | "g" |
1='b', 2='g' |
| host.wlan.radio.channelModel | string | "RAYLEIGH" |
RAYLEIGH or AWGN |
| host.wlan.radio.attenuationModel | string | "PathLossReceptionModel" |
Values "pathlost" or "tworay" |
| host.wlan.radio.drawCoverage | bool | true | |
| host.wlan.radio.refresCoverageInterval | double | 5s | |
| host.wlan.radio.usage_radio_idle | double | -1mA |
disable battery registration |
| host.wlan.radio.usage_radio_recv | double | -1mA |
disable battery registration |
| host.wlan.radio.usage_radio_sleep | double | -1mA |
disable battery registration |
| host.wlan.radio.usage_radio_send | double | -1mA |
disable battery registration |
| flatNetworkConfigurator.networkAddress | string | "192.168.0.0" |
network part of the address (see netmask parameter) |
| flatNetworkConfigurator.netmask | string | "255.255.0.0" |
host part of addresses are autoconfigured |
| socMovGen.mobType | string | "ECMM" |
three mobility models are supported, the CMM, the HCMM and the ECMM |
| socMovGen.totalSimulationTime | double | -1 |
sets the total simulation time |
| socMovGen.reconfigurationInterval | double | 10000 |
sets the reconfiguration interval |
| socMovGen.numberOfEpochs | int | 0 |
sets the number of the epochs |
| socMovGen.minHostSpeed | double | 1 |
sets lower bound of the speed of the hosts (in m/s) |
| socMovGen.maxHostSpeed | double | 10 |
sets upper bound of the speed of the hosts (in m/s) |
| socMovGen.connectionThreshold | double | 0.1 |
sets the connection threshold, for which a frienship is regarded |
| socMovGen.numberOfRows | int | 4 |
sets the number of rows of the simulation ground |
| socMovGen.numberOfColumns | int | 4 |
sets the number of columns of the simulation ground |
| socMovGen.radius | double | 100 |
sets the transmission range (in m) -- not so important |
| socMovGen.rewiringProb | double | 0.1 |
sets the rewiring probability during the model initialization |
| socMovGen.numberOfGroups | int | 10 |
sets the initial number of groups for the Caveman model |
| socMovGen.randSeed | int | 0 |
sets the seed of the Random Number Generator |
| socMovGen.numberOfTravellers | int | 0 |
sets the number of travelers |
| socMovGen.travellerSpeed | double | 10 |
sets the speed of the travelers |
| socMovGen.girvanNewmanOn | bool | false |
sets the Girvan-Newman algorithm on/off |
| socMovGen.deterministicOn | bool | true |
sets the deterministic selection of the nodes on/off. If true the selection is deterministic, if false is probabilistic |
| socMovGen.generateXML | bool | true |
generates XML |
| socMovGen.readAdjacency | bool | false |
indicates whether an input adjacency file will be used |
| socMovGen.outputAdjacency | bool | false |
sets the output adjacency file generation on/off |
| socMovGen.pauseTime | int | 0 |
sets the maximum pause time duration |
| socMovGen.inputFile | string | "" |
sets the the name of the input adjacency file |
| socMovGen.colocationTracesOn | bool | false |
sets the colocation traces on/off |
| socMovGen.communitiesTracesOn | bool | false |
sets the communities traces on/off |
// // <b> The ECMM Testing Ground </b> // // This network include all the necessary modules to create a simulation // scenario, inlcuding the CMM, HCMM and ECMM models. The hosts regarded // are simple MANET hosts with mobility defined by the omnetpp.ini file, // which in this case in the CommunityMov. The DTApp is used to generate // the network traffic, while the tracefile required is generated by the // socMovGen module. // // @see socMovGen, CommunityMov, DTApp // // @author Nikolaos Vastardis // network Testing_ground { parameters: double playgroundSizeX; double playgroundSizeY; int numHosts; @display("bgl=2;bgb=500,500;bgg=333;bgi=,f"); submodules: channelcontrol: ChannelControl { playgroundSizeX = playgroundSizeX; playgroundSizeY = playgroundSizeY; @display("p=60,47"); } host[numHosts]: MobileManetRoutingHost { @display("p=252,250,r=200"); } flatNetworkConfigurator: FlatNetworkConfigurator { @display("p=200,48;is=s"); } socMovGen: socMovGen { @display("p=322,48"); } }