Simple Module AdaptiveProbabilisticBroadcast

Package: org.mixim.modules.netw
File: modules/netw/AdaptiveProbabilisticBroadcast.ned

C++ definition

Multi-hop ad-hoc data dissemination protocol based on probabilistic broadcast, with adaptive parameters.

This protocol performs network-level broadcast using a probabilistic mechanism. This method reduces the number of packets sent on the channel (reducing the broadcast storm problem) at the risk of some nodes not receiving the data. It is particularly interesting for mobile networks. This version of probabilistic broadcast automatically adapts transmission probabilities depending on the estimated number of neighbours. timeInNeighboursTable is its unique parameter, and sets the time during which the node remembers a neighbour. It is particularly important in mobile networks: in that case, the faster the nodes, the smaller the timeInNeighboursTable parameter.

AdaptiveProbabilisticBroadcast

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Extends:

ProbabilisticBroadcast (simple module)

Multi-hop ad-hoc data dissemination protocol based on probabilistic broadcast.

Parameters:

Name Type Default value Description
notAffectedByHostState bool false
coreDebug bool

debug switch for core framework

stats bool

stats switch

headerLength double

length of the network packet header (in bits)

debug bool false

debug and trace switches

trace bool false
bcperiod double 2 s

period between two probabilistic broadcast attempts

beta double 0.8

probability of broadcast for each attempt

maxNbBcast double 1

maximal number of broadcast attempts for each packet.

maxFirstBcastBackoff double 1 s

maximal back-off before first broadcast attempt [seconds]. if don't want to use this parameter, simply set it to a value that is greater than bcperiod.

timeToLive double 10 s
timeInQueueAfterDeath double 60 s

How many seconds the message should be kept in queue after its died. That way the message is known if the node receives one of its copy that isn't dead because of TTL de-synchronization due to MAC backoff, propagation delay and clock drift.

timeInNeighboursTable double 60 s

Properties:

Name Value Description
class AdaptiveProbabilisticBroadcast

Gates:

Name Direction Size Description
upperGateIn input

from upper layer

upperGateOut output

to uppe layer

upperControlIn input

control from upper layer

upperControlOut output

control to upper layer

lowerGateIn input

from lower layer

lowerGateOut output

to lower layer

lowerControlIn input

control from lower layer

lowerControlOut output

control to lower layer

Source code:

// Multi-hop ad-hoc data dissemination protocol based on probabilistic broadcast, with adaptive parameters.
//
// This protocol performs network-level broadcast using a probabilistic mechanism.
// This method reduces the number of packets sent on the channel (reducing the
// broadcast storm problem) at the risk of some nodes not receiving the data.
// It is particularly interesting for mobile networks.
// This version of probabilistic broadcast automatically adapts transmission
// probabilities depending on the estimated number of neighbours.
// timeInNeighboursTable is its unique parameter, and sets the time
// during which the node remembers a neighbour. It is particularly important
// in mobile networks: in that case, the faster the nodes, the smaller the
// timeInNeighboursTable parameter.
simple AdaptiveProbabilisticBroadcast extends ProbabilisticBroadcast
{
    parameters:
        @class(AdaptiveProbabilisticBroadcast);
        double timeInNeighboursTable @unit(s) = default(60 s);
}