Simple Module Pastry

File: Overlay/Pastry/Pastry.ned

C++ definition: click here

The main module of the Pastry implementation

Author: Felix Palmen

Usage diagram:

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.

Used in compound modules:

If a module type shows up more than once, that means it has been defined in more than one NED file.

OverlayPastry

Pastry

Parameters:

Name Type Description
useBaseLookup bool

use BaseLookup class

keyLength numeric

length of Overlay Key

localPort numeric
debugOutput bool

enable debug output

measureNetwInitPhase bool

gather statistics when bootstrapping

hopCountMax numeric

maximum number of overlay hops

joinOnApplicationRequest bool

only join the overlay on application request

drawOverlayTopology bool

draw arrow to successor node?

iterativeLookup bool

do iterative instead of recursive lookups

lookupRedundantNodes numeric
lookupParallelPaths numeric
lookupParallelRpcs numeric
lookupSecure bool
lookupMerge bool
lookupFailedNodeRpcs bool
enableNewLeafs bool

enable Pastry API call newLeafs()

optimizeLookup bool

whether to search the closest node in findCloserNode() calls

optimisticForward bool

forward message immediately in recursive mode, otherwise ping first

avoidDuplicates bool

when node seems unreachable but msg already sent, do not retry

partialJoinPath bool

allow join even with missing state message along the routing path

bitsPerDigit numeric

bits per Pastry digit

numberOfLeaves numeric

number of entries in leaf set

numberOfNeighbors numeric

number of entries in neighborhoot set

joinTimeout numeric

seconds to wait for STATE message from closest node

readyWait numeric

seconds to wait for missing state messages in JOIN phase

secondStageWait numeric

how long to wait before starting second stage of init phase

pingCacheExpireTime numeric

maximum number of seconds rtt for a node is cached

repairTimeout numeric

how long to wait for repair messages

ringCheckInterval numeric

check direct neighbors on the ring every x seconds (0 to disable)

sendStateWaitAmount numeric

how long to wait when sending state tables delayed (should be very small)

pingTimeout numeric

how long to wait for PING reply

pingRetries numeric

how often to retry PING after timeout

Gates:

Name Direction Description
from_udp [ ] input
to_udp [ ] output
from_app input
to_app output

Source code:

simple Pastry

    parameters:
    	useBaseLookup: bool,		// use BaseLookup class
	keyLength: numeric,		// length of Overlay Key
	localPort: numeric,
	debugOutput: bool,		// enable debug output
	measureNetwInitPhase: bool,	// gather statistics when bootstrapping
	hopCountMax: numeric,		// maximum number of overlay hops
	joinOnApplicationRequest : bool, // only join the overlay on application request
	drawOverlayTopology: bool,	// draw arrow to successor node?

	iterativeLookup : bool,		// do iterative instead of recursive
					// lookups
	lookupRedundantNodes : numeric,
	lookupParallelPaths : numeric,
	lookupParallelRpcs : numeric,
	lookupSecure : bool,
	lookupMerge : bool,
	lookupFailedNodeRpcs : bool,

	enableNewLeafs : bool,		// enable Pastry API call newLeafs()
	optimizeLookup : bool,		// whether to search the closest node
					// in findCloserNode() calls
	optimisticForward : bool,	// forward message immediately in
					// recursive mode, otherwise ping first
	avoidDuplicates : bool,		// when node seems unreachable but msg
					// already sent, do not retry
	partialJoinPath : bool,		// allow join even with missing state
					// message along the routing path
	bitsPerDigit: numeric,		// bits per Pastry digit
	numberOfLeaves: numeric,	// number of entries in leaf set
	numberOfNeighbors: numeric,	// number of entries in neighborhoot set
	joinTimeout: numeric,		// seconds to wait for STATE message
					// from closest node
	readyWait: numeric,		// seconds to wait for missing state
					// messages in JOIN phase
	secondStageWait: numeric,	// how long to wait before starting
					// second stage of init phase
	pingCacheExpireTime: numeric,	// maximum number of seconds rtt for
					// a node is cached
	repairTimeout: numeric,		// how long to wait for repair messages
	ringCheckInterval: numeric,	// check direct neighbors on the ring
					// every x seconds (0 to disable)
	sendStateWaitAmount: numeric,	// how long to wait when sending state
					// tables delayed (should be very small)
	pingTimeout: numeric,		// how long to wait for PING reply
	pingRetries: numeric;		// how often to retry PING after
					// timeout

    gates:
        in: from_udp[];
        out: to_udp[];
	in: from_app;
	out: to_app;

endsimple