Package: inet.networklayer.probabilistic
AdaptiveProbabilisticBroadcast
simple moduleMulti-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.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
Name | Type | Description |
---|---|---|
ProbabilisticBroadcast | simple module |
Multi-hop ad-hoc data dissemination protocol based on probabilistic broadcast. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
interfaceTableModule | string | ||
headerLength | int | 96b |
length of the network packet header (in bits) |
bcperiod | double | 2 s |
period between two probabilistic broadcast attempts |
beta | double | 0.8 |
probability of broadcast for each attempt |
maxNbBcast | int | 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 |
---|---|---|
display | i=block/fork | |
class | AdaptiveProbabilisticBroadcast |
Gates
Name | Direction | Size | Description |
---|---|---|---|
transportIn | input | ||
transportOut | output | ||
queueIn | input | ||
queueOut | output |
Signals
Name | Type | Unit |
---|---|---|
packetReceivedFromUpper | cPacket | |
packetReceivedFromLower | cPacket | |
packetDropped | cPacket | |
packetSentToLower | cPacket | |
packetSentToUpper | cPacket |
Scheduled messages (observed)
msg | kind | ctrl | tags | msgname | context |
---|---|---|---|---|---|
omnetpp::cMessage | 0 | broadcastTimer | |||
omnetpp::cMessage | 2 | removeEvent | filled |
Direct method calls (observed)
call to | function | info |
---|---|---|
MessageDispatcher | inet::MessageDispatcher::arrived | arrived |
MessageDispatcher | inet::MessageDispatcher::handleRegisterProtocol | handleRegisterProtocol |
MessageDispatcher | inet::MessageDispatcher::handleRegisterService | handleRegisterService |
InterfaceTable | inet::InterfaceTable::findFirstNonLoopbackInterface | findFirstNonLoopbackInterface |
Called methods (observed)
function | info | call from |
---|---|---|
inet::AdaptiveProbabilisticBroadcast::handleRegisterProtocol | handleRegisterProtocol | MessageDispatcher |
inet::AdaptiveProbabilisticBroadcast::handleRegisterService | handleRegisterService | MessageDispatcher |
Incoming messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
queueIn | Packet | 0 | EthernetEncapsulation | DispatchProtocolReq, InterfaceInd, MacAddressInd, PacketProtocolTag | |
transportIn | Packet | 0 | PingApp | DispatchProtocolReq, L3AddressReq, PacketProtocolTag, SocketReq | |
transportIn | Packet | 0 | EchoProtocol | DispatchProtocolReq, L3AddressReq, PacketProtocolTag | |
transportIn | Request | 1 | L3SocketBindCommand | PingApp | DispatchProtocolReq, SocketReq |
Outgoing messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
queueOut | Packet | 0 | EthernetEncapsulation | DispatchProtocolInd, DispatchProtocolReq, InterfaceReq, MacAddressReq, PacketProtocolTag, InterfaceInd?, L3AddressReq?, MacAddressInd?, SocketReq? | |
transportOut | Packet | 0 | PingApp | DispatchProtocolInd, DispatchProtocolReq, InterfaceInd, L3AddressInd, MacAddressInd, MacAddressReq, NetworkProtocolInd, PacketProtocolTag, SocketInd | |
transportOut | Packet | 0 | EchoProtocol | DispatchProtocolInd, DispatchProtocolReq, InterfaceInd, L3AddressInd, MacAddressInd, MacAddressReq, NetworkProtocolInd, PacketProtocolTag |
Packet operations (observed)
chunkType | packetAction |
---|---|
trim | |
ProbabilisticBroadcastHeader | insertAtFront, peekAtFront, popAtFront, removeAtFront |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
DispatchProtocolInd | addTagIfAbsent |
DispatchProtocolReq | addTagIfAbsent |
InterfaceReq | addTagIfAbsent |
L3AddressInd | addTagIfAbsent, getTag |
MacAddressInd | getTag |
MacAddressReq | addTagIfAbsent |
NetworkProtocolInd | addTagIfAbsent |
PacketProtocolTag | addTagIfAbsent, getTag |
SocketInd | addTagIfAbsent |
SocketReq | getTag |
Tagging operations (observed)
tagType | tagAction |
---|---|
inet::Ipv4InterfaceData | findTag |
inet::Ipv6InterfaceData | findTag |
inet::NextHopInterfaceData | findTag |
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); }File: src/inet/networklayer/probabilistic/AdaptiveProbabilisticBroadcast.ned