Compound Module ClientHost

File: networks/baseStationNet/ClientHost.ned

The ClientHost is a compound module that implements a very simple mobile client. It only consists of basic modules and the ClientApplLayer.

Author: Daniel Willkomm

blackboard: Blackboard mobility: ConstSpeedMobility appl: applLayer like BasicApplLayer arp: SimpleArp net: SimpleNetwLayer nic: CoreTestNic

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.

BasicApplLayer

Basic class for the application layer

Blackboard

The Blackboard works as entity to enable inter layer / process communication.

ConstSpeedMobility

Controls all movement related things of a host

CoreTestNic

The nic (network interface card) is a compound module that contains the MAC and PHY of a host within the Mobility Framework

SimpleArp (no description)
SimpleNetwLayer

Basic class for the network layer

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.

BaseStationNetwork

A WLAN like base station controlled network

Parameters:

Name Type Description
logName string

TKEnv display name

applLayer string

application layer type

Gates:

Name Direction Description
radioIn input

gate for sendDirect

Unassigned submodule parameters:

Name Type Description
blackboard.coreDebug numeric const

debug switch for core framework

mobility.coreDebug bool

core debug switch

mobility.debug bool

debug switch

mobility.speed numeric const

spped of the host (in m/s)

mobility.updateInterval numeric const

time interval to update the hosts position

mobility.x numeric const

x starting point of the node (-1 = random)

mobility.y numeric const

y starting point of the node (-1 = random)

appl.debug bool

debug switch

appl.headerLength numeric const

length of the application message header (in bits)

arp.debug bool
net.debug numeric const

debug switch for the core framework

net.headerLength numeric const

length of the network packet header (in bits)

nic.mac.debug bool

debug switch

nic.mac.headerLength numeric const

level at which we consider medium busy

nic.mac.queueLength numeric const

length of the MAC queue

nic.mac.bitrate numeric const

bit rate in bit/s

nic.mac.defaultChannel numeric const

default channel

nic.decider.coreDebug bool

debug switch

nic.snrEval.coreDebug bool

debug switch

nic.snrEval.headerLength numeric const
nic.radio.debug bool
nic.radio.swSleep numeric const

time parameters, how long does it take to switch to sleep mode

nic.radio.swSend numeric const

switch to send mode

nic.radio.swRecv numeric const

switch to recv mode

Source code:

module ClientHost
    parameters:
    logName: string, //TKEnv display name
        applLayer: string; //application layer type

    gates:
    in: radioIn; // gate for sendDirect

    submodules:
        blackboard: Blackboard;
            display: "p=130,70;b=25,25;o=black";
        mobility: ConstSpeedMobility;
            display: "p=130,140;i=cogwheel2";
        appl: applLayer like BasicApplLayer;
            display: "b=35,26;p=60,50;i=app";
        arp: SimpleArp;
            display: "p=200,225;b=30,25";
        net: SimpleNetwLayer;
            display: "b=32,30;p=60,108;i=prot1";
        nic: CoreTestNic;
            display: "b=32,30;p=60,166;i=iface";
    connections:
        nic.uppergateOut --> net.lowergateIn;
        nic.uppergateIn <-- net.lowergateOut;
	    nic.upperControlOut --> net.lowerControlIn;

        net.uppergateOut --> appl.lowergateIn;
        net.uppergateIn <-- appl.lowergateOut;
	    net.upperControlOut --> appl.lowerControlIn;

    	radioIn --> nic.radioIn;

    display: "p=10,10;b=180,200,rect;o=white";
endmodule