Simple Module P2pns

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

C++ definition

The main module of the P2PNS implementation

Author: Ingmar Baumgart

P2pns

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.

Extends:

Name Type Description
BaseApp simple module

Base class for application implementations

Used in compound modules:

Name Type Description
P2pnsModules compound module

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

Parameters:

Name Type Default value Description
rpcUdpTimeout double

default timeout value for direct RPCs

rpcKeyTimeout double

default timeout value for routed RPCs

optimizeTimeouts bool

calculate timeouts from measured RTTs and network coordinates

rpcExponentialBackoff bool

if true, doubles the timeout for every retransmission

debugOutput bool

enable debug output

twoStageResolution bool

enable two stage name resolution (KBR/DHT)

keepaliveInterval double

interval between two keeaplive pings for active connections

idCacheLifetime double

idle connections in the idCache get deleted after this time

registerName string

register the P2PNS id under this name

Properties:

Name Value Description
class P2pns
display i=block/app

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

direct_in input

gate for sendDirect

trace_in input

gate for trace file commands

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

Source code:

//
// The main module of the P2PNS implementation
//
// @author Ingmar Baumgart
//
simple P2pns extends BaseApp
{
    parameters:
        @class(P2pns);
        bool twoStageResolution; // enable two stage name resolution (KBR/DHT)
        double keepaliveInterval @unit(s); // interval between two keeaplive pings for active connections
        double idCacheLifetime @unit(s); // idle connections in the idCache get deleted after this time
        string registerName; // register the P2PNS id under this name 
}