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

#include <QosRtsPolicy.h>

Inheritance diagram for inet::ieee80211::QosRtsPolicy:
inet::ieee80211::ModeSetListener inet::ieee80211::IRtsPolicy

Public Member Functions

virtual bool isRtsNeeded (Packet *packet, const Ptr< const Ieee80211MacHeader > &protectedHeader) const override
 
virtual simtime_t getCtsTimeout (Packet *packet, const Ptr< const Ieee80211RtsFrame > &rtsFrame) const override
 
virtual int getRtsThreshold () const override
 
- Public Member Functions inherited from inet::ieee80211::IRtsPolicy
virtual ~IRtsPolicy ()
 

Protected Member Functions

virtual int numInitStages () const override
 
virtual void initialize (int stage) override
 
- Protected Member Functions inherited from inet::ieee80211::ModeSetListener
virtual void receiveSignal (cComponent *source, simsignal_t signalID, cObject *obj, cObject *details) override
 

Protected Attributes

IQosRateSelectionrateSelection = nullptr
 
int rtsThreshold = -1
 
simtime_t ctsTimeout = -1
 
- Protected Attributes inherited from inet::ieee80211::ModeSetListener
physicallayer::Ieee80211ModeSetmodeSet = nullptr
 

Member Function Documentation

◆ getCtsTimeout()

simtime_t inet::ieee80211::QosRtsPolicy::getCtsTimeout ( Packet packet,
const Ptr< const Ieee80211RtsFrame > &  rtsFrame 
) const
overridevirtual

◆ getRtsThreshold()

virtual int inet::ieee80211::QosRtsPolicy::getRtsThreshold ( ) const
inlineoverridevirtual

Implements inet::ieee80211::IRtsPolicy.

32 { return rtsThreshold; }

◆ initialize()

void inet::ieee80211::QosRtsPolicy::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::ieee80211::ModeSetListener.

16 {
18  if (stage == INITSTAGE_LOCAL) {
19  rtsThreshold = par("rtsThreshold");
20  ctsTimeout = par("ctsTimeout");
21  rateSelection = check_and_cast<IQosRateSelection *>(getModuleByPath(par("rateSelectionModule")));
22  }
23 }

◆ isRtsNeeded()

bool inet::ieee80211::QosRtsPolicy::isRtsNeeded ( Packet packet,
const Ptr< const Ieee80211MacHeader > &  protectedHeader 
) const
overridevirtual

Implements inet::ieee80211::IRtsPolicy.

37 {
38  if (dynamicPtrCast<const Ieee80211BlockAckReq>(protectedHeader))
39  return false;
40  if (dynamicPtrCast<const Ieee80211DataOrMgmtHeader>(protectedHeader))
41  return packet->getByteLength() >= rtsThreshold && !protectedHeader->getReceiverAddress().isMulticast();
42  else
43  return false;
44 }

◆ numInitStages()

virtual int inet::ieee80211::QosRtsPolicy::numInitStages ( ) const
inlineoverrideprotectedvirtual

Reimplemented from inet::ieee80211::ModeSetListener.

26 { return NUM_INIT_STAGES; }

Member Data Documentation

◆ ctsTimeout

simtime_t inet::ieee80211::QosRtsPolicy::ctsTimeout = -1
protected

Referenced by getCtsTimeout(), and initialize().

◆ rateSelection

IQosRateSelection* inet::ieee80211::QosRtsPolicy::rateSelection = nullptr
protected

Referenced by getCtsTimeout(), and initialize().

◆ rtsThreshold

int inet::ieee80211::QosRtsPolicy::rtsThreshold = -1
protected

Referenced by initialize(), and isRtsNeeded().


The documentation for this class was generated from the following files:
inet::ieee80211::QosRtsPolicy::rateSelection
IQosRateSelection * rateSelection
Definition: QosRtsPolicy.h:21
inet::ieee80211::ModeSetListener::initialize
virtual void initialize(int stage) override
Definition: ModeSetListener.cc:17
inet::ieee80211::IQosRateSelection::computeResponseCtsFrameMode
virtual const physicallayer::IIeee80211Mode * computeResponseCtsFrameMode(Packet *packet, const Ptr< const Ieee80211RtsFrame > &rtsFrame)=0
inet::ieee80211::QosRtsPolicy::ctsTimeout
simtime_t ctsTimeout
Definition: QosRtsPolicy.h:23
inet::physicallayer::IIeee80211Mode::getPhyRxStartDelay
virtual const simtime_t getPhyRxStartDelay() const =0
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
NUM_INIT_STAGES
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
inet::physicallayer::Ieee80211ModeSet::getSlotTime
simtime_t getSlotTime() const
Definition: Ieee80211ModeSet.h:68
inet::physicallayer::Ieee80211ModeSet::getSifsTime
simtime_t getSifsTime() const
Definition: Ieee80211ModeSet.h:67
inet::ieee80211::ModeSetListener::modeSet
physicallayer::Ieee80211ModeSet * modeSet
Definition: ModeSetListener.h:19
inet::ieee80211::QosRtsPolicy::rtsThreshold
int rtsThreshold
Definition: QosRtsPolicy.h:22