Compound Module DHTModules

Package: oversim.applications.dht
File: src/applications/dht/DHT.ned

Compound module for a simple DHT using the KBR interface

Author: Gregoire Menuel, Ingmar Baumgart

DHT DHTDataStorage

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Properties:

Name Value Description
display i=block/segm

Gates:

Name Direction Size Description
udpIn input

gate from the UDP layer

from_lowerTier input

gate from the lower tier

from_upperTier input

gate from the upper tier

tcpIn input

gate from the TCP layer

tcpOut output

gate to the TCP layer

udpOut output

gate to the UDP layer

to_lowerTier output

gate to the lower tier

to_upperTier output

gate to the upper tier

Unassigned submodule parameters:

Name Type Default value Description
dht.rpcUdpTimeout double

default timeout value for direct RPCs

dht.rpcKeyTimeout double

default timeout value for routed RPCs

dht.optimizeTimeouts bool

calculate timeouts from measured RTTs and network coordinates

dht.rpcExponentialBackoff bool

if true, doubles the timeout for every retransmission

dht.debugOutput bool

enable debug output

dht.numReplica int

number of replica for stored data records

dht.numGetRequests int

number of queried replica for get requests

dht.ratioIdentical double

ratio of identical replica needed for a valid result

dht.secureMaintenance bool

use a secure maintenance algorithm based on majority decisions

dht.invalidDataAttack bool

if node is malicious, it tries a invalidData attack

dht.maintenanceAttack bool

if node is malicious, it tries a maintenance attack

Source code:

//
// Compound module for a simple DHT using the KBR interface
//
// @author Gregoire Menuel, Ingmar Baumgart
//
module DHTModules like ITier
{
    parameters:
        @display("i=block/segm");
    gates:
        input udpIn;    // gate from the UDP layer
        input from_lowerTier;    // gate from the lower tier
        input from_upperTier;    // gate from the upper tier
        input tcpIn;    // gate from the TCP layer
        output tcpOut;    // gate to the TCP layer
        output udpOut;    // gate to the UDP layer
        output to_lowerTier;    // gate to the lower tier
        output to_upperTier;    // gate to the upper tier

    submodules:
        dht: DHT;
        dhtDataStorage: DHTDataStorage;
    connections allowunconnected:
        from_lowerTier --> dht.from_lowerTier;
        to_lowerTier <-- dht.to_lowerTier;
        from_upperTier --> dht.from_upperTier;
        to_upperTier <-- dht.to_upperTier;

}