Dsdv

Package: inet.routing.dsdv

Dsdv

simple module

Implements Destination-Sequenced Distance Vector.

The host using this routing algoritm is required to have a SINGLE interface which has "wlan" in its name.

NOTE:

  • This is a fairly incomplete implementation of the originally published DSDV algorithm. It does not implement full routing table dumps, hello message forwarding, there is no logic that sends out full updates if the size of the incremental update reaches the network unit size.

WARNING: This is a partial / unfinished implementation.

Dsdv

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
DsdvRouter compound module

A DSDV router.

Parameters

Name Type Default value Description
interfaceTableModule string

The path to the InterfaceTable module

routingTableModule string
helloInterval double 5s

how often hello messages should be sent out

netmask string "255.255.0.0"

netmask for the ad-hoc network

maxVariance double 1

This is the maximum of a random value to determine when the first hello message will be sent out

routeLifetime double 5s

the expiry time of the routing entries

manetPurgeRoutingTables bool true
broadcastDelay double uniform(0s,0.01s)

Properties

Name Value Description
display i=block/routing

Gates

Name Direction Size Description
ipIn input
ipOut output

Source code

//
// Implements Destination-Sequenced Distance Vector.
//
// The host using this routing algoritm is required to have a SINGLE interface
// which has "wlan" in its name.
//
// NOTE:
//  - This is a fairly incomplete implementation of the originally published DSDV
//    algorithm. It does not implement full routing table dumps, hello message forwarding,
//    there is no logic that sends out full updates if the size of the incremental update reaches
//    the network unit size.
//
// WARNING: This is a partial / unfinished implementation.
//
simple Dsdv like IManetRouting
{
    parameters:
        @display("i=block/routing");
        string interfaceTableModule;   // The path to the InterfaceTable module
        string routingTableModule;
        double helloInterval @unit(s) = default(5s);  // how often hello messages should be sent out
        string netmask = default("255.255.0.0");  // netmask for the ad-hoc network
        double maxVariance = default(1); // This is the maximum of a random value to determine when the first hello message will be sent out
        double routeLifetime @unit(s) = default(5s);  // the expiry time of the routing entries
        bool manetPurgeRoutingTables = default(true);
        volatile double broadcastDelay @unit(s) = default(uniform(0s,0.01s));
    gates:
        input ipIn;
        output ipOut;
}

File: src/inet/routing/dsdv/Dsdv.ned