File: Overlay/Gia/Gia.ned
C++ definition: click here
The main module of the GIA implementation
Author: Robert Palmer
The following diagram shows usage relationships between modules, networks and channels. Unresolved module (and channel) types are missing from the diagram. Click here to see the full picture.
If a module type shows up more than once, that means it has been defined in more than one NED file.
GiaModules | Implementation of the Gia overlay as described in "Making Gnutella-like P2P Systems Scalable" by Yatin Chawathe, Sylvia Ratnasamy, Lee Breslau, Nick Lanham and Scott Shenker, published in "In Proc. ACM SIGCOMM (Aug. 2003)". Author: Robert Palmer |
Name | Type | Description |
---|---|---|
localPort | numeric | local UDP Port for overlay |
debugOutput | bool | output debug messages? |
maxNeighbors | numeric | maximum number of neighbors |
minNeighbors | numeric | minimum number of neighbors |
maxTopAdaptionInterval | numeric | maximum topology adaption interval |
topAdaptionAggressiveness | numeric | topology adaption aggressiveness |
maxLevelOfSatisfaction | numeric | maximum level of satisfaction |
maxHopCount | numeric | maximum TTL for sent messages |
messageTimeout | numeric | message timeout |
neighborTimeout | numeric | neighbor timeout |
sendTokenTimeout | numeric | token timeout |
tokenWaitTime | numeric | delay when sending new token |
keyListDelay | numeric | delay when sending new key list to our neighbors |
updateDelay | numeric | delay between two update messages |
outputNodeDetails | bool | output node details |
optimizeReversePath | bool | use optimized reverse path? |
iterativeLookup | bool | do iterative instead of recursive lookups |
useCommonAPIforward | bool | enable CommonAPI forward() calls |
useNextHopRpc | bool | use RPCs for route messages |
collectPerHopDelay | bool | delay statistics for single hops |
joinOnApplicationRequest | bool | only join the overlay on application request |
lookupRedundantNodes | numeric | number of next hops in each step |
lookupParallelPaths | numeric | number of parallel paths |
lookupParallelRpcs | numeric | number of nodes to ask in parallel |
lookupSecure | bool | true, if all nodes should be identified with a ping |
lookupMerge | bool | true, if parallel Rpc results should be merged |
lookupFailedNodeRpcs | bool | communicate failed nodes |
measureNetwInitPhase | bool | gather stats when bootstrapping |
hopCountMax | numeric | maximum number of overlay hops |
drawOverlayTopology | numeric | draw arrow to successor node? |
keyLength | numeric | overlay key length in bits |
Name | Direction | Description |
---|---|---|
from_udp [ ] | input | gate from UDP |
to_udp [ ] | output | gate to UDP |
from_app | input | gate from application |
to_app | output | gate to application |
direct_in | input | gate for sendDirect |
simple Gia parameters: localPort : numeric, // local UDP Port for overlay debugOutput : bool, // output debug messages? maxNeighbors : numeric, // maximum number of neighbors minNeighbors : numeric, // minimum number of neighbors maxTopAdaptionInterval : numeric, // maximum topology adaption interval topAdaptionAggressiveness : numeric, // topology adaption aggressiveness maxLevelOfSatisfaction : numeric, // maximum level of satisfaction maxHopCount : numeric, // maximum TTL for sent messages messageTimeout : numeric, // message timeout neighborTimeout : numeric, // neighbor timeout sendTokenTimeout : numeric, // token timeout tokenWaitTime : numeric, // delay when sending new token // delay when sending new key list to our neighbors keyListDelay : numeric, updateDelay : numeric, // delay between two update messages outputNodeDetails : bool, // output node details optimizeReversePath : bool, // use optimized reverse path? // do iterative instead of recursive lookups iterativeLookup : bool, useCommonAPIforward : bool, // enable CommonAPI forward() calls useNextHopRpc : bool, // use RPCs for route messages collectPerHopDelay : bool, // delay statistics for single hops // only join the overlay on application request joinOnApplicationRequest : bool, lookupRedundantNodes : numeric, // number of next hops in each step lookupParallelPaths : numeric, // number of parallel paths lookupParallelRpcs : numeric, // number of nodes to ask in parallel // true, if all nodes should be identified with a ping lookupSecure : bool, // true, if parallel Rpc results should be merged lookupMerge : bool, lookupFailedNodeRpcs : bool, // communicate failed nodes measureNetwInitPhase : bool, // gather stats when bootstrapping hopCountMax : numeric, // maximum number of overlay hops drawOverlayTopology : numeric, // draw arrow to successor node? keyLength : numeric; // overlay key length in bits gates: in: from_udp[]; // gate from UDP out: to_udp[]; // gate to UDP in: from_app; // gate from application out: to_app; // gate to application in: direct_in; // gate for sendDirect endsimple