Package: inet.linklayer.contract
IMacProtocol
module interfaceThis interface provides an abstraction for different MAC protocols.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
Name | Type | Description |
---|---|---|
AckingMac | compound module |
This module implements a trivial MAC protocol for use in AckingWirelessInterface. |
BMac | compound module |
Implementation of B-MAC (called also Berkeley MAC, Low Power Listening or LPL). See C++ documentation for details. |
CsmaCaMac | compound 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. |
Ieee80211Mac | compound module |
Implementation of the 802.11 MAC protocol. This module is intended to be used in combination with the Ieee80211Radio module as the physical layer. |
Ieee802154Mac | compound module |
Generic CSMA protocol supporting Mac-ACKs as well as constant, linear or exponential backoff times. |
Ieee802154NarrowbandMac | compound module | (no description) |
LMac | compound module |
Implementation of L-MAC (Lightweight Medium Access Protocol for Wireless Sensor Networks). |
ShortcutMac | simple module |
This module implements a simple shortcut to peer MAC protocol that completely bypasses the physical layer. Packets received from the upper layer protocols are never lost. The MAC protocol directly sends packets to the destination MAC protocol without any physical layer processing. Physical layer overhead is simply simulated by overhead bits, overhead transmission duration and a propagation delay. |
XMac | compound module |
Implementation of X-MAC. See C++ documentation for details. |
Used in compound modules
Name | Type | Description |
---|---|---|
WirelessInterface | compound module |
This module implements a generic wireless network interface. |
Known subclasses
Name | Type | Description |
---|---|---|
IIeee80211Mac | module interface |
Module interface for the IEEE 802.11 MAC module type. |
Properties
Name | Value | Description |
---|---|---|
display | i=block/rxtx |
Source code
// // This interface provides an abstraction for different MAC protocols. // moduleinterface IMacProtocol { parameters: @display("i=block/rxtx"); gates: input upperLayerIn @labels(INetworkHeader/down); output upperLayerOut @labels(INetworkHeader/up); input lowerLayerIn @labels(ILinkLayerFrame/up); output lowerLayerOut @labels(ILinkLayerFrame/down); }File: src/inet/linklayer/contract/IMacProtocol.ned