Package: inet.linklayer.ieee80211.mac.contract
IRx
module interfaceInterface for Rx processes. The Rx process checks received frames for errors, manages the NAV, and notifies Tx processes about the channel state (free or busy). The channel is free only if it is free according to both the physical (CCA) and the virtual (NAV-based) carrier sense algorithms. Correctly received frames are sent up to UpperMac (see IUpperMac), corrupted frames are discarded. Tx processes are also notified about corrupted and correctly received frames. so they can switch between using DIFS/AIFS and EIFS according to the channel access procedure.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
Name | Type | Description |
---|---|---|
Rx | simple module |
The default implementation of IRx. |
Used in compound modules
Name | Type | Description |
---|---|---|
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.) |
Properties
Name | Value | Description |
---|---|---|
display | i=block/rx |
Source code
// // Interface for Rx processes. The Rx process checks received frames for // errors, manages the NAV, and notifies Tx processes about the channel state // (free or busy). The channel is free only if it is free according to both // the physical (CCA) and the virtual (NAV-based) carrier sense algorithms. // Correctly received frames are sent up to UpperMac (see IUpperMac), corrupted // frames are discarded. Tx processes are also notified about corrupted and // correctly received frames. so they can switch between using DIFS/AIFS and EIFS // according to the channel access procedure. // moduleinterface IRx { parameters: @display("i=block/rx"); }File: src/inet/linklayer/ieee80211/mac/contract/IRx.ned