Simple Module Gia

File: Overlay/Gia/Gia.ned

C++ definition: click here

The main module of the GIA implementation

Author: Robert Palmer

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.

Used in compound modules:

If a module type shows up more than once, that means it has been defined in more than one NED file.

OverlayGia

Overlay Module which connects Gia-Module with its helper modules (TokenFactory-, Neighbors-, KeyList-Module)

Author: Robert Palmer

Parameters:

Name Type Description
localPort numeric

local UDP Port for overlay

debugOutput bool

output debug messages?

maxNeighbors numeric

maximum number of neighbors

minNeighbors numeric

minimum number of neighbors

maxTopAdaptionInterval numeric

maximum topology adaption interval

topAdaptionAggressiveness numeric

topology adaption aggressiveness

maxLevelOfSatisfaction numeric

maximum level of satisfaction

maxHopCount numeric

maximum TTL for sent messages

messageTimeout numeric

message timeout

neighborTimeout numeric

neighbor timeout

tokenWaitTime numeric

delay when sending new token

keyListDelay numeric

delay when sending new key list to our neighbors

updateDelay numeric

delay between two update messages

outputNodeDetails bool

output node details

optimizeReversePath bool

use optimized reverse path?

useBaseLookup bool

use the base lookup class

iterativeLookup bool

do iterative instead of recursive lookups

lookupNumberNextHops numeric
lookupParallelPaths numeric
lookupParallelRpcs numeric
lookupSecure bool
lookupMerge bool
measureNetwInitPhase bool
hopCountMax numeric
drawOverlayTopology numeric
keyLength numeric

Gates:

Name Direction Description
from_udp [ ] input

gate from UDP

to_udp [ ] output

gate to UDP

from_app input

gate from application

to_app output

gate to application

Source code:

simple Gia
    parameters:
		localPort : numeric, 			// local UDP Port for overlay
		debugOutput : bool, 			// output debug messages?
		maxNeighbors : numeric, 		// maximum number of neighbors
		minNeighbors : numeric, 		// minimum number of neighbors
		maxTopAdaptionInterval : numeric, 	// maximum topology adaption interval
		topAdaptionAggressiveness : numeric, 	// topology adaption aggressiveness
		maxLevelOfSatisfaction : numeric, 	// maximum level of satisfaction
		maxHopCount : numeric, 			// maximum TTL for sent messages
		messageTimeout : numeric, 		// message timeout
		neighborTimeout : numeric, 		// neighbor timeout
		tokenWaitTime : numeric, 		// delay when sending new token
		keyListDelay : numeric, 		// delay when sending new key list to our neighbors
		updateDelay : numeric, 			// delay between two update messages
		outputNodeDetails : bool, 		// output node details
		optimizeReversePath : bool, 		// use optimized reverse path?
                useBaseLookup : bool,	// use the base lookup class
                iterativeLookup : bool, // do iterative instead of recursive lookups
                lookupNumberNextHops : numeric,
                lookupParallelPaths : numeric,
                lookupParallelRpcs : numeric,
                lookupSecure : bool,
                lookupMerge : bool,
		measureNetwInitPhase : bool,
		hopCountMax : numeric,
		drawOverlayTopology : numeric,
		keyLength : numeric;
    
    gates:
        in: from_udp[];					// gate from UDP
        out: to_udp[];					// gate to UDP
	in: from_app;					// gate from application
	out: to_app;					// gate to application
endsimple