Package: inet.networklayer.flood
Flood
simple moduleA simple flooding protocol for network-level broadcast.
This implementation uses plain flooding, i.e. it "remembers" (stores) already broadcasted messages in a list and does not rebroadcast them again, if it gets another copy of that message.
The maximum number of entries for that list can be defined in the .ini file (@ref bcMaxEntries) as well as the time after which an entry is deleted (@ref bcDelTime).
If you prefere a memory-less version you should set to false the <verbatim>plainFlooding</verbatim> bool parameter.
Author: Daniel Willkomm
ported to Mixim 2.0 by Theodoros Kapourniotis
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
Name | Type | Description |
---|---|---|
NetworkProtocolBase | simple module |
Module base for different network protocols. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
interfaceTableModule | string | ||
headerLength | int | 100b |
length of the network packet header (in bits) |
plainFlooding | bool | true |
flag whether to use plain flooding |
bcMaxEntries | int | 100 |
Max number of entries in the list of already broadcasted messages |
bcDelTime | double | 100 s |
Time after which an entry for an already broadcasted msg can be deleted |
defaultTtl | int | 10 |
Default time-to-live (ttl) used for this module expressed in number of hops. |
Properties
Name | Value | Description |
---|---|---|
display | i=block/fork | |
class | Flood |
Gates
Name | Direction | Size | Description |
---|---|---|---|
upperLayerIn [ ] | input | ||
upperLayerOut [ ] | output | ||
lowerLayerIn [ ] | input | ||
lowerLayerOut [ ] | output |
Signals
Name | Type | Unit |
---|---|---|
packetReceivedFromUpper | cPacket | |
packetReceivedFromLower | cPacket | |
packetFromLowerDropped | cPacket | |
packetFromUpperDropped | cPacket | |
packetSentToLower | cPacket | |
packetSentToUpper | cPacket |
Source code
// // A simple flooding protocol for network-level broadcast. // // This implementation uses plain flooding, i.e. it "remembers" // (stores) already broadcasted messages in a list and does not // rebroadcast them again, if it gets another copy of that message. // // The maximum number of entries for that list can be defined in the // .ini file (@ref bcMaxEntries) as well as the time after which an entry // is deleted (@ref bcDelTime). // // If you prefere a memory-less version you should set to false the // <verbatim>plainFlooding</verbatim> bool parameter. // // @author Daniel Willkomm // // ported to Mixim 2.0 by Theodoros Kapourniotis // simple Flood extends NetworkProtocolBase like INetworkProtocol { parameters: @display("i=block/fork"); int headerLength @unit(bit) = default(100b); // length of the network packet header (in bits) bool plainFlooding = default(true); // flag whether to use plain flooding // Max number of entries in the list of already broadcasted messages int bcMaxEntries = default(100); // Time after which an entry for an already broadcasted msg can be deleted double bcDelTime @unit(s) = default(100 s); int defaultTtl = default(10); // Default time-to-live (ttl) used for this module expressed in number of hops. @class(Flood); }File: src/inet/networklayer/flood/Flood.ned