|
INET Framework for OMNeT++/OMNEST
|
#include <QosRateSelection.h>
◆ computeControlFrameMode()
175 if (txopProcedure->isTxopInitiator(header)) {
179 if (!dynamicPtrCast<const Ieee80211BasicBlockAck>(header) && !dynamicPtrCast<const Ieee80211BasicBlockAckReq>(header)) {
196 else if (!txopProcedure->isTxopTerminator(header)) {
205 if (!dynamicPtrCast<const Ieee80211BasicBlockAck>(header) && !dynamicPtrCast<const Ieee80211BasicBlockAckReq>(header)) {
222 throw cRuntimeError(
"Control frames cannot terminate TXOPs");
◆ computeDataOrMgmtFrameMode()
122 if (dynamicPtrCast<const Ieee80211DataHeader>(dataOrMgmtHeader) &&
dataFrameMode)
124 if (dynamicPtrCast<const Ieee80211MgmtHeader>(dataOrMgmtHeader) &&
mgmtFrameMode)
131 if (dataOrMgmtHeader->getReceiverAddress().isMulticast()) {
◆ computeMode()
◆ computeResponseAckFrameMode()
◆ computeResponseBlockAckFrameMode()
Implements inet::ieee80211::IQosRateSelection.
114 if (dynamicPtrCast<const Ieee80211BasicBlockAckReq>(blockAckReq))
117 throw cRuntimeError(
"Unknown BlockAckReq frame type");
◆ computeResponseCtsFrameMode()
◆ frameTransmitted()
| void inet::ieee80211::QosRateSelection::frameTransmitted |
( |
Packet * |
packet, |
|
|
const Ptr< const Ieee80211MacHeader > & |
header |
|
) |
| |
|
virtual |
245 auto receiverAddr = header->getReceiverAddress();
◆ getMode()
51 throw cRuntimeError(
"Missing mode");
◆ initialize()
| void inet::ieee80211::QosRateSelection::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
Reimplemented from inet::ieee80211::ModeSetListener.
26 double multicastFrameBitrate = par(
"multicastFrameBitrate");
28 double dataFrameBitrate = par(
"dataFrameBitrate");
29 dataFrameMode = (dataFrameBitrate == -1) ?
nullptr :
modeSet->
getMode(
bps(dataFrameBitrate),
Hz(par(
"dataFrameBandwidth")), par(
"dataFrameNumSpatialStreams"));
30 double mgmtFrameBitrate = par(
"mgmtFrameBitrate");
32 double controlFrameBitrate = par(
"controlFrameBitrate");
34 double responseAckFrameBitrate = par(
"responseAckFrameBitrate");
36 double responseBlockAckFrameBitrate = par(
"responseBlockAckFrameBitrate");
38 double responseCtsFrameBitrate = par(
"responseCtsFrameBitrate");
◆ isControlResponseFrame()
56 bool nonSelfCts = dynamicPtrCast<const Ieee80211CtsFrame>(header) && !txopProcedure->isTxopInitiator(header);
57 bool blockAck = dynamicPtrCast<const Ieee80211BlockAck>(header) !=
nullptr;
58 bool ack = dynamicPtrCast<const Ieee80211AckFrame>(header) !=
nullptr;
59 return ack || blockAck || nonSelfCts;
◆ numInitStages()
| virtual int inet::ieee80211::QosRateSelection::numInitStages |
( |
| ) |
const |
|
inlineoverrideprotectedvirtual |
◆ receiveSignal()
| void inet::ieee80211::QosRateSelection::receiveSignal |
( |
cComponent * |
source, |
|
|
simsignal_t |
signalID, |
|
|
cObject * |
obj, |
|
|
cObject * |
details |
|
) |
| |
|
overrideprotectedvirtual |
◆ controlFrameMode
◆ dataFrameMode
◆ dataOrMgmtRateControl
| IRateControl* inet::ieee80211::QosRateSelection::dataOrMgmtRateControl = nullptr |
|
protected |
◆ fastestMandatoryMode
◆ lastTransmittedFrameMode
◆ mgmtFrameMode
◆ modeSet
◆ multicastFrameMode
◆ responseAckFrameMode
◆ responseBlockAckFrameMode
◆ responseCtsFrameMode
The documentation for this class was generated from the following files:
const physicallayer::IIeee80211Mode * multicastFrameMode
Definition: QosRateSelection.h:40
const physicallayer::IIeee80211Mode * mgmtFrameMode
Definition: QosRateSelection.h:44
const physicallayer::IIeee80211Mode * dataFrameMode
Definition: QosRateSelection.h:43
pow< s, -1 > Hz
Definition: Units.h:935
bool getIsMandatory(const IIeee80211Mode *mode) const
Definition: Ieee80211ModeSet.cc:493
virtual const IIeee80211Mode * getMode() const
const physicallayer::Ieee80211ModeSet * modeSet
Definition: QosRateSelection.h:36
compose< b, pow< s, -1 > > bps
Definition: Units.h:1169
bool containsMode(const IIeee80211Mode *mode) const
Definition: Ieee80211ModeSet.h:48
virtual void initialize(int stage) override
Definition: ModeSetListener.cc:17
simsignal_t modesetChangedSignal
Definition: Simsignals.cc:24
const physicallayer::IIeee80211Mode * controlFrameMode
Definition: QosRateSelection.h:45
virtual const physicallayer::IIeee80211Mode * computeControlFrameMode(const Ptr< const Ieee80211MacHeader > &header, TxopProcedure *txopProcedure)
Definition: QosRateSelection.cc:168
const IIeee80211Mode * getSlowerMandatoryMode(const IIeee80211Mode *mode) const
Definition: Ieee80211ModeSet.cc:581
const physicallayer::IIeee80211Mode * responseBlockAckFrameMode
Definition: QosRateSelection.h:49
virtual const physicallayer::IIeee80211Mode * getMode(Packet *packet, const Ptr< const Ieee80211MacHeader > &header)
Definition: QosRateSelection.cc:43
Class generated from inet/physicallayer/wireless/ieee80211/packetlevel/Ieee80211Tag....
Definition: Ieee80211Tag_m.h:107
virtual const physicallayer::IIeee80211Mode * getRate()=0
const IIeee80211Mode * getFastestMandatoryMode() const
Definition: Ieee80211ModeSet.cc:573
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
virtual bool isControlResponseFrame(const Ptr< const Ieee80211MacHeader > &header, TxopProcedure *txopProcedure)
Definition: QosRateSelection.cc:54
std::map< MacAddress, const physicallayer::IIeee80211Mode * > lastTransmittedFrameMode
Definition: QosRateSelection.h:37
const physicallayer::IIeee80211Mode * fastestMandatoryMode
Definition: QosRateSelection.h:41
#define Enter_Method(...)
Definition: SelfDoc.h:71
Class generated from inet/physicallayer/wireless/ieee80211/packetlevel/Ieee80211Tag....
Definition: Ieee80211Tag_m.h:142
const IIeee80211Mode * getMode(bps bitrate, Hz bandwidth=Hz(NaN), int numSpatialStreams=-1) const
Definition: Ieee80211ModeSet.cc:519
const physicallayer::IIeee80211Mode * responseAckFrameMode
Definition: QosRateSelection.h:47
const physicallayer::IIeee80211Mode * responseCtsFrameMode
Definition: QosRateSelection.h:48
IRateControl * dataOrMgmtRateControl
Definition: QosRateSelection.h:34
INET_API InitStage INITSTAGE_LINK_LAYER
Initialization of link-layer protocols.
virtual const physicallayer::IIeee80211Mode * computeDataOrMgmtFrameMode(const Ptr< const Ieee80211DataOrMgmtHeader > &dataOrMgmtHeader)
Definition: QosRateSelection.cc:120