File: Overlay/Vast/OverlayVast.ned
Implementation of the Vast overlay as described in "Scalable peer-to-peer networked virtual environment" by S.-Y. Hu and G.-M. Liao, published in NetGames �04: Proceedings of 3rd ACM SIGCOMM workshop on Network and system support for games, pages
Author: Ingmar Baumgart, Markus Mauch
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.
NeighborsList | (no description) |
Vast | (no description) |
Name | Type | Description |
---|---|---|
localPort | numeric | UDP port for Vast messages |
debugOutput | bool | enable debug output |
keyLength | numeric | overlay key length in bits |
measureNetwInitPhase | bool | gather statistics when bootstrapping |
useCommonAPIforward | bool | enable CommonAPI forward() calls |
collectPerHopDelay | bool | delay statistics for single hops |
drawOverlayTopology | bool | draw arrow to successor node? |
hopCountMax | numeric | maximum number of overlay hops |
joinOnApplicationRequest | bool | only join the overlay on application request |
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 |
lookupFailedNodeRpcs | bool | communicate failed nodes |
useNextHopRpc | bool | use RPCs for route messages |
useBaseLookup | bool | use the base lookup class |
iterativeLookup | bool | do iterative instead of recursive lookups |
debugVastOutput | bool | |
ignoreFalseKeys | bool | |
AOIWidth | numeric | |
joinTimeout | numeric | |
pingTimeout | numeric |
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 |
Name | Type | Description |
---|
module OverlayVast parameters: localPort: numeric, // UDP port for Vast messages debugOutput: bool, // enable debug output keyLength : numeric, // overlay key length in bits measureNetwInitPhase: bool, // gather statistics when bootstrapping useCommonAPIforward : bool, // enable CommonAPI forward() calls collectPerHopDelay : bool, // delay statistics for single hops drawOverlayTopology : bool, // draw arrow to successor node? hopCountMax : numeric, // maximum number of overlay hops joinOnApplicationRequest : bool, // only join the overlay on application request 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 lookupFailedNodeRpcs : bool, // communicate failed nodes useNextHopRpc : bool, // use RPCs for route messages useBaseLookup : bool, // use the base lookup class iterativeLookup : bool, // do iterative instead of recursive lookups debugVastOutput: bool, ignoreFalseKeys: bool, AOIWidth: numeric, joinTimeout: numeric, pingTimeout: numeric; 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 submodules: vast: Vast; parameters: localPort=localPort, // UDP port for Vast messages debugOutput=debugOutput, // enable debug output keyLength=keyLength, // overlay key length in bits measureNetwInitPhase=measureNetwInitPhase, // gather statistics when bootstrapping collectPerHopDelay=collectPerHopDelay, // delay statistics for single hops drawOverlayTopology=drawOverlayTopology, // draw arrow to successor node? hopCountMax=hopCountMax, // maximum number of overlay hops joinOnApplicationRequest=joinOnApplicationRequest, // only join the overlay on application request useCommonAPIforward = useCommonAPIforward, useNextHopRpc = useNextHopRpc, // use RPCs for route messages lookupParallelPaths=lookupParallelPaths, // number of parallel paths lookupParallelRpcs=lookupParallelRpcs, // number of nodes to ask in parallel lookupSecure=lookupSecure, // true, if all nodes should be identified with a ping lookupMerge=lookupMerge, // true, if parallel Rpc results should be merged lookupFailedNodeRpcs=lookupFailedNodeRpcs, // communicate failed nodes lookupRedundantNodes=lookupRedundantNodes, // number of next hops in each step useBaseLookup=useBaseLookup, // use the base lookup class iterativeLookup=iterativeLookup, // do iterative instead of recursive lookups debugVastOutput=debugVastOutput, ignoreFalseKeys=ignoreFalseKeys, AOIWidth=AOIWidth, joinTimeout=joinTimeout, pingTimeout=pingTimeout; display: "p=60,60;i=block/circle"; neighborsList: NeighborsList; display: "p=180,60;i=block/table"; connections nocheck: from_udp --> vast.from_udp++; to_udp <-- vast.to_udp++; from_app --> vast.from_app; to_app <-- vast.to_app; endmodule