MACProtocolBase

Package: inet.linklayer.base

MACProtocolBase

simple module

Module base for different MAC protocols.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

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.

CsmaCaMac simple module

Implements an imaginary CSMA/CA-based MAC protocol with optional acknowledgements and a retry mechanism. With the appropriate settings, it can approximate basic 802.11b ad-hoc mode operation.

IdealMac simple module

Implements a trivial MAC layer for use in IdealWirelessNic.

LMacLayer simple module

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

XMacLayer simple module

Implementation of X-MAC. See C++ documentation for details.

Extends

Name Type Description
LayeredProtocolBase simple module

Module base for different layered protocols.

Parameters

Name Type Default value Description
interfaceTableModule string

Properties

Name Value Description
display i=block/rxtx

Gates

Name Direction Size Description
upperLayerIn input
upperLayerOut output
lowerLayerIn input
lowerLayerOut output

Signals

Name Type Unit
packetReceivedFromUpper cPacket
packetReceivedFromLower cPacket
packetFromLowerDropped cPacket
packetFromUpperDropped cPacket
packetSentToLower cPacket
packetSentToUpper cPacket

Source code

//
// Module base for different MAC protocols.
//
simple MACProtocolBase extends LayeredProtocolBase
{
    parameters:
        string interfaceTableModule;
        @display("i=block/rxtx");
    gates:
        input upperLayerIn @labels(INetworkDatagram/down);
        output upperLayerOut @labels(INetworkDatagram/up);
        input lowerLayerIn @labels(ILinkLayerFrame/up);
        output lowerLayerOut @labels(ILinkLayerFrame/down);
}
File: src/inet/linklayer/base/MACProtocolBase.ned