The SimpleUnderlay ned-file
See also: SimpleUnderlayConfigurator
Author: Stephan Krause, Bernhard Heep
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.
Name | Value | Description |
---|---|---|
isNetwork |
Name | Type | Default value | Description |
---|---|---|---|
underlayConfigurator.terminalTypes | string |
list of terminal types |
|
underlayConfigurator.churnGeneratorTypes | string |
a list of churn generators to be used |
|
underlayConfigurator.transitionTime | double |
time to wait before measuring after init phase is finished |
|
underlayConfigurator.measurementTime | double |
duration of the simulation after init and transition phase |
|
underlayConfigurator.gracefulLeaveDelay | double |
time between prekill and removal from overlay |
|
underlayConfigurator.gracefulLeaveProbability | double |
probability of gracefull leave |
|
underlayConfigurator.fieldSize | double |
maximum x/y-coordinate for nodes |
|
underlayConfigurator.nodeCoordinateSource | string |
name of xml-file with coordinates of nodes |
|
underlayConfigurator.sendQueueLength | int |
send-queue length in bytes (0 = infinite) |
|
underlayConfigurator.fixedNodePositions | bool |
put nodes on fixed coordiantes in playground |
|
underlayConfigurator.useIPv6Addresses | bool | ||
churnGenerator.targetOverlayTerminalNum | int |
number of nodes after init phase |
|
churnGenerator.initPhaseCreationInterval | double |
node creation interval in init phase |
|
churnGenerator.noChurnThreshold | double |
if the lifetimeMean of a specific churn generator exceeds this, NoChurn is used instead |
|
churnGenerator.channelTypes | string |
used (tx) access technologies (from common/channels.ned) |
|
churnGenerator.channelTypesRx | string |
used (rx) access technologies (from common/channels.ned) |
|
globalObserver.globalNodeList.maliciousNodeProbability | double |
probability for a node to be malicious on creation |
|
globalObserver.globalNodeList.maliciousNodeChange | bool |
dynamically change number of malicious nodes |
|
globalObserver.globalNodeList.maliciousNodeChangeStartTime | double |
simTime at which nodes begin to become malicious |
|
globalObserver.globalNodeList.maliciousNodeChangeRate | double |
number of nodes to change to malicious compared to all nodes |
|
globalObserver.globalNodeList.maliciousNodeChangeInterval | double |
time between two node changes to malicious |
|
globalObserver.globalNodeList.maliciousNodeChangeStartValue | double |
minimum amount of malicious nodes in the peerSet |
|
globalObserver.globalNodeList.maliciousNodeChangeStopValue | double |
maximum amount of malicious nodes in the peerSet |
|
globalObserver.globalNodeList.maxNumberOfKeys | int |
maximum number of overlay keys the bootstrap oracle handles |
|
globalObserver.globalNodeList.keyProbability | double |
probability of keys to be owned by nodes |
|
globalObserver.globalParameters.rpcUdpTimeout | double |
default timeout value for direct RPCs |
|
globalObserver.globalParameters.rpcKeyTimeout | double |
default timeout value for routed RPCs |
|
globalObserver.globalParameters.printStateToStdOut | bool |
print overlay ready messages to std::cout |
|
globalObserver.globalParameters.topologyAdaptation | bool |
turn on topologyAdaptation (for demonstrator) |
|
globalObserver.globalTraceManager.traceFile | string |
file name of the trace file |
|
globalObserver.globalStatistics.outputMinMax | bool |
enable output of minimum and maximum for scalars |
|
globalObserver.globalStatistics.outputStdDev | bool |
enable output of standard deviation for scalars |
|
globalObserver.globalStatistics.measureNetwInitPhase | bool |
fetch statistics in init phase? |
|
globalObserver.globalStatistics.globalStatTimerInterval | double |
interval length of periodic statistic timer |
|
overlayTerminal.udp.constantDelay | double |
constant delay between two peers |
|
overlayTerminal.udp.useCoordinateBasedDelay | bool |
delay should be calculated from euklidean distance between two peers |
|
overlayTerminal.udp.delayFaultType | string |
augment coordinate based delays with a realistic error, according to "Network Coordinates in the Wild", Figure 7 possible values: empty, "live_all", "live_planetlab", "simulation" |
|
overlayTerminal.udp.jitter | double |
average amount of jitter in % |
|
overlayTerminal.udp.enableAccessRouterTxQueue | bool |
model the tx queue of the access router of an destination node |
|
overlayTerminal.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) |
overlayTerminal.tcp.delayedAcksEnabled | bool | false |
delayed ACK algorithm (RFC 1122) enabled/disabled |
overlayTerminal.tcp.nagleEnabled | bool | true |
Nagle's algorithm (RFC 896) enabled/disabled |
overlayTerminal.tcp.limitedTransmitEnabled | bool | false |
Limited Transmit algorithm (RFC 3042) enabled/disabled (can be used for TCPReno/TCPTahoe/TCPNewReno/TCPNoCongestionControl) |
overlayTerminal.tcp.increasedIWEnabled | bool | false |
Increased Initial Window (RFC 3390) enabled/disabled |
overlayTerminal.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) |
overlayTerminal.tcp.windowScalingSupport | bool | false |
Window Scale (RFC 1323) support (header option) (WS will be enabled for a connection if both endpoints support it) |
overlayTerminal.tcp.timestampSupport | bool | false |
Timestamps (RFC 1323) support (header option) (TS will be enabled for a connection if both endpoints support it) |
overlayTerminal.tcp.mss | int | 536 |
Maximum Segment Size (RFC 793) (header option) |
overlayTerminal.tcp.tcpAlgorithmClass | string | "TCPReno" |
TCPReno/TCPTahoe/TCPNewReno/TCPNoCongestionControl/DumbTCP |
overlayTerminal.tcp.sendQueueClass | string | "TCPVirtualDataSendQueue" |
TCPVirtualDataSendQueue/TCPMsgBasedSendQueue |
overlayTerminal.tcp.receiveQueueClass | string | "TCPVirtualDataRcvQueue" |
TCPVirtualDataRcvQueue/TCPMsgBasedRcvQueue |
overlayTerminal.tcp.recordStats | bool | true |
recording of seqNum etc. into output vectors enabled/disabled |
overlayTerminal.tcp.constantDelay | double |
constant delay between two peers |
|
overlayTerminal.tcp.useCoordinateBasedDelay | bool |
delay should be calculated from euklidean distance between two peers |
|
overlayTerminal.tcp.delayFaultType | string |
augment coordinate based delays with a realistic error, according to "Network Coordinates in the Wild", Figure 7 possible values: empty, "live_all", "live_planetlab", "simulation" |
|
overlayTerminal.tcp.jitter | double |
average amount of jitter in % |
|
overlayTerminal.cryptoModule.keyFile | string |
the name of the file containing the public key pair used to sign messages |
|
overlayTerminal.neighborCache.rpcUdpTimeout | double |
default timeout value for direct RPCs |
|
overlayTerminal.neighborCache.rpcKeyTimeout | double |
default timeout value for routed RPCs |
|
overlayTerminal.neighborCache.optimizeTimeouts | bool |
calculate timeouts from measured RTTs and network coordinates |
|
overlayTerminal.neighborCache.rpcExponentialBackoff | bool |
if true, doubles the timeout for every retransmission |
|
overlayTerminal.neighborCache.debugOutput | bool |
enable debug output |
|
overlayTerminal.neighborCache.enableNeighborCache | bool |
use neighbor cache for reducing ping traffic? |
|
overlayTerminal.neighborCache.rttExpirationTime | double |
expiration of the validity of the measured rtts |
|
overlayTerminal.neighborCache.maxSize | double |
maximum size of the cache |
|
overlayTerminal.neighborCache.rttHistory | int | ||
overlayTerminal.neighborCache.timeoutAccuracyLimit | double | ||
overlayTerminal.neighborCache.defaultQueryType | string | ||
overlayTerminal.neighborCache.defaultQueryTypeI | string | ||
overlayTerminal.neighborCache.defaultQueryTypeQ | string | ||
overlayTerminal.neighborCache.doDiscovery | bool | ||
overlayTerminal.neighborCache.collectClosestNodes | int | ||
overlayTerminal.neighborCache.ncsType | string | ||
overlayTerminal.neighborCache.useNcsForTimeout | bool | ||
overlayTerminal.neighborCache.ncsPiggybackOwnCoords | bool | ||
overlayTerminal.neighborCache.discoveryModeNumCloseNodes | int |
discovery mode settings |
|
overlayTerminal.neighborCache.discoveryModeNumSpreadedNodes | int | ||
overlayTerminal.neighborCache.discoveryModeMaxSteps | int | ||
overlayTerminal.neighborCache.discoveryModeSpreadedSteps | int | ||
overlayTerminal.neighborCache.gnpDimensions | int |
gnp settings |
|
overlayTerminal.neighborCache.gnpCoordCalcRuns | int | ||
overlayTerminal.neighborCache.gnpLandmarkTimeout | double | ||
overlayTerminal.neighborCache.npsMaxLayer | int |
nps settings |
|
overlayTerminal.neighborCache.vivaldiShowPosition | bool |
vivaldi settings |
|
overlayTerminal.neighborCache.vivaldiErrorConst | double | ||
overlayTerminal.neighborCache.vivaldiCoordConst | double | ||
overlayTerminal.neighborCache.vivaldiDimConst | double | ||
overlayTerminal.neighborCache.vivaldiEnableHeightVector | bool | ||
overlayTerminal.neighborCache.svivaldiLossConst | double |
svivaldi settings |
|
overlayTerminal.neighborCache.svivaldiLossResetLimit | double | ||
overlayTerminal.neighborCache.simpleNcsDelayFaultType | string |
simpleNcs settings |
|
overlayTerminal.neighborCache.treeMgmtEnableTreeManagement | bool |
Tree Management Settings |
|
overlayTerminal.neighborCache.treeMgmtBuildInterval | double |
the interval to check the childNodeMap |
|
overlayTerminal.neighborCache.treeMgmtChildrenTimeOut | double |
after this timeout an alive check ping is send |
|
overlayTerminal.neighborCache.gvbEnableGlobalViewBuilder | bool |
Global View Builder Settings |
|
overlayTerminal.neighborCache.gvbCoordSendInterval | double |
the interval to send the coordinates data |
|
overlayTerminal.neighborCache.gvbOnlyAcceptCompleteCCD | bool | ||
overlayTerminal.neighborCache.gvbSendStrategy | string |
the send strategy to use. (sendAll|simplifyCoords|removeRandom|removeInaccurate|regions|treeTest) |
|
overlayTerminal.neighborCache.gvbStrategyRemoveCoordsMode | string |
strategy mode (percentage|limitCoords|limitTraffic) |
|
overlayTerminal.neighborCache.gvbStrategyRemoveCoordsPercentage | int | ||
overlayTerminal.neighborCache.gvbStrategyRemoveCoordsCoordsLimit | int | ||
overlayTerminal.neighborCache.gvbStrategyRemoveCoordsTrafficLimit | int | ||
overlayTerminal.neighborCache.gvbStrategyRegionsSizePerDimension | int | ||
overlayTerminal.neighborCache.gvbStrategyRegionsMaxSpread | int | ||
overlayTerminal.neighborCache.gvbStrategySimplifyCoordsFactor | int | ||
overlayTerminal.neighborCache.gvbC2AParameter | string |
parameterstring to append to c2a.rb call |
|
overlayTerminal.neighborCache.gvbDistributeGlobalView | bool |
create areas and distribute the globalView to all nodes |
|
overlayTerminal.bootstrapList.rpcUdpTimeout | double |
default timeout value for direct RPCs |
|
overlayTerminal.bootstrapList.rpcKeyTimeout | double |
default timeout value for routed RPCs |
|
overlayTerminal.bootstrapList.optimizeTimeouts | bool |
calculate timeouts from measured RTTs and network coordinates |
|
overlayTerminal.bootstrapList.rpcExponentialBackoff | bool |
if true, doubles the timeout for every retransmission |
|
overlayTerminal.bootstrapList.debugOutput | bool |
enable debug output |
|
overlayTerminal.bootstrapList.mergeOverlayPartitions | bool |
if true, detect and merge overlay partitions |
|
overlayTerminal.bootstrapList.maintainList | bool |
maintain a list of bootstrap candidates and check them periodically |
// // The SimpleUnderlay ned-file @see SimpleUnderlayConfigurator // // @author Stephan Krause, Bernhard Heep // network SimpleUnderlayNetwork { parameters: //@display("bgb=4000,4000"); // uncomment for large canvas submodules: underlayConfigurator: SimpleUnderlayConfigurator { @display("p=70,130"); } churnGenerator[0]: ChurnGenerator { @display("p=70,210,column"); } globalObserver: GlobalObserver { @display("p=70,50"); } overlayTerminal[0]: SimpleOverlayHost { @dynamic; } }