The Epidemic DYMO
The Epidemic DYMO is a simple extention of the original DYMO MANET routing protocol that enables opportunistic routing as well. It is based on the SAORSBase system and extends the necessary hook functions. The methods used follow a epidemic forwarding technique. This method achieves the highest possible delivery in the current network configuration, with the tradeoff of very high traffic and high network congestion. This can cause multiple packet collisions, even in sparse MANETs.
See also: SAORSBase, SDDYMO, DTDYMO, RDYMO
Author:: Nikolaos Vastardis
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
| Name | Type | Description |
|---|---|---|
| SAORSBase | simple module |
The Socially-Aware Opportunistic Routing System Base |
| Name | Type | Default value | Description |
|---|---|---|---|
| ExcludedInterfaces | string | "" |
list of interfaces excluded by the manet routing protocol |
| interfaces | string | "prefix(wlan)" |
list of routing interfaces were the routing protocol is active, the prefix(namei) indicate all the interfaces with "namei" in his names |
| usetManetLabelRouting | bool | true |
the routing entries are marked IPRoute::MANET, this label force an exact search with independent of the mask |
| useICMP | bool | true |
By default the module use the ICMP but it's necessary to activate with the method setSendToICMP(true) |
| setICMPSourceAddress | bool | false |
set the datagram source address if the address is undefined to the address of node This parameter allow that the ICMP messages could arrive to the source applications |
| coreDebug | bool | false |
debug switch for the core framework |
| RESPONSIBLE_ADDRESSES_PREFIX | int | -1 |
netmask of network this DYMO router is responsible for, -1 for self only |
| ROUTE_AGE_MIN_TIMEOUT | double | 1s |
string DYMO_INTERFACES = default("wlan"); // list of interfaces to run DYMO on, separated by a single space character string AUTOASSIGN_ADDRESS_BASE = default("10.0.0.0"); // start of address range from which to automatically assign an address to the DYMO_INTERFACES |
| ROUTE_AGE_MAX_TIMEOUT | double | 60s | |
| ROUTE_NEW_TIMEOUT | double | 5s | |
| ROUTE_USED_TIMEOUT | double | 5s | |
| ROUTE_DELETE_TIMEOUT | double | 10s | |
| MIN_HOPLIMIT | int | 5 |
RREQs are first tried with this MsgHdr.HopLimit |
| MAX_HOPLIMIT | int | 10 |
MsgHdr.HopLimit for last RREQ, as well as other DYMO control messages |
| RREQ_RATE_LIMIT | double | 10 |
maximum average RREQs per second (token bucket) |
| RREQ_BURST_LIMIT | int | 3 |
maximum RREQs in a burst (token bucket) |
| RREQ_WAIT_TIME | double | 2s |
how log to wait for a Route Request |
| RREQ_TRIES | int | 3 |
how many times to retry a routing request before declaring the node unreachable |
| BUFFER_SIZE_PACKETS | int | 50 |
maximum queue size in packets, -1 for no limit |
| BUFFER_SIZE_BYTES | int | 75000B |
maximum queue size in bytes, -1 for no limit |
| BEACON_TIMEOUT | double | 30s | |
| DTRT_DELETE_TIMEOUT | double | 5000s | |
| DLT_OUTSTANDINGRREQ_TIMEOUT | double | 3s | |
| NUM_COPIES | int | 1 | |
| SEND_COPIES | int | 0 | |
| SEND_COPIES_PC | int | 0 | |
| EPIDEMIC | bool | false |
| Name | Value | Description |
|---|---|---|
| class | EPDYMO |
| Name | Direction | Size | Description |
|---|---|---|---|
| from_ip | input | ||
| to_ip | output |
| Name | Title | Source | Record | Unit | Interpolation Mode |
|---|---|---|---|---|---|
| RcvdDTMsgs | RcvdDTMsgs | RcvdDTMsgs | vector | none |
// // <b> The Epidemic DYMO </b> // // The Epidemic DYMO is a simple extention of the original DYMO MANET // routing protocol that enables opportunistic routing as well. It is // based on the SAORSBase system and extends the necessary hook // functions. The methods used follow a epidemic forwarding technique. // This method achieves the highest possible delivery in the current // network configuration, with the tradeoff of very high traffic and // high network congestion. This can cause multiple packet collisions, // even in sparse MANETs. // // @see SAORSBase, SDDYMO, DTDYMO, RDYMO // // @author: Nikolaos Vastardis // simple EPDYMO extends SAORSBase { parameters: @class(EPDYMO); gates: }