Package: inet.routing.dsdv
Dsdv
simple moduleImplements 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.
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 |
Scheduled messages (observed)
msg | kind | ctrl | tags | msgname | context |
---|---|---|---|---|---|
omnetpp::cMessage | 0 | event |
Direct method calls (observed)
call to | function | info |
---|---|---|
MessageDispatcher | inet::MessageDispatcher::arrived | arrived |
MessageDispatcher | inet::MessageDispatcher::handleRegisterProtocol | handleRegisterProtocol |
InterfaceTable | inet::InterfaceTable::interfaceChanged | interfaceChanged |
Igmpv2 | inet::Igmpv2::receiveSignal | ipv4MulticastGroupJoined |
Ipv4RoutingTable | inet::Ipv4RoutingTable::addRoute | addRoute(...) |
Ipv4RoutingTable | inet::Ipv4RoutingTable::deleteRoute | deleteRoute(...) |
Ipv4RoutingTable | inet::Ipv4RoutingTable::findBestMatchingRoute | findBestMatchingRoute(%u.%u.%u.%u) |
Called methods (observed)
function | info | call from |
---|---|---|
inet::Dsdv::handleOperationStage | handleOperationStage | ScenarioManager |
Incoming messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
ipIn | Packet | 0 | Ipv4 | DispatchProtocolReq, DscpInd, EcnInd, ErrorRateInd, HopLimitInd, Ieee802SapInd, InterfaceInd, L3AddressInd, MacAddressInd, NetworkProtocolInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd, TosInd, Ieee80211ChannelInd, Ieee80211ModeInd |
Outgoing messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
ipOut | Packet | 0 | Ipv4 | DispatchProtocolReq, InterfaceReq, L3AddressReq, PacketProtocolTag |
Packet operations (observed)
chunkType | packetAction |
---|---|
DsdvHello | Packet, insertAtBack, peekData |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
DispatchProtocolReq | addTag |
InterfaceReq | addTag |
L3AddressReq | addTag |
PacketProtocolTag | addTag, getTag |
Tagging operations (observed)
tagType | tagAction |
---|---|
inet::Ipv4InterfaceData | getTag, getTagForUpdate |
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