File Overlay/Pastry/Pastry.ned

Contains:

//
// Copyright (C) 2006 Institut fuer Telematik, Universitaet Karlsruhe (TH)
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//

//
// The main module of the Pastry implementation
//
// @author Felix Palmen
//
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