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.

inet.routing.dymo.DymoDymosimple

Usage diagram

Inheritance diagram

Used in compound modules

Name

Type

Description

DymoRouter

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

SimpleModule

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;
}

File: src/inet/routing/dymo/Dymo.ned