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

drawOverlayTopology bool

draw arrow to successor node?

iterativeLookup bool

do iterative instead of recursive lookups

lookupNumberNextHops numeric
lookupParallelPaths numeric
lookupParallelRpcs numeric
lookupSecure bool
lookupMerge 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

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)

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
	drawOverlayTopology: bool,	// draw arrow to successor node?

	iterativeLookup : bool,		// do iterative instead of recursive
					// lookups
	lookupNumberNextHops : numeric,
	lookupParallelPaths : numeric,
	lookupParallelRpcs : numeric,
	lookupSecure : bool,
	lookupMerge : 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
	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)

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

endsimple