Dsdv

Package: inet.routing.dsdv

simple module Dsdv

Implements Destination-Sequenced Distance Vector.

The host using this routing algorithm 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.

inet.routing.dsdv.DsdvDsdvsimple

Usage diagram

Inheritance diagram

Used in compound modules

Name

Type

Description

DsdvRouter

compound module

A mobile node with the Destination-Sequenced Distance Vector (DSDV) routing protocol. Extends AdhocHost by adding the DSDV 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

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

class

Dsdv

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 algorithm 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 extends SimpleModule like IManetRouting
{
    parameters:
        @class(Dsdv);
        @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