Compound Module P2pnsModules

Package: oversim.tier2.p2pns
File: src/tier2/p2pns/P2pns.ned

Implementation of "P2PNS: A distributed name service for P2PSIP"

Author: Ingmar Baumgart

P2pns P2pnsCache

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
p2pns.rpcUdpTimeout double

default timeout value for direct RPCs

p2pns.rpcKeyTimeout double

default timeout value for routed RPCs

p2pns.optimizeTimeouts bool

calculate timeouts from measured RTTs and network coordinates

p2pns.rpcExponentialBackoff bool

if true, doubles the timeout for every retransmission

p2pns.debugOutput bool

enable debug output

p2pns.twoStageResolution bool

enable two stage name resolution (KBR/DHT)

p2pns.keepaliveInterval double

interval between two keeaplive pings for active connections

p2pns.idCacheLifetime double

idle connections in the idCache get deleted after this time

p2pns.registerName string

register the P2PNS id under this name

Source code:

//
// Implementation of "P2PNS: A distributed name service for P2PSIP"
//
// @author Ingmar Baumgart
//
module P2pnsModules 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:
        p2pns: P2pns {
            @display("p=137,42");
        }
        p2pnsCache: P2pnsCache {
            @display("p=53,42");
        }
    connections allowunconnected:
        from_lowerTier --> p2pns.from_lowerTier;
        to_lowerTier <-- p2pns.to_lowerTier;
        from_upperTier --> p2pns.from_upperTier;
        to_upperTier <-- p2pns.to_upperTier;

}