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