Simple Module BaseMacLayer

Package: org.mixim.base.modules
File: src/base/modules/BaseMacLayer.ned

C++ definition

Base module for every mac layer module

BaseMacLayer

Usage diagram:

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

BaseMacLayer

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.

BaseMacLayer BMacLayer csma CSMAMacLayer LMacLayer Mac80211 SimpleMacLayer UWBIRMac BaseLayer IWirelessMac

Extends:

Name Type Description
BaseLayer simple module

Base module for all layer modules. Defines the in and out gates

Known subclasses:

Name Type Description
BMacLayer simple module

Implementation of B-MAC (called also Berkeley MAC, Low Power Listening or LPL). See C++ documentation for details.

csma simple module

Generic CSMA protocol supporting Mac-ACKs as well as constant, linear or exponential backoff times.

CSMAMacLayer simple module

CSMA MAC protocol

LMacLayer simple module

Implementation of L-MAC (Lightweight Medium Access Protocol for Wireless Sensor Networks)

Mac80211 simple module

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.

SimpleMacLayer simple module (no description)
UWBIRMac simple module

This class provides helper function for MAC modules that use the UWB-IR IEEE 802.15.4A model. Just before sending down a packet to the UWBIRPhyLayer, call prepareData(UWBIRMacPkt* packet). Just after receiving a packet from the UWBIRPhyLayer, call validatePacket(UWBIRMacPkt* packet) and check the returned bool value to know if the packet could be decoded successfully.

Parameters:

Name Type Default value Description
notAffectedByHostState bool false
coreDebug bool false

debug switch

headerLength int

length of the MAC packet header (in bits)

address string "auto"

MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 1.

Properties:

Name Value Description
class BaseMacLayer

Gates:

Name Direction Size Description
upperLayerIn input

from upper layer

upperLayerOut output

to uppe layer

upperControlIn input

control from upper layer

upperControlOut output

control to upper layer

lowerLayerIn input

from lower layer

lowerLayerOut output

to lower layer

lowerControlIn input

control from lower layer

lowerControlOut output

control to lower layer

Source code:

// Base module for every mac layer module
simple BaseMacLayer extends BaseLayer like IWirelessMac
{
    parameters:
        @class(BaseMacLayer);
        bool coreDebug = default(false);          // debug switch
        int headerLength @unit(bit);           // length of the MAC packet header (in bits)
        string address = default("auto");         // MAC address as hex string (12 hex digits), or
                                                  // "auto". "auto" values will be replaced by
                                                  // a generated MAC address in init stage 1.
}