|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
21 #ifndef QOS_FRAME_EXCHANGE_MANAGER_H
22 #define QOS_FRAME_EXCHANGE_MANAGER_H
75 Time ppduDurationLimit)
const;
103 Time response)
const override;
105 Time response)
const override;
a unique identifier for an interface.
bool m_setQosQueueSize
whether to set the Queue Size subfield of the QoS Control field of QoS data frames
void ForwardMpduDown(Ptr< WifiMacQueueItem > mpdu, WifiTxVector &txVector) override
Forward an MPDU down to the PHY layer.
An identifier for simulation events.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
bool m_initialFrame
true if transmitting the initial frame of a TXOP
void TransmissionFailed(void) override
Take necessary actions upon a transmission failure.
virtual bool IsWithinSizeAndTimeLimits(uint32_t ppduPayloadSize, Mac48Address receiver, const WifiTxParameters &txParams, Time ppduDurationLimit) const
Check whether the transmission time of the frame being built (as described by the given TX parameters...
void TransmissionSucceeded(void) override
Take necessary actions upon a transmission success.
void ReceiveMpdu(Ptr< WifiMacQueueItem > mpdu, RxSignalInfo rxSignalInfo, const WifiTxVector &txVector, bool inAmpdu) override
This method handles the reception of an MPDU (possibly included in an A-MPDU)
virtual ~QosFrameExchangeManager()
virtual bool StartFrameExchange(Ptr< QosTxop > edca, Time availableTime, bool initialFrame)
Start a frame exchange (including protection frames and acknowledgment frames as needed) that fits wi...
bool StartTransmission(Ptr< Txop > edca) override
Request the FrameExchangeManager to start a frame exchange sequence.
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
This class stores the TX parameters (TX vector, protection mechanism, acknowledgment mechanism,...
void DoDispose() override
Destructor implementation.
void CancelPifsRecovery(void)
Cancel the PIFS recovery event and have the EDCAF attempting PIFS recovery release the channel.
QosFrameExchangeManager handles the frame exchange sequences for QoS stations.
Mac48Address m_txopHolder
MAC address of the TXOP holder.
bool m_pifsRecovery
true if performing a PIFS recovery after failure
Ptr< QosTxop > m_edca
the EDCAF that gained channel access
void PreProcessFrame(Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector) override
Perform actions that are possibly needed when receiving any frame, independently of whether the frame...
Time GetRtsDurationId(const WifiTxVector &rtsTxVector, Time txDuration, Time response) const override
Compute how to set the Duration/ID field of an RTS frame to send to protect a frame transmitted with ...
Time GetFrameDurationId(const WifiMacHeader &header, uint32_t size, const WifiTxParameters &txParams, Ptr< Packet > fragmentedPacket) const override
Compute how to set the Duration/ID field of a frame being transmitted with the given TX parameters.
Simulation virtual time values and global simulation resolution.
void PifsRecovery(void)
Perform a PIFS recovery as a response to transmission failure within a TXOP.
virtual void SetTxopHolder(Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector)
Set the TXOP holder, if needed, based on the received frame.
virtual bool IsWithinLimitsIfAddMpdu(Ptr< const WifiMacQueueItem > mpdu, const WifiTxParameters &txParams, Time ppduDurationLimit) const
Check whether the given MPDU can be added to the frame being built (as described by the given TX para...
EventId m_pifsRecoveryEvent
event associated with an attempt of PIFS recovery
RxSignalInfo structure containing info on the received signal.
static TypeId GetTypeId(void)
Get the type ID.
FrameExchangeManager is a base class handling the basic frame exchange sequences for non-QoS stations...
QosFrameExchangeManager()
Ptr< Txop > m_edcaBackingOff
channel access function that invoked backoff during TXOP
bool TryAddMpdu(Ptr< const WifiMacQueueItem > mpdu, WifiTxParameters &txParams, Time availableTime) const
Recompute the protection and acknowledgment methods to use if the given MPDU is added to the frame be...
virtual bool SendCfEndIfNeeded(void)
Send a CF-End frame to indicate the completion of the TXOP, provided that the remaining duration is l...
Time GetCtsToSelfDurationId(const WifiTxVector &ctsTxVector, Time txDuration, Time response) const override
Compute how to set the Duration/ID field of a CTS-to-self frame to send to protect a frame transmitte...