File: Overlay/Broose/OverlayBroose.ned
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.
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.
Broose | The main module of the Broose implementation |
BrooseBucket | This modul contains the buckets of the Broose implementation. |
Name | Type | Description |
---|---|---|
keyLength | numeric | |
localPort | numeric | |
debugOutput | bool | |
lookupNumberNextHops | numeric | |
lookupParallelPaths | numeric | |
lookupParallelRpcs | numeric | |
lookupSecure | bool | |
lookupMerge | bool | |
shiftingBits | numeric | |
hopCountMax | numeric | |
measureNetwInitPhase | bool | |
drawOverlayTopology | bool |
Name | Direction | Description |
---|---|---|
from_udp | input | |
to_udp | output | |
from_app | input | |
to_app | output |
Name | Type | Description |
---|---|---|
broose.useBaseLookup | bool | use the base lookup class |
broose.iterativeLookup | bool | do iterative instead of recursive lookups |
broose.bucketSize | numeric | |
broose.rBucketSize | numeric | |
broose.joinDelay | numeric | |
broose.userDist | numeric | |
broose.refreshTime | numeric | |
broose.pingDelay | numeric | |
broose.numberRetries | numeric | |
broose.parallelRequests | numeric |
module OverlayBroose parameters: keyLength: numeric, localPort: numeric, debugOutput: bool, lookupNumberNextHops : numeric, lookupParallelPaths : numeric, lookupParallelRpcs : numeric, lookupSecure : bool, lookupMerge : bool, shiftingBits : numeric, hopCountMax: numeric, measureNetwInitPhase: bool, drawOverlayTopology: bool; gates: in: from_udp; out: to_udp; in: from_app; out: to_app; submodules: rBucket : BrooseBucket[2^shiftingBits]; display: "i=block/table"; lBucket : BrooseBucket; display: "p=360,60;i=block/table"; bBucket : BrooseBucket; display: "p=420,60;i=block/table"; broose: Broose; parameters: keyLength = keyLength, localPort = localPort, debugOutput = debugOutput, shiftingBits = shiftingBits, lookupNumberNextHops = lookupNumberNextHops, lookupParallelPaths = lookupParallelPaths, lookupParallelRpcs = lookupParallelRpcs, lookupSecure = lookupSecure, lookupMerge = lookupMerge, hopCountMax = hopCountMax, measureNetwInitPhase = measureNetwInitPhase, drawOverlayTopology = drawOverlayTopology; display: "p=60,60;i=block/circle"; connections: from_udp --> broose.from_udp++; to_udp <-- broose.to_udp++; from_app --> broose.from_app; to_app <-- broose.to_app; endmodule