Network Delay

Package: nesg.netattacks.simulations.AttackScenarios.DelayAttackScenario
File: simulations/AttackScenarios/DelayAttackScenario/Delay.ned

(no description)

NA_AdhocHost NA_AttackerAdhocHost IPv4NetworkConfigurator ChannelControl

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
numHosts int
numDelayers int
numFlows int

Properties:

Name Value Description
isNetwork
display bgb=1000,1000,grey75

Unassigned submodule parameters:

Name Type Default value Description
node.networkLayer.ip.procDelay double 0s
node.networkLayer.ip.timeToLive int 32
node.networkLayer.ip.multicastTimeToLive int 32
node.networkLayer.ip.fragmentTimeout double 60s
node.networkLayer.ip.forceBroadcast bool false
node.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IPv4 address

node.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IPv4 address

node.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

node.networkLayer.arp.globalARP bool false
node.routingTable.routerId string "auto"

for routers, the router id using IPv4 address dotted notation; specify "auto" to select the highest interface address; should be left empty ("") for hosts

node.routingTable.forwardMulticast bool false

turns multicast forwarding on/off

node.interfaceTable.displayAddresses bool true

whether to display IP addresses on links

node.pcapRecorder.verbose bool false

whether to log packets on the module output

node.pcapRecorder.pcapFile string ""

the PCAP file to be written

node.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

node.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

node.pcapRecorder.moduleNamePatterns string "wlan[*] eth[*] ppp[*] ext[*]"

space-separated list of sibling module names to listen on

node.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

node.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

attacker.networkLayer.ip.procDelay double 0s
attacker.networkLayer.ip.timeToLive int 32
attacker.networkLayer.ip.multicastTimeToLive int 32
attacker.networkLayer.ip.fragmentTimeout double 60s
attacker.networkLayer.ip.forceBroadcast bool false
attacker.networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IPv4 address

attacker.networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IPv4 address

attacker.networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

attacker.networkLayer.arp.globalARP bool false
attacker.routingTable.routerId string "auto"

for routers, the router id using IPv4 address dotted notation; specify "auto" to select the highest interface address; should be left empty ("") for hosts

attacker.routingTable.forwardMulticast bool false

turns multicast forwarding on/off

attacker.interfaceTable.displayAddresses bool true

whether to display IP addresses on links

attacker.pcapRecorder.verbose bool false

whether to log packets on the module output

attacker.pcapRecorder.pcapFile string ""

the PCAP file to be written

attacker.pcapRecorder.snaplen int 65535

maximum number of bytes to record per packet

attacker.pcapRecorder.dumpBadFrames bool true

enable dump of frames with hasBitError

attacker.pcapRecorder.moduleNamePatterns string "wlan[*] eth[*] ppp[*] ext[*]"

space-separated list of sibling module names to listen on

attacker.pcapRecorder.sendingSignalNames string "packetSentToLower"

space-separated list of outbound packet signals to subscribe to

attacker.pcapRecorder.receivingSignalNames string "packetReceivedFromLower"

space-separated list of inbound packet signals to subscribe to

attacker.droppingAttack.active bool false

Indicates if this attack is active or not in the node

attacker.droppingAttack.startTime double 0s

Timestamp to start the attack

attacker.droppingAttack.endTime double 0s

Time instant at which the attack ends, 0 means that the attack will not end during the simulation.

attacker.droppingAttack.droppingAttackProbability double 0

Probability of dropping a packet. Range [0,1].

attacker.delayAttack.active bool false

Indicates if this attack is active or not in the node

attacker.delayAttack.startTime double 0s

Timestamp to start the attack

attacker.delayAttack.endTime double 0s

Time instant at which the attack ends, 0 means that the attack will not end during the simulation.

attacker.delayAttack.delayAttackProbability double 0

Probability of delaying a packet. Range [0,1].

attacker.delayAttack.delayAttackValue double normal(1s, 0.1s)

Random delay time

attacker.sinkholeAttack.active bool false

Indicates if this attack is active or not in the node

attacker.sinkholeAttack.startTime double 0s

Timestamp to start the attack

attacker.sinkholeAttack.endTime double 0s

Time instant at which the attack ends, 0 means that the attack will not end during the simulation.

attacker.sinkholeAttack.sinkholeAttackProbability double 0

Probability of answering a RREQ message with a fake route. Range [0,1].

attacker.sinkholeAttack.sinkOnlyWhenRouteInTable bool false

TRUE: Send fake answers to RREQ messages only when requested routes are really in routing table of sinkhole node. FALSE: Send fake answers for any RREQ messages arriving at the sinkhole node.

attacker.sinkholeAttack.seqnoAdded double uniform(20, 30)

Fake sequence number generated.

attacker.sinkholeAttack.numHops int 1

Fake number of hops.

configurator.config xml xml("")

XML configuration parameters for IP address assignment and adding manual routes

configurator.assignAddresses bool true

assign IP addresses to all interfaces in the network

configurator.assignDisjunctSubnetAddresses bool true

avoid using the same address prefix and netmask on different links when assigning IP addresses to interfaces

configurator.addStaticRoutes bool true

add static routes to the routing tables of all nodes to route to all destination interfaces (only where applicable; turn off when config file contains manual routes)

configurator.addDefaultRoutes bool true

add default routes if all routes from a source node go through the same gateway (used only if addStaticRoutes is true)

configurator.addSubnetRoutes bool true

add subnet routes instead of destination interface routes (only where applicable; used only if addStaticRoutes is true)

configurator.optimizeRoutes bool true

optimize routing tables by merging routes, the resulting routing table might route more packets than the original (used only if addStaticRoutes is true)

configurator.dumpTopology bool false

print extracted network topology to the module output

configurator.dumpAddresses bool false

print assigned IP addresses for all interfaces to the module output

configurator.dumpRoutes bool false

print configured and optimized routing tables for all nodes to the module output

configurator.dumpConfig string ""

write configuration into the given config file that can be fed back to speed up subsequent runs (network configurations)

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

base carrier frequency of all the channels (in Hz)

channelControl.numChannels int 1

number of radio channels (frequencies)

channelControl.propagationModel string "FreeSpaceModel"

Source code:

network Delay
{
    parameters:
        int numHosts;
        int numDelayers;
        int numFlows;
        @display("bgb=1000,1000,grey75");
    submodules:
        node[numHosts]: NA_AdhocHost {
            @display("p=300,150");
        }
        attacker[numDelayers]: NA_AttackerAdhocHost {
            @display("p=500,150");
        }
        configurator: IPv4NetworkConfigurator {
            @display("p=80,20");
        }
        channelControl: ChannelControl {
            @display("p=80,70;i=misc/sun");
        }
}