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.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
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 |
|---|---|---|
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;
}