Network Testing_ground

Package: ECMM.simulations
File: simulations/Testing_ground.ned

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

ChannelControl MobileManetRoutingHost FlatNetworkConfigurator socMovGen

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Parameters:

Name Type Default value Description
playgroundSizeX double
playgroundSizeY double
numHosts int

Properties:

Name Value Description
isNetwork
display bgl=2;bgb=500,500;bgg=333;bgi=,f

Unassigned submodule parameters:

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

Source code:

//
// <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");
        }
}