// // 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 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