Dymo¶
Package: inet.routing.dymo
simple module Dymo
Provides Dynamic MANET On-demand (Dymo also known as AODVv2) Routing based on the IETF draft at http://tools.ietf.org/html/draft-ietf-manet-dymo-24.
Module parameters are copied from the IETF draft and renamed for consistency with INET naming conventions. Some parameters are not yet implemented.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
compound module |
A mobile node with the Dynamic MANET On-demand (DYMO) routing protocol. Extends AdhocHost by adding the DYMO routing protocol module. |
Extends¶
Name |
Type |
Description |
|---|---|---|
simple module |
Base module for all INET simple modules. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
displayStringTextFormat |
string |
“” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
interfaceTableModule |
string |
The path to the InterfaceTable module |
|
routingTableModule |
string |
absPath(“^.ipv4.routingTable”) |
|
networkProtocolModule |
string |
absPath(“^.ipv4.ip”) |
|
clientAddresses |
string |
“10.10.0.0/24 10.20.0.0” |
CLIENT_ADDRESSES |
useMulticastRREP |
bool |
false |
USE_MULTICAST_RREP |
interfaces |
string |
“*” |
AODVv2_INTERFACES |
activeInterval |
double |
5s |
ACTIVE_INTERVAL |
maxIdleTime |
double |
200s |
MAX_IDLETIME |
maxSequenceNumberLifetime |
double |
300s |
MAX_SEQNUM_LIFETIME |
routeRREQWaitTime |
double |
2s |
ROUTE_RREQ_WAIT_TIME |
rreqHolddownTime |
double |
10s |
RREQ_HOLDDOWN_TIME |
maxHopCount |
int |
20 |
MAX_HOPCOUNT |
discoveryAttemptsMax |
int |
3 |
DISCOVERY_ATTEMPTS_MAX |
appendInformation |
bool |
true |
APPEND_INFORMATION; |
bufferSizePackets |
int |
-1 |
BUFFER_SIZE_PACKETS |
bufferSizeBytes |
int |
-1B |
BUFFER_SIZE_BYTES |
maxJitter |
double |
10ms |
See IETF RFC5148 (Jitter Considerations in MANET) |
sendIntermediateRREP |
bool |
true |
|
minHopLimit |
int |
5 |
|
maxHopLimit |
int |
10 |
Properties¶
Name |
Value |
Description |
|---|---|---|
class |
dymo::Dymo |
properties |
display |
i=block/routing |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
ipIn |
input |
||
ipOut |
output |
Source code¶
//
// Provides Dynamic MANET On-demand (Dymo also known as AODVv2) Routing
// based on the IETF draft at http://tools.ietf.org/html/draft-ietf-manet-dymo-24.
//
// Module parameters are copied from the IETF draft and renamed for consistency with
// INET naming conventions. Some parameters are not yet implemented.
//
simple Dymo extends SimpleModule like IManetRouting
{
parameters:
// properties
@class(dymo::Dymo);
@display("i=block/routing");
// context parameters
string interfaceTableModule; // The path to the InterfaceTable module
string routingTableModule = default(absPath("^.ipv4.routingTable"));
string networkProtocolModule = default(absPath("^.ipv4.ip"));
// 1. Dymo parameter group
string clientAddresses = default("10.10.0.0/24 10.20.0.0"); // CLIENT_ADDRESSES
bool useMulticastRREP = default(false); // USE_MULTICAST_RREP
// string DEFAULT_METRIC_TYPE = default("HOP_COUNT");
string interfaces = default("*"); // AODVv2_INTERFACES
// 2. Dymo parameter group
double activeInterval @unit(s) = default(5s); // ACTIVE_INTERVAL
double maxIdleTime @unit(s) = default(200s); // MAX_IDLETIME
double maxSequenceNumberLifetime @unit(s) = default(300s); // MAX_SEQNUM_LIFETIME
double routeRREQWaitTime @unit(s) = default(2s); // ROUTE_RREQ_WAIT_TIME
// double UNICAST_MESSAGE_SENT_TIMEOUT @unit(s) = default(1s);
double rreqHolddownTime @unit(s) = default(10s); // RREQ_HOLDDOWN_TIME
// 3. Dymo parameter group
int maxHopCount = default(20); // MAX_HOPCOUNT
// string MAX_METRIC = default("");
// double MAXTIME;
int discoveryAttemptsMax = default(3); // DISCOVERY_ATTEMPTS_MAX
// int MTU;
// 4. Dymo parameter group
bool appendInformation = default(true); //APPEND_INFORMATION;
int bufferSizePackets = default(-1); // BUFFER_SIZE_PACKETS
int bufferSizeBytes @unit(B) = default(-1B); // BUFFER_SIZE_BYTES
// double CONTROL_TRAFFIC_LIMIT
// Dymo extension parameters
double maxJitter @unit(s) = default(10ms); // See IETF RFC5148 (Jitter Considerations in MANET)
bool sendIntermediateRREP = default(true);
int minHopLimit = default(5);
int maxHopLimit = default(10);
gates:
input ipIn;
output ipOut;
}