// // 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 Chord implementation // // @author Ingmar Baumgart, Markus Mauch // simple Chord parameters: localPort : numeric, // UDP port for Chord messages debugOutput : bool, // enable debug output keyLength : numeric, // overlay key length in bits measureNetwInitPhase: bool, // gather statistics when bootstrapping drawOverlayTopology : bool, // draw arrow to successor node? hopCountMax : numeric, // maximum number of overlay hops lookupNumberNextHops : 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 useBaseLookup : bool, // use the base lookup class iterativeLookup : bool, // do iterative instead of recursive lookups // max number of successors in the SuccessorList successorListSize : numeric, // after joinRetry unsuccessful join requests, we fetch // a need bootstrap node from the BootstrapOracle joinRetry : numeric, // retries before a successor is considered failed stabilizeRetry : numeric, joinDelay : numeric, // delay between join retries (sec) stabilizeDelay : numeric, // stabilize interval (sec) fixfingersDelay : numeric, // fix_fingers interval (sec) aggressiveJoinMode : bool; // use modified (faster) JOIN protocol gates: in: from_udp[]; // gate from the UDP layer out: to_udp[]; // gate to the UDP layer in: from_app; // gate from the application out: to_app; // gate to the application endsimple