This module provides DYMO routing for multiple network protocols simultaneously.
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 | Default value | Description |
---|---|---|---|
enableIPv4 | bool | true | |
enableIPv6 | bool | true | |
enableGeneric | bool | true | |
interfaceTableModule | string |
The path to the InterfaceTable module |
|
routingTableModule | string |
Name | Value | Description |
---|---|---|
display | i=block/table |
Name | Direction | Size | Description |
---|---|---|---|
ipIn | input | ||
ipOut | output |
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 |
// // 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(interfaceTableModule)); ipv4.routingTableModule = default(absPath(routingTableModule) + ".ipv4"); ipv4.networkProtocolModule = default("^.^.networkLayer.ipv4.ip"); ipv6.routingTableModule = default(absPath(routingTableModule) + ".ipv6"); ipv6.networkProtocolModule = default("^.^.networkLayer.ipv6.ipv6"); generic.routingTableModule = default(absPath(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; }