Simple Module DYMO

Package: inet.routing.dymo
File: src/inet/routing/dymo/DYMO.ned

C++ definition

This module 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.

DYMO

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.

Used in compound modules:

Name Type Description
MultiDYMO compound module

This module provides DYMO routing for multiple network protocols simultaneously.

Parameters:

Name Type Default value Description
interfaceTableModule string

context parameters

routingTableModule string
networkProtocolModule string "^.networkLayer.ip"
clientAddresses string "10.10.0.0/24 10.20.0.0"

1. DYMO parameter group

useMulticastRREP bool false

USE_MULTICAST_RREP

interfaces string "*"

string DEFAULT_METRIC_TYPE = default("HOP_COUNT");

activeInterval double 5s

2. DYMO parameter group

maxIdleTime double 200s

MAX_IDLETIME

maxSequenceNumberLifetime double 300s

MAX_SEQNUM_LIFETIME

routeRREQWaitTime double 2s

ROUTE_RREQ_WAIT_TIME

rreqHolddownTime double 10s

double UNICAST_MESSAGE_SENT_TIMEOUT @unit("s") = default(1s);

maxHopCount int 20

3. DYMO parameter group

discoveryAttemptsMax int 3

string MAX_METRIC = default(""); double MAXTIME;

appendInformation bool true

4. DYMO parameter group

bufferSizePackets int -1

BUFFER_SIZE_PACKETS

bufferSizeBytes int -1B

BUFFER_SIZE_BYTES double CONTROL_TRAFFIC_LIMIT

maxJitter double 10ms

DYMO extension parameters

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:

//
// This module 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 like IDYMO
{
    parameters:
        // properties
        @class("dymo::DYMO");
        @display("i=block/routing");

        // context parameters
        string interfaceTableModule;   // The path to the InterfaceTable module
        string routingTableModule;
        string networkProtocolModule = default("^.networkLayer.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);
        bool sendIntermediateRREP = default(true);
        int minHopLimit = default(5);
        int maxHopLimit = default(10);

    gates:
        input ipIn;
        output ipOut;
}