Compound Module OverlayVast

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

vast: Vast neighborsList: NeighborsList

Usage diagram:

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.

Contains the following modules:

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)

Gates:

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

Unassigned submodule parameters:

Name Type Description
vast.localPort numeric

UDP port for Vast messages

vast.debugOutput bool

enable debug output

vast.keyLength numeric

overlay key length in bits

vast.useCommonAPIforward bool

enable CommonAPI forward() calls

vast.drawOverlayTopology bool

draw arrow to successor node?

vast.hopCountMax numeric

maximum number of overlay hops

vast.joinOnApplicationRequest bool

only join the overlay on application request

vast.recNumRedundantNodes numeric

numRedundantNodes for recursive routing

vast.lookupParallelPaths numeric

number of parallel paths

vast.lookupParallelRpcs numeric

number of nodes to ask in parallel

vast.lookupSecure bool

true, if all nodes should be identified with a ping

vast.lookupMerge bool

true, if parallel Rpc results should be merged

vast.lookupStrictParallelRpcs bool

limited the number of concurrent rpcs to parameter parallelRpcs

vast.lookupUseAllParallelResponses bool

merge all parallel responses from earlier steps

vast.lookupNewRpcOnEveryTimeout bool

send a new RPC immediately after an RPC timeouts

vast.lookupNewRpcOnEveryResponse bool

send a new RPC after every response, even if there was no progress

vast.lookupFinishOnFirstUnchanged bool

finish lookup, if the last pending RPC returned without progress

vast.lookupFailedNodeRpcs bool

communicate failed nodes

vast.lookupRedundantNodes numeric

number of next hops in each step

vast.routeMsgAcks bool

use RPCs for route messages

vast.routingType string

default routing mode (iterative, semi-recursive,...)

vast.collectPerHopDelay bool

delay statistics for single hops

vast.debugVastOutput bool
vast.ignoreFalseKeys bool
vast.AOIWidth numeric
vast.joinTimeout numeric
vast.pingTimeout numeric

Source code:

module OverlayVast
    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;
            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