Simple Module BaseMacLayer

Package: org.mixim.base.modules
File: 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.

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:

BaseLayer (simple module)

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

Known subclasses:

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.

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

debug switch

headerLength double

length of the MAC packet header (in bits)

Properties:

Name Value Description
class BaseMacLayer

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:

// Base module for every mac layer module
simple BaseMacLayer extends BaseLayer
{
    parameters:
        @class(BaseMacLayer);
        bool coreDebug; // debug switch
        double headerLength @unit(bit); // length of the MAC packet header (in bits)
}