Compound Module BaseStationNetwork

File: networks/baseStationNet/BaseStationNetwork.ned

A WLAN like base station controlled network

A network consisting of a base station and numClients clients. The base station is fixed and the clients move around. The base station periodically polls all reachable clients in a round robin manner

Author: Daniel Willkomm

channelcontrol: ChannelControl baseStationHost: BaseStationHost clientHost: ClientHost

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.

BaseStationHost

The BaseStationHost is a compound module that implements a test base station. The test base station contains the PollApplLayer which periodically polls all clients in the network.

ClientHost

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

ChannelControl (unknown -- not in documented files)

Networks:

baseStationSim

example centralized base station network simulation for the Mobility Framework

Parameters:

Name Type Description
playgroundSizeX numeric const

x size of the area the nodes are in (in meters)

playgroundSizeY numeric const

y size of the area the nodes are in (in meters)

numClients numeric const

total number of clients in the network

Unassigned submodule parameters:

Name Type Description
baseStationHost.logName string

TKEnv display name

baseStationHost.blackboard.coreDebug numeric const

debug switch for core framework

baseStationHost.mobility.coreDebug numeric const

debug switch for the core framework

baseStationHost.mobility.x numeric const

x coordinate of the nodes' position (-1 = random)

baseStationHost.mobility.y numeric const

y coordinate of the nodes' position (-1 = random)

baseStationHost.appl.debug bool

debug switch

baseStationHost.appl.headerLength numeric const

length of the application message header (in bits)

baseStationHost.appl.pollTimeout numeric const

timeout for poll messages

baseStationHost.appl.broadcastInterval numeric const

time between bradcast messages in seconds

baseStationHost.arp.debug bool
baseStationHost.net.debug numeric const

debug switch for the core framework

baseStationHost.net.headerLength numeric const

length of the network packet header (in bits)

baseStationHost.nic.mac.debug bool

debug switch

baseStationHost.nic.mac.headerLength numeric const

level at which we consider medium busy

baseStationHost.nic.mac.queueLength numeric const

length of the MAC queue

baseStationHost.nic.mac.bitrate numeric const

bit rate in bit/s

baseStationHost.nic.mac.defaultChannel numeric const

default channel

baseStationHost.nic.decider.coreDebug bool

debug switch

baseStationHost.nic.snrEval.coreDebug bool

debug switch

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

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

baseStationHost.nic.radio.swSend numeric const

switch to send mode

baseStationHost.nic.radio.swRecv numeric const

switch to recv mode

clientHost[*].logName string

TKEnv display name

clientHost[*].applLayer string

application layer type

clientHost[*].blackboard.coreDebug numeric const

debug switch for core framework

clientHost[*].mobility.coreDebug bool

core debug switch

clientHost[*].mobility.debug bool

debug switch

clientHost[*].mobility.speed numeric const

spped of the host (in m/s)

clientHost[*].mobility.updateInterval numeric const

time interval to update the hosts position

clientHost[*].mobility.x numeric const

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

clientHost[*].mobility.y numeric const

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

clientHost[*].appl.debug bool

debug switch

clientHost[*].appl.headerLength numeric const

length of the application message header (in bits)

clientHost[*].arp.debug bool
clientHost[*].net.debug numeric const

debug switch for the core framework

clientHost[*].net.headerLength numeric const

length of the network packet header (in bits)

clientHost[*].nic.mac.debug bool

debug switch

clientHost[*].nic.mac.headerLength numeric const

level at which we consider medium busy

clientHost[*].nic.mac.queueLength numeric const

length of the MAC queue

clientHost[*].nic.mac.bitrate numeric const

bit rate in bit/s

clientHost[*].nic.mac.defaultChannel numeric const

default channel

clientHost[*].nic.decider.coreDebug bool

debug switch

clientHost[*].nic.snrEval.coreDebug bool

debug switch

clientHost[*].nic.snrEval.headerLength numeric const
clientHost[*].nic.radio.debug bool
clientHost[*].nic.radio.swSleep numeric const

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

clientHost[*].nic.radio.swSend numeric const

switch to send mode

clientHost[*].nic.radio.swRecv numeric const

switch to recv mode

Source code:

module BaseStationNetwork 
    parameters: 
        playgroundSizeX : numeric const, // x size of the area the nodes are in (in meters)
        playgroundSizeY : numeric const, // y size of the area the nodes are in (in meters)
        numClients : numeric const; // total number of clients in the network
                                  
    submodules: 
        channelcontrol: ChannelControl; 
            parameters: 
                playgroundSizeX = playgroundSizeX, 
                playgroundSizeY = playgroundSizeY; 
            display: "p=60,30;i=eye14";
	baseStationHost: BaseStationHost;
	    parameters:
		numClients = numClients;
	    display: "50,50;i=pctower2";
        clientHost: ClientHost[numClients]; 
            display: "p=50,50;i=laptop";
    connections nocheck: 
                         // all connections and gates are to be generated dynamically
                         
    display: "p=10,10;b=$playgroundSizeX,$playgroundSizeY,rect;o=white";
endmodule