Package: inet.routing.dymo
MultiDYMO
compound moduleThis module provides DYMO routing for multiple network protocols simultaneously.
Usage diagram
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
enableIPv4 | bool | true | |
enableIPv6 | bool | true | |
enableGeneric | bool | true | |
interfaceTableModule | string |
The path to the InterfaceTable module |
|
routingTableModule | string |
Properties
Name | Value | Description |
---|---|---|
display | i=block/table |
Gates
Name | Direction | Size | Description |
---|---|---|---|
ipIn | input | ||
ipOut | output |
Unassigned submodule parameters
Name | Type | Default value | Description |
---|---|---|---|
ipv4.interfaceTableModule | string |
context parameters |
|
ipv4.routingTableModule | string | ||
ipv4.networkProtocolModule | string | "^.networkLayer.ip" | |
ipv4.clientAddresses | string | "10.10.0.0/24 10.20.0.0" |
1. DYMO parameter group |
ipv4.useMulticastRREP | bool | false |
USE_MULTICAST_RREP |
ipv4.interfaces | string | "*" |
string DEFAULT_METRIC_TYPE = default("HOP_COUNT"); |
ipv4.activeInterval | double | 5s |
2. DYMO parameter group |
ipv4.maxIdleTime | double | 200s |
MAX_IDLETIME |
ipv4.maxSequenceNumberLifetime | double | 300s |
MAX_SEQNUM_LIFETIME |
ipv4.routeRREQWaitTime | double | 2s |
ROUTE_RREQ_WAIT_TIME |
ipv4.rreqHolddownTime | double | 10s |
double UNICAST_MESSAGE_SENT_TIMEOUT @unit("s") = default(1s); |
ipv4.maxHopCount | int | 20 |
3. DYMO parameter group |
ipv4.discoveryAttemptsMax | int | 3 |
string MAX_METRIC = default(""); double MAXTIME; |
ipv4.appendInformation | bool | true |
4. DYMO parameter group |
ipv4.bufferSizePackets | int | -1 |
BUFFER_SIZE_PACKETS |
ipv4.bufferSizeBytes | int | -1B |
BUFFER_SIZE_BYTES double CONTROL_TRAFFIC_LIMIT |
ipv4.maxJitter | double | 10ms |
DYMO extension parameters |
ipv4.sendIntermediateRREP | bool | true | |
ipv4.minHopLimit | int | 5 | |
ipv4.maxHopLimit | int | 10 | |
ipv6.interfaceTableModule | string |
context parameters |
|
ipv6.routingTableModule | string | ||
ipv6.networkProtocolModule | string | "^.networkLayer.ip" | |
ipv6.clientAddresses | string | "10.10.0.0/24 10.20.0.0" |
1. DYMO parameter group |
ipv6.useMulticastRREP | bool | false |
USE_MULTICAST_RREP |
ipv6.interfaces | string | "*" |
string DEFAULT_METRIC_TYPE = default("HOP_COUNT"); |
ipv6.activeInterval | double | 5s |
2. DYMO parameter group |
ipv6.maxIdleTime | double | 200s |
MAX_IDLETIME |
ipv6.maxSequenceNumberLifetime | double | 300s |
MAX_SEQNUM_LIFETIME |
ipv6.routeRREQWaitTime | double | 2s |
ROUTE_RREQ_WAIT_TIME |
ipv6.rreqHolddownTime | double | 10s |
double UNICAST_MESSAGE_SENT_TIMEOUT @unit("s") = default(1s); |
ipv6.maxHopCount | int | 20 |
3. DYMO parameter group |
ipv6.discoveryAttemptsMax | int | 3 |
string MAX_METRIC = default(""); double MAXTIME; |
ipv6.appendInformation | bool | true |
4. DYMO parameter group |
ipv6.bufferSizePackets | int | -1 |
BUFFER_SIZE_PACKETS |
ipv6.bufferSizeBytes | int | -1B |
BUFFER_SIZE_BYTES double CONTROL_TRAFFIC_LIMIT |
ipv6.maxJitter | double | 10ms |
DYMO extension parameters |
ipv6.sendIntermediateRREP | bool | true | |
ipv6.minHopLimit | int | 5 | |
ipv6.maxHopLimit | int | 10 | |
generic.interfaceTableModule | string |
context parameters |
|
generic.routingTableModule | string | ||
generic.networkProtocolModule | string | "^.networkLayer.ip" | |
generic.clientAddresses | string | "10.10.0.0/24 10.20.0.0" |
1. DYMO parameter group |
generic.useMulticastRREP | bool | false |
USE_MULTICAST_RREP |
generic.interfaces | string | "*" |
string DEFAULT_METRIC_TYPE = default("HOP_COUNT"); |
generic.activeInterval | double | 5s |
2. DYMO parameter group |
generic.maxIdleTime | double | 200s |
MAX_IDLETIME |
generic.maxSequenceNumberLifetime | double | 300s |
MAX_SEQNUM_LIFETIME |
generic.routeRREQWaitTime | double | 2s |
ROUTE_RREQ_WAIT_TIME |
generic.rreqHolddownTime | double | 10s |
double UNICAST_MESSAGE_SENT_TIMEOUT @unit("s") = default(1s); |
generic.maxHopCount | int | 20 |
3. DYMO parameter group |
generic.discoveryAttemptsMax | int | 3 |
string MAX_METRIC = default(""); double MAXTIME; |
generic.appendInformation | bool | true |
4. DYMO parameter group |
generic.bufferSizePackets | int | -1 |
BUFFER_SIZE_PACKETS |
generic.bufferSizeBytes | int | -1B |
BUFFER_SIZE_BYTES double CONTROL_TRAFFIC_LIMIT |
generic.maxJitter | double | 10ms |
DYMO extension parameters |
generic.sendIntermediateRREP | bool | true | |
generic.minHopLimit | int | 5 | |
generic.maxHopLimit | int | 10 |
Source code
// // This module provides DYMO routing for multiple network protocols simultaneously. // module MultiDYMO like IDYMO { parameters: @display("i=block/table"); bool enableIPv4 = default(true); bool enableIPv6 = default(true); bool enableGeneric = default(true); string interfaceTableModule; // The path to the InterfaceTable module string routingTableModule; *.interfaceTableModule = default(absPath(this.interfaceTableModule)); ipv4.routingTableModule = default(absPath(this.routingTableModule) + ".ipv4"); ipv4.networkProtocolModule = default("^.^.networkLayer.ipv4.ip"); ipv6.routingTableModule = default(absPath(this.routingTableModule) + ".ipv6"); ipv6.networkProtocolModule = default("^.^.networkLayer.ipv6.ipv6"); generic.routingTableModule = default(absPath(this.routingTableModule) + ".generic"); generic.networkProtocolModule = default("^.^.networkLayer.generic.gnp"); gates: input ipIn; output ipOut; submodules: ipv4: DYMO if enableIPv4 { @display("p=100,100"); } ipv6: DYMO if enableIPv6 { @display("p=200,100"); } generic: DYMO if enableGeneric { @display("p=300,100"); } multiplexer: NetworkDatagramMultiplexer { @display("p=200,200"); } connections allowunconnected: multiplexer.upperOut --> ipOut; ipIn --> multiplexer.upperIn; multiplexer.lowerOut++ --> ipv4.ipIn if enableIPv4; ipv4.ipOut --> multiplexer.lowerIn++ if enableIPv4; multiplexer.lowerOut++ --> ipv6.ipIn if enableIPv6; ipv6.ipOut --> multiplexer.lowerIn++ if enableIPv6; multiplexer.lowerOut++ --> generic.ipIn if enableGeneric; generic.ipOut --> multiplexer.lowerIn++ if enableGeneric; }File: src/inet/routing/dymo/DYMO.ned