INET Framework for OMNeT++/OMNEST
inet::ieee80211::EdcaCollisionController Class Reference

#include <EdcaCollisionController.h>

Inheritance diagram for inet::ieee80211::EdcaCollisionController:
inet::ieee80211::IEdcaCollisionController

Public Member Functions

virtual void expectedChannelAccess (Edcaf *edcaf, simtime_t time) override
 
virtual bool isInternalCollision (Edcaf *edcaf) override
 
- Public Member Functions inherited from inet::ieee80211::IEdcaCollisionController
virtual ~IEdcaCollisionController ()
 

Protected Member Functions

virtual int numInitStages () const override
 
virtual void initialize () override
 

Protected Attributes

simtime_t txStartTimes [4]
 

Member Function Documentation

◆ expectedChannelAccess()

void inet::ieee80211::EdcaCollisionController::expectedChannelAccess ( Edcaf edcaf,
simtime_t  time 
)
overridevirtual

Implements inet::ieee80211::IEdcaCollisionController.

27 {
28  auto ac = edcaf->getAccessCategory();
29  EV_INFO << "The expected channel access of the " << printAccessCategory(ac) << " queue is: " << time << std::endl;
30  txStartTimes[ac] = time;
31 }

◆ initialize()

void inet::ieee80211::EdcaCollisionController::initialize ( )
overrideprotectedvirtual
19 {
20  for (int ac = 0; ac < 4; ac++) {
21  txStartTimes[ac] = -1;
22  WATCH(txStartTimes[ac]);
23  }
24 }

◆ isInternalCollision()

bool inet::ieee80211::EdcaCollisionController::isInternalCollision ( Edcaf edcaf)
overridevirtual

Implements inet::ieee80211::IEdcaCollisionController.

34 {
35  simtime_t now = simTime();
36  AccessCategory accessCategory = edcaf->getAccessCategory();
37  if (txStartTimes[accessCategory] == now) {
38  for (int ac = accessCategory + 1; ac < 4; ac++) {
39  if (txStartTimes[ac] == now) {
40  EV_WARN << "Internal collision detected between multiple access categories for the current simulation time.\n";
41  return true;
42  }
43  }
44  }
45  return false;
46 }

◆ numInitStages()

virtual int inet::ieee80211::EdcaCollisionController::numInitStages ( ) const
inlineoverrideprotectedvirtual
22 { return NUM_INIT_STAGES; }

Member Data Documentation

◆ txStartTimes

simtime_t inet::ieee80211::EdcaCollisionController::txStartTimes[4]
protected

The documentation for this class was generated from the following files:
inet::ieee80211::EdcaCollisionController::txStartTimes
simtime_t txStartTimes[4]
Definition: EdcaCollisionController.h:19
inet::ieee80211::printAccessCategory
std::string printAccessCategory(AccessCategory ac)
Definition: AccessCategory.h:27
NUM_INIT_STAGES
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
inet::ieee80211::AccessCategory
AccessCategory
IEEE 802.11e QoS (EDCA) access categories.
Definition: AccessCategory.h:19