Simple Module Mac80211

Package: org.mixim.modules.mac
File: modules/mac/Mac80211.ned

C++ definition

Implementation of the 802.11b MAC protocol. This module is intended to be used in combination with the Decider80211 as decider for the physical layer.

This module supports ad-hoc mode only (does not generate or handle management frames), and does not support fragmentation, RTS threshold, duplication detection and recovery.

Mac80211

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.

Extends:

BaseMacLayer (simple module)

Base module for every mac layer module

Known subclasses:

Mac80211MultiChannel (simple module)

Extends the the 802.11b MAC protocol by multi channel support meaning changing of the channel used for transmission and reception during run-time. This module is intended to be used in combination with the Decider80211MultiChannel as decider for the physical layer. See Nic80211MultiChannel for a pre configured NIC using this module.

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.

Nic80211 (compound module)

This NIC implements an 802.11 network interface card.

Nic80211Battery (compound module)

Based on Nic80211

Parameters:

Name Type Default value Description
notAffectedByHostState bool false
coreDebug bool

debug switch

headerLength double 272bit

length of the MAC packet header (in bits)

debug bool false

enable debugging for this module

queueLength int
rtsCtsThreshold int -1

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

bitrate double
autoBitrate bool

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

snr2Mbit double

threshold to use 2Mbit (in dB)

snr5Mbit double

threshold to use 5.5Mbit (in dB)

snr11Mbit double

threshold to use 11Mbit (in dB)

neighborhoodCacheSize int

keep information on neighborhood

neighborhoodCacheMaxAge double

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

txPower double

the power to transmit packets with [mW]

Properties:

Name Value Description
class Mac80211

Gates:

Name Direction Size Description
upperGateIn input

from upper layer

upperGateOut output

to uppe layer

upperControlIn input

control from upper layer

upperControlOut output

control to upper layer

lowerGateIn input

from lower layer

lowerGateOut output

to lower layer

lowerControlIn input

control from lower layer

lowerControlOut output

control to lower layer

Source code:

//
// Implementation of the 802.11b MAC protocol. This module is intended
// to be used in combination with the Decider80211 as decider for the 
// physical layer.
//
// This module supports ad-hoc mode only (does not generate or handle
// management frames), and does not support fragmentation, RTS threshold,
// duplication detection and recovery.
//
simple Mac80211 extends BaseMacLayer
{
    parameters:
        @class(Mac80211);
        // enable debugging for this module
        bool debug = default(false);

        int queueLength;
        // Number of bits in a packet before RTS/CTS is used. 
        // Is currently not used.
        int rtsCtsThreshold = default(-1);

        double bitrate @unit(bps);

        // auto bit rate selection support: specify borders at which
        // to change modulation.	
        bool autoBitrate;         // use auto bit rate adaptation
        double snr2Mbit @unit(dB);  // threshold to use 2Mbit (in dB)
        double snr5Mbit @unit(dB);  // threshold to use 5.5Mbit (in dB)
        double snr11Mbit @unit(dB);  // threshold to use 11Mbit (in dB)

        // keep information on neighborhood
        int neighborhoodCacheSize;
        // consider information in cache outdate if older than (in seconds)
        double neighborhoodCacheMaxAge @unit(s);
        //the power to transmit packets with [mW]
        double txPower @unit(mW);

        headerLength = default(272bit);
}