Network Mac80211

Package: org.mixim.examples.Mac80211
File: examples/Mac80211/Mac80211.ned

This example shows how to use MiXiMs 802.11 protocol implementation.

The network consists of ten hosts broadcasting bursts of three packets to the other hosts. When a broadcast is received a reply is sent back to the sender.

The hosts use "Mac80211" as MAC layer and their phy layer uses "SimplePathlossModel" as AnalogueModel and "Decider80211" as Decider. Note that Mac80211 and Decider80211 are always meant to be used together.

The default configuration in omnetpp.ini uses no propagation delay.

BaseWorldUtility ConnectionManager Host80211

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.

Parameters:

Name Type Default value Description
playgroundSizeX double

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

playgroundSizeY double

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

playgroundSizeZ double

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

numHosts double

total number of hosts in the network

Properties:

Name Value Description
isNetwork
display bgb=$playgroundSizeX,$playgroundSizeY,white,,;bgp=10,50

Unassigned submodule parameters:

Name Type Default value Description
world.coreDebug bool

debug switch for the base framework

world.useTorus bool

use the playground as torus?

world.use2D bool

use a 2-dimensional world?

connectionManager.coreDebug bool

debug switch for core framework

connectionManager.sendDirect bool

send directly to the node or create separate gates for every connection

connectionManager.pMax double

maximum sending power used for this network [mW]

connectionManager.sat double

minimum signal attenuation threshold [dBm]

connectionManager.alpha double

minimum path loss coefficient

connectionManager.carrierFrequency double

minimum carrier frequency of the channel [Hz]

connectionManager.drawMaxIntfDist bool false

should the maximum interference distance be displayed for each node?

host.utility.coreDebug bool

debug switch for the base framework

host.arp.coreDebug bool

debug switch for the core framework

host.mobility.x double

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

host.mobility.y double

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

host.mobility.z double

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

host.appl.headerLength int

length of the application message header (in bits)

host.net.stats bool

stats switch

host.net.headerLength double

length of the network packet header (in bits)

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

debug switch

host.nic.mac.headerLength double 272bit

length of the MAC packet header (in bits)

host.nic.mac.debug bool false

enable debugging for this module

host.nic.mac.queueLength int 20
host.nic.mac.rtsCtsThreshold int -1

Number of bits in a packet before RTS/CTS is used. Is currently not used.

host.nic.mac.bitrate double 2E+6bps
host.nic.mac.autoBitrate bool false

auto bit rate selection support: specify borders at which to change modulation.

host.nic.mac.snr2Mbit double 1.46dB

threshold to use 2Mbit (in dB)

host.nic.mac.snr5Mbit double 2.6dB

threshold to use 5.5Mbit (in dB)

host.nic.mac.snr11Mbit double 5.68dB

threshold to use 11Mbit (in dB)

host.nic.mac.neighborhoodCacheSize int 30

keep information on neighborhood

host.nic.mac.neighborhoodCacheMaxAge double 100s

consider information in cache outdate if older than (in seconds)

host.nic.mac.txPower double 110.11mW

the power to transmit packets with [mW]

host.nic.phy.coreDebug bool

debug switch for core framework

host.nic.phy.recordStats bool false

enable/disable tracking of statistics (eg. cOutvectors)

host.nic.phy.usePropagationDelay bool

Should transmission delay be simulated?

host.nic.phy.thermalNoise double

the strength of the thermal noise [dBm]

host.nic.phy.useThermalNoise bool

should thermal noise be considered?

host.nic.phy.analogueModels xml

Specification of the analogue models to use and their parameters

host.nic.phy.decider xml xmldoc("Nic80211_Decider.xml")

Specification of the decider to use and its parameters

host.nic.phy.sensitivity double -119.5dBm

The sensitivity of the physical layer [dBm]

host.nic.phy.maxTXPower double

The maximum transimission power of the physical layer [mW]

host.nic.phy.initialRadioState int 0

state the radio is initially in

host.nic.phy.radioMinAtt double 1.0

radios gain factor (attenuation) while receiving

host.nic.phy.radioMaxAtt double 0.0

radios gain factor (attenuation) while not receiving

host.nic.phy.nbRadioChannels int 15

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

host.nic.phy.initialRadioChannel int 1

Initial radio channel.

Source code:

//
//This example shows how to use MiXiMs 802.11 protocol implementation. 
//
//The network consists of ten hosts broadcasting bursts of three packets
//to the other hosts. When a broadcast is received a reply is sent back 
//to the sender.
//
//The hosts use "Mac80211" as MAC layer and their phy layer uses 
//"SimplePathlossModel" as AnalogueModel and "Decider80211" as Decider.
//Note that Mac80211 and Decider80211 are always meant to be used
//together.
//
//The default configuration in omnetpp.ini uses no propagation delay.
//
network Mac80211
{
    parameters:
        double playgroundSizeX @unit(m); // x size of the area the nodes are in (in meters)
        double playgroundSizeY @unit(m); // y size of the area the nodes are in (in meters)
        double playgroundSizeZ @unit(m); // z size of the area the nodes are in (in meters)
        double numHosts; // total number of hosts in the network  

        @display("bgb=$playgroundSizeX,$playgroundSizeY,white,,;bgp=10,50");

    submodules:
        world: BaseWorldUtility {
            parameters:
                playgroundSizeX = playgroundSizeX;
                playgroundSizeY = playgroundSizeY;
                playgroundSizeZ = playgroundSizeZ;
                @display("p=171,27;i=misc/globe");

        }
        connectionManager: ConnectionManager {
            parameters:
                @display("p=66,25;b=42,42,rect,green;i=abstract/multicast");
        }
        host[numHosts]: Host80211 {
            netwType = "BaseNetwLayer";
            applType = "BurstApplLayer";
            mobType = "ConstSpeedMobility";
        }

    connections allowunconnected:
    // all connections and gates are to be generated dynamically

}