File: Overlay/Pastry/OverlayPastry.ned
Author: Felix Palmen
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.
Pastry | The main module of the Pastry implementation |
PastryLeafSet | This module contains the leaf set of the Pastry implementation. |
PastryNeighborhoodSet | This module contains the neighborhood set of the Pastry implementation. |
PastryRoutingTable | This module contains the routing table of the Pastry implementation. |
Name | Type | Description |
---|---|---|
keyLength | numeric | length of Overlay Key |
localPort | numeric | |
debugOutput | bool | enable debug output |
joinOnApplicationRequest | bool | only join the overlay on application request |
lookupRedundantNodes | numeric | |
lookupParallelPaths | numeric | |
lookupParallelRpcs | numeric | |
lookupSecure | bool | |
lookupMerge | bool | |
lookupFailedNodeRpcs | bool | |
measureNetwInitPhase | bool | gather statistics when bootstrapping |
hopCountMax | numeric | maximum number of overlay hops |
drawOverlayTopology | bool | draw arrow to successor node? |
Name | Direction | Description |
---|---|---|
from_udp | input | |
to_udp | output | |
from_app | input | |
to_app | output |
Name | Type | Description |
---|---|---|
pastry.useBaseLookup | bool | use BaseLookup class |
pastry.iterativeLookup | bool | do iterative instead of recursive lookups |
pastry.enableNewLeafs | bool | enable Pastry API call newLeafs() |
pastry.optimizeLookup | bool | whether to search the closest node in findCloserNode() calls |
pastry.optimisticForward | bool | forward message immediately in recursive mode, otherwise ping first |
pastry.avoidDuplicates | bool | when node seems unreachable but msg already sent, do not retry |
pastry.partialJoinPath | bool | allow join even with missing state message along the routing path |
pastry.bitsPerDigit | numeric | bits per Pastry digit |
pastry.numberOfLeaves | numeric | number of entries in leaf set |
pastry.numberOfNeighbors | numeric | number of entries in neighborhoot set |
pastry.joinTimeout | numeric | seconds to wait for STATE message from closest node |
pastry.readyWait | numeric | seconds to wait for missing state messages in JOIN phase |
pastry.secondStageWait | numeric | how long to wait before starting second stage of init phase |
pastry.pingCacheExpireTime | numeric | maximum number of seconds rtt for a node is cached |
pastry.repairTimeout | numeric | how long to wait for repair messages |
pastry.ringCheckInterval | numeric | check direct neighbors on the ring every x seconds (0 to disable) |
pastry.sendStateWaitAmount | numeric | how long to wait when sending state tables delayed (should be very small) |
pastry.pingTimeout | numeric | how long to wait for PING reply |
pastry.pingRetries | numeric | how often to retry PING after timeout |
module OverlayPastry parameters: keyLength: numeric, // length of Overlay Key localPort: numeric, debugOutput: bool, // enable debug output joinOnApplicationRequest : bool, // only join the overlay on application request lookupRedundantNodes : numeric, lookupParallelPaths : numeric, lookupParallelRpcs : numeric, lookupSecure : bool, lookupMerge : bool, lookupFailedNodeRpcs : bool, measureNetwInitPhase: bool, // gather statistics when bootstrapping hopCountMax: numeric, // maximum number of overlay hops drawOverlayTopology: bool; // draw arrow to successor node? gates: in: from_udp; out: to_udp; in: from_app; out: to_app; submodules: pastry: Pastry; parameters: keyLength = keyLength, localPort = localPort, debugOutput = debugOutput, joinOnApplicationRequest = joinOnApplicationRequest, lookupRedundantNodes = lookupRedundantNodes, lookupParallelPaths = lookupParallelPaths, lookupParallelRpcs = lookupParallelRpcs, lookupSecure = lookupSecure, lookupMerge = lookupMerge, lookupFailedNodeRpcs = lookupFailedNodeRpcs, measureNetwInitPhase = measureNetwInitPhase, hopCountMax = hopCountMax, drawOverlayTopology = drawOverlayTopology; display: "p=60,52;i=block/circle"; pastryRoutingTable: PastryRoutingTable; display: "p=140,68;i=block/table"; pastryLeafSet: PastryLeafSet; display: "p=220,52;i=block/table"; pastryNeighborhoodSet: PastryNeighborhoodSet; display: "p=300,68;i=block/table"; connections: from_udp --> pastry.from_udp++; to_udp <-- pastry.to_udp++; from_app --> pastry.from_app; to_app <-- pastry.to_app; endmodule