File: Overlay/Broose/Broose.ned
C++ definition: click here
The main module of the Broose implementation
Author: Jochen Schenk
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.
If a module type shows up more than once, that means it has been defined in more than one NED file.
BrooseModules | Implementation of the Broose overlay as described in "Broose: A Practical Distributed Hashtable based on the De-Bruijn Topology" by A. Gai and L. Viennot, published in "Technical report, INRIA, june 2004" |
Name | Type | Description |
---|---|---|
keyLength | numeric | overlay key length |
localPort | numeric | port on which the node is listening |
debugOutput | bool | write debug information? |
collectPerHopDelay | bool | delay statistics for single hops |
joinOnApplicationRequest | bool | only join the overlay on application request |
useCommonAPIforward | bool | enable CommonAPI forward() calls |
routeMsgAcks | bool | use RPCs for route messages |
recNumRedundantNodes | numeric | numRedundantNodes for recursive routing |
routingType | string | default routing mode (iterative, semi-recursive,...) |
lookupRedundantNodes | 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 |
lookupStrictParallelRpcs | bool | limited the number of concurrent rpcs to parameter parallelRpcs |
lookupUseAllParallelResponses | bool | merge all parallel responses from earlier steps |
lookupNewRpcOnEveryTimeout | bool | send a new RPC immediately after an RPC timeouts |
lookupNewRpcOnEveryResponse | bool | send a new RPC after every response, even if there was no progress |
lookupFinishOnFirstUnchanged | bool | finish lookup, if the last pending RPC returned without progress |
lookupFailedNodeRpcs | bool | communicate failed Nodes |
hopCountMax | numeric | maximum hops for a lookup |
drawOverlayTopology | bool | draw arrow to successor node? |
bucketSize | numeric | number of nodes a bucket contains |
rBucketSize | numeric | number of nodes a right-bucket contains |
joinDelay | numeric | time to wait to join the overlay after simulation start |
brooseShiftingBits | numeric | number of bits shifted in/out each step |
userDist | numeric | number of hops that are added to the estimated hop count |
refreshTime | numeric | time interval between two pings |
pingDelay | numeric | time interval between bucket refreshs |
numberRetries | numeric | number of retries in case of timeout |
parallelRequests | numeric | number ob parallel requests |
Name | Direction | Description |
---|---|---|
from_udp [ ] | input | gate from the UDP layer |
to_udp [ ] | output | gate to the UDP layer |
from_app | input | gate from the application |
to_app | output | gate to the application |
direct_in | input | gate for sendDirect |
simple Broose parameters: keyLength : numeric, // overlay key length localPort: numeric, // port on which the node is listening debugOutput: bool, // write debug information? collectPerHopDelay : bool, // delay statistics for single hops joinOnApplicationRequest : bool, // only join the overlay on application request useCommonAPIforward : bool, // enable CommonAPI forward() calls routeMsgAcks : bool, // use RPCs for route messages recNumRedundantNodes : numeric, // numRedundantNodes for recursive routing routingType : string, // default routing mode (iterative, semi-recursive,...) lookupRedundantNodes : 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 lookupStrictParallelRpcs: bool, // limited the number of concurrent rpcs to parameter parallelRpcs lookupUseAllParallelResponses: bool, // merge all parallel responses from earlier steps lookupNewRpcOnEveryTimeout: bool, // send a new RPC immediately after an RPC timeouts lookupNewRpcOnEveryResponse: bool, // send a new RPC after every response, even if there was no progress lookupFinishOnFirstUnchanged: bool, // finish lookup, if the last pending RPC returned without progress lookupFailedNodeRpcs : bool, // communicate failed Nodes hopCountMax: numeric, // maximum hops for a lookup drawOverlayTopology: bool, // draw arrow to successor node? bucketSize: numeric, // number of nodes a bucket contains rBucketSize: numeric, // number of nodes a right-bucket contains joinDelay: numeric, // time to wait to join the overlay after simulation start brooseShiftingBits: numeric, // number of bits shifted in/out each step userDist: numeric, // number of hops that are added to the estimated hop count refreshTime: numeric, // time interval between two pings pingDelay: numeric, // time interval between bucket refreshs numberRetries: numeric, // number of retries in case of timeout parallelRequests: numeric; // number ob parallel requests 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 in: direct_in; // gate for sendDirect endsimple