Package: inet.linklayer.contract
IMACProtocol
module interfaceThis interface provides an abstraction for different network protocols.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
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. |
Ieee80211CompatibleMac | compound module |
Delegate some upperMac parameters to Ieee80211Mac, to be more compatible with the old MAC. NOTE: NOT ALL PARAMETERS OF THE OLD MAC CAN BE MAPPED. |
Ieee80211Mac | compound module |
Implementation of the 802.11b MAC protocol. This module is intended to be used in combination with the Ieee80211Radio module as the physical layer. (The SnrEval80211 and Decider80211 modules should also work if per-packet bitrate setting gets implemented.) |
Ieee802154NarrowbandMac | simple module | (no description) |
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. |
Used in compound modules
Name | Type | Description |
---|---|---|
WirelessNic | compound module | (no description) |
Known subclasses
Name | Type | Description |
---|---|---|
IIeee80211Mac | module interface |
Module interface for all ieee802.11 mac modul |
Properties
Name | Value | Description |
---|---|---|
display | i=block/rxtx |
Source code
// // This interface provides an abstraction for different network protocols. // moduleinterface IMACProtocol { parameters: @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/contract/IMACProtocol.ned