Compound Module CoreTestNic

File: contrib/nic/CoreTestNic.ned

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

The coreTesdNic is just for core testing purposes

IMPORTANT:
In order to work with the ChannelControl module the snrEval module has to be called "snrEval" in the ned file.

Author: Daniel Willkomm

mac: AlohaMacLayer decider: TestDecider snrEval: TestSnrEval radio: SingleChannelRadio

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.

AlohaMacLayer

Aloha MAC protocol

SingleChannelRadio (no description)
TestDecider

Test Decider module to test core functionality

TestSnrEval

Test SnrEval module to test core functionality

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.

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.

FloodHost

Flood Host

Gates:

Name Direction Description
uppergateIn input

to upper layers

uppergateOut output

from upper layers

upperControlOut output

control information

radioIn input

radioIn gate for sendDirect

Unassigned submodule parameters:

Name Type Description
mac.debug bool

debug switch

mac.headerLength numeric const

level at which we consider medium busy

mac.queueLength numeric const

length of the MAC queue

mac.bitrate numeric const

bit rate in bit/s

mac.defaultChannel numeric const

default channel

decider.coreDebug bool

debug switch

snrEval.coreDebug bool

debug switch

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

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

radio.swSend numeric const

switch to send mode

radio.swRecv numeric const

switch to recv mode

Source code:

module CoreTestNic 
    gates: 
        in: uppergateIn; // to upper layers
        out: uppergateOut, // from upper layers
             upperControlOut; // control information 
	in: radioIn; // radioIn gate for sendDirect
    submodules: 
        mac: AlohaMacLayer; 
            display: "p=60,50;b=32,30;i=prot2";
        decider: TestDecider; 
            display: "p=68,100;b=16,16;i=box2_s;o=white";
        snrEval: TestSnrEval; 
            display: "p=60,150;b=32,30;i=prot3";
	radio: SingleChannelRadio;
	    display: "p=90,50;b=32,30;o=red";
    
    connections: 
        decider.uppergateOut --> mac.lowergateIn display "m=m,50,50,75,0"; 
        snrEval.uppergateIn <-- mac.lowergateOut display "m=m,25,0,25,0"; 
        snrEval.uppergateOut --> decider.lowergateIn display "m=m,73,0,50,50";                                                                        
	snrEval.upperControlOut --> mac.lowerControlIn;
        mac.uppergateOut --> uppergateOut; 
	mac.upperControlOut --> upperControlOut;	   
        mac.uppergateIn <-- uppergateIn; 
	
	radioIn --> snrEval.radioIn;
                                         
    display: "p=10,10;b=101,180,rect;o=white";
endmodule