Compound Module PhyMacHost

Package: org.mixim.examples.CSMAMac
File: examples/CSMAMac/PhyMacHost.ned

(no description)

BaseUtility BaseMobility BaseArp SimpleNetwLayer PhyMacNic

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Networks:

CSMAMac (network)

This example shows how to use MiXiMs CSMA protocol implementation.

Parameters:

Name Type Default value Description
numHosts double

total number of hosts in the network

Properties:

Name Value Description
display bgb=180,200,white,,;bgp=10,10

Gates:

Name Direction Size Description
radioIn input

Unassigned submodule parameters:

Name Type Default value Description
utility.coreDebug bool

debug switch for the base framework

mobility.coreDebug bool

debug switch for the core framework

mobility.x double

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

mobility.y double

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

mobility.z double

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

arp.coreDebug bool

debug switch for the core framework

net.ip double
net.isSwitch bool
net.maxTtl double
net.boredTime double
nic.phy.coreDebug bool

debug switch for core framework

nic.phy.recordStats bool false

enable/disable tracking of statistics (eg. cOutvectors)

nic.phy.headerLength int 0

defines the length of the phy header (/preamble)

nic.phy.usePropagationDelay bool

Should transmission delay be simulated?

nic.phy.thermalNoise double

the strength of the thermal noise [dBm]

nic.phy.useThermalNoise bool

should thermal noise be considered?

nic.phy.analogueModels xml

Specification of the analogue models to use and their parameters

nic.phy.decider xml

Specification of the decider to use and its parameters

nic.phy.sensitivity double

The sensitivity of the physical layer [dBm]

nic.phy.maxTXPower double

The maximum transimission power of the physical layer [mW]

nic.phy.timeRXToTX double 0

switchTimes [s]:

nic.phy.timeRXToSleep double 0
nic.phy.timeTXToRX double 0
nic.phy.timeTXToSleep double 0
nic.phy.timeSleepToRX double 0
nic.phy.timeSleepToTX double 0
nic.phy.initialRadioState int 0

state the radio is initially in

nic.phy.radioMinAtt double 1.0

radios gain factor (attenuation) while receiving

nic.phy.radioMaxAtt double 0.0

radios gain factor (attenuation) while not receiving

nic.phy.nbRadioChannels int 1

Number of available radio channels. Defaults to single channel radio.

nic.phy.initialRadioChannel int 0

Initial radio channel.

nic.mac.notAffectedByHostState bool false
nic.mac.coreDebug bool

debug switch

nic.mac.headerLength double

length of the MAC packet header (in bits)

nic.mac.debug bool false

enable debugging for this module

nic.mac.slotDuration double

how long is a slot? [s]

nic.mac.difs double

maximum time between a packet and its ack [s]

nic.mac.maxTxAttempts double

maximum number of transmission attempts

nic.mac.queueLength int

length of the MAC queue

nic.mac.defaultChannel double

default channel

nic.mac.bitrate double

bit rate [bps]

nic.mac.txPower double

tx power [mW]

nic.mac.contentionWindow double

contention window

Source code:

module PhyMacHost
{
    parameters:
        double numHosts; // total number of hosts in the network

        @display("bgb=180,200,white,,;bgp=10,10");
    gates:
        input radioIn;

    submodules:
        utility: BaseUtility {
            parameters:
                @display("p=130,60;i=block/blackboard");
        }
        mobility: BaseMobility {
            parameters:
                @display("p=130,130;i=block/cogwheel");
        }
        arp: BaseArp {
            @display("p=200,225;b=30,25");
        }
        net: SimpleNetwLayer {
            parameters:
                @display("p=60,84;b=80,30,rect,white");
        }
        nic: PhyMacNic {
            parameters:
                @display("b=32,30;p=60,153;i=block/ifcard");
        }
    connections:
        nic.upperGateOut --> { @display("ls=black;m=m,25,50,25,0"); } --> net.lowerGateIn;
        nic.upperGateIn <-- { @display("ls=black;m=m,15,50,15,0"); } <-- net.lowerGateOut;
        nic.upperControlOut --> { @display("ls=red;m=m,75,50,75,0"); } --> net.lowerControlIn;
        nic.upperControlIn <-- { @display("ls=red;m=m,85,0,85,0"); } <-- net.lowerControlOut;

        radioIn --> nic.radioIn;

}