37 #include "ns3/mac48-address.h" 
   38 #include "ns3/callback.h" 
   39 #include "ns3/event-id.h" 
   40 #include "ns3/packet.h" 
   41 #include "ns3/nstime.h" 
  127   virtual void Cancel (
void) = 0;   
 
  497                                 uint16_t startingSeq);
 
  677   typedef std::map<AgreementKey, AgreementValue>::iterator 
AgreementsI;
 
bool MustSendRts(void) const 
 
uint32_t GetAckSize(void) const 
 
virtual ~MacLowDcfListener()
 
keep track of time values and allow control of global simulation resolution 
 
EventId m_navCounterResetCtsMissed
 
void ResetBlockAckInactivityTimerIfNeeded(BlockAckAgreement &agreement)
 
virtual void CtsTimeoutReset()=0
 
EventId m_blockAckTimeoutEvent
 
Time GetBlockAckDuration(Mac48Address to, WifiTxVector blockAckReqTxVector, enum BlockAckType type) const 
 
virtual ~MacLowTransmissionListener()
 
Time GetAckDuration(WifiTxVector ackTxVector) const 
 
enum ns3::MacLowTransmissionParameters::@87 m_waitAck
 
virtual void GotAck(double snr, WifiMode txMode)=0
 
void SendDataAfterCts(Mac48Address source, Time duration, WifiMode txMode)
 
void DoNavResetNow(Time duration)
 
void EnableBasicBlockAck(void)
 
EventId m_fastAckTimeoutEvent
 
void FastAckFailedTimeout(void)
 
bool DoNavStartNow(Time duration)
 
Mac48Address GetBssid(void) const 
 
virtual void MissedAck(void)=0
 
std::pair< Mac48Address, uint8_t > AgreementKey
 
WifiTxVector GetCtsToSelfTxVector(Ptr< const Packet > packet, const WifiMacHeader *hdr) const 
 
void SetupPhyMacLowListener(Ptr< WifiPhy > phy)
 
virtual void BlockAckInactivityTimeout(Mac48Address originator, uint8_t tid)=0
 
friend std::ostream & operator<<(std::ostream &os, const MacLowTransmissionParameters ¶ms)
 
bool HasDurationId(void) const 
 
DcfListeners m_dcfListeners
 
virtual void CtsTimeoutStart(Time duration)=0
 
void SetRxCallback(Callback< void, Ptr< Packet >, const WifiMacHeader * > callback)
 
Time GetCompressedBlockAckTimeout() const 
 
MacLowRxCallback m_rxCallback
 
Time GetCtsTimeout(void) const 
 
EventId m_superFastAckTimeoutEvent
 
listen to events coming from ns3::MacLow. 
 
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
 
Time GetCtsDuration(WifiTxVector ctsTxVector) const 
 
bool MustWaitFastAck(void) const 
 
control how a packet is transmitted.The ns3::MacLow::StartTransmission method expects an instance of ...
 
MacLowTransmissionParameters()
 
void WaitSifsAfterEndTx(void)
 
MacLowTransmissionListener()
 
std::vector< MacLowDcfListener * >::const_iterator DcfListenersCI
 
void SetCtsToSelfSupported(bool enable)
 
void NormalAckTimeout(void)
 
void SetBasicBlockAckTimeout(Time blockAckTimeout)
 
BlockAckCaches m_bAckCaches
 
void DestroyBlockAckAgreement(Mac48Address originator, uint8_t tid)
 
std::pair< Ptr< Packet >, WifiMacHeader > BufferedPacket
 
bool m_ctsToSelfSupported
 
void CreateBlockAckAgreement(const MgtAddBaResponseHeader *respHdr, Mac48Address originator, uint16_t startingSeq)
 
uint32_t GetBlockAckSize(enum BlockAckType type) const 
 
void EnableSuperFastAck(void)
 
virtual void StartNext(void)=0
 
std::map< AgreementKey, BlockAckCache >::iterator BlockAckCachesI
 
std::map< AcIndex, MacLowBlockAckEventListener * > QueueListeners
 
std::vector< MacLowDcfListener * > DcfListeners
 
virtual void EndTxNoAck(void)=0
 
WifiTxVector GetAckTxVector(Mac48Address to, WifiMode dataTxMode) const 
 
void SetAckTimeout(Time ackTimeout)
 
virtual void GotCts(double snr, WifiMode txMode)=0
 
void SendBlockAckResponse(const CtrlBAckResponseHeader *blockAck, Mac48Address originator, bool immediate, Time duration, WifiMode blockAckReqTxMode)
 
void NavCounterResetCtsMissed(Time rtsEndRxTime)
 
Ptr< WifiRemoteStationManager > m_stationManager
 
bool MustWaitMultiTidBlockAck(void) const 
 
Mac48Address GetAddress(void) const 
 
uint32_t GetNextPacketSize(void) const 
 
Agreements m_bAckAgreements
 
bool HasNextPacket(void) const 
 
WifiTxVector GetAckTxVectorForData(Mac48Address to, WifiMode dataTxMode) const 
 
void RegisterDcfListener(MacLowDcfListener *listener)
 
void NotifySwitchingStartNow(Time duration)
 
void CancelAllEvents(void)
 
void StartTransmission(Ptr< const Packet > packet, const WifiMacHeader *hdr, MacLowTransmissionParameters parameters, MacLowTransmissionListener *listener)
 
std::ostream & operator<<(std::ostream &os, const Angles &a)
 
std::list< BufferedPacket >::iterator BufferedPacketI
 
void BlockAckTimeout(void)
 
void NotifyCtsTimeoutStartNow(Time duration)
 
Time m_overrideDurationId
 
void SendBlockAckAfterBlockAckRequest(const CtrlBAckRequestHeader reqHdr, Mac48Address originator, Time duration, WifiMode blockAckReqTxMode)
 
std::map< AgreementKey, BlockAckCache > BlockAckCaches
 
virtual void NavStart(Time duration)=0
 
void EnableCompressedBlockAck(void)
 
void SuperFastAckTimeout(void)
 
void SetBssid(Mac48Address ad)
 
listen for block ack events. 
 
uint32_t GetRtsSize(void) const 
 
Time CalculateTransmissionTime(Ptr< const Packet > packet, const WifiMacHeader *hdr, const MacLowTransmissionParameters ¶meters) const 
 
EventId m_normalAckTimeoutEvent
 
void StartDataTxTimers(WifiTxVector dataTxVector)
 
void NotifyCtsTimeoutResetNow()
 
bool MustWaitBasicBlockAck(void) const 
 
bool MustWaitCompressedBlockAck(void) const 
 
virtual ~MacLowBlockAckEventListener()
 
virtual void Cancel(void)=0
 
Callback< void, Ptr< Packet >, const WifiMacHeader * > MacLowRxCallback
 
virtual void AckTimeoutStart(Time duration)=0
 
listen to NAV eventsThis class is typically connected to an instance of ns3::Dcf and calls to its met...
 
void FastAckTimeout(void)
 
void EnableMultiTidBlockAck(void)
 
EventId m_ctsTimeoutEvent
 
void RxCompleteBufferedPacketsWithSmallerSequence(uint16_t seq, Mac48Address originator, uint8_t tid)
 
void SetPhy(Ptr< WifiPhy > phy)
 
Time m_basicBlockAckTimeout
 
Time GetDurationId(void) const 
 
virtual void MissedBlockAck(void)
 
void ReceiveError(Ptr< const Packet > packet, double rxSnr)
 
Time GetSlotTime(void) const 
 
WifiTxVector GetRtsTxVector(Ptr< const Packet > packet, const WifiMacHeader *hdr) const 
 
std::map< AgreementKey, AgreementValue > Agreements
 
WifiTxVector GetDataTxVector(Ptr< const Packet > packet, const WifiMacHeader *hdr) const 
 
handle RTS/CTS/DATA/ACK transactions. 
 
virtual void MissedCts(void)=0
 
MacLowTransmissionParameters m_txParams
 
virtual void DoDispose(void)
 
MacLowBlockAckEventListener()
 
void NotifyAckTimeoutResetNow()
 
bool MustWaitSuperFastAck(void) const 
 
Time CalculateOverallTxTime(Ptr< const Packet > packet, const WifiMacHeader *hdr, const MacLowTransmissionParameters ¶ms) const 
 
QueueListeners m_edcaListeners
 
WifiTxVector GetBlockAckTxVector(Mac48Address to, WifiMode dataTxMode) const 
 
Maintains information for a block ack agreement. 
 
an identifier for simulation events. 
 
EventId m_fastAckFailedTimeoutEvent
 
bool IsNavZero(void) const 
 
void NotifyAckTimeoutStartNow(Time duration)
 
virtual void NavReset(Time duration)=0
 
void SetSlotTime(Time slotTime)
 
Ptr< Packet > m_currentPacket
 
void SendCtsAfterRts(Mac48Address source, Time duration, WifiMode txMode, double rtsSnr)
 
std::map< AgreementKey, AgreementValue >::iterator AgreementsI
 
EventId m_endTxNoAckEvent
 
virtual void GotBlockAck(const CtrlBAckResponseHeader *blockAck, Mac48Address source)
 
void EnableOverrideDurationId(Time durationId)
 
bool GetCtsToSelfSupported() const 
 
void SetCtsTimeout(Time ctsTimeout)
 
void EnableNextData(uint32_t size)
 
void DisableOverrideDurationId(void)
 
Time GetAckTimeout(void) const 
 
void DisableNextData(void)
 
void SendDataPacket(void)
 
uint32_t GetCtsSize(void) const 
 
WifiMacHeader m_currentHdr
 
void SetAddress(Mac48Address ad)
 
a base class which provides memory management and object aggregation 
 
void ForwardDown(Ptr< const Packet > packet, const WifiMacHeader *hdr, WifiTxVector txVector, WifiPreamble preamble)
 
void ReceiveOk(Ptr< Packet > packet, double rxSnr, WifiMode txMode, WifiPreamble preamble)
 
Time m_compressedBlockAckTimeout
 
bool MustWaitAck(void) const 
 
virtual void AckTimeoutReset()=0
 
void RegisterBlockAckListenerForAc(enum AcIndex ac, MacLowBlockAckEventListener *listener)
 
std::pair< BlockAckAgreement, std::list< BufferedPacket > > AgreementValue
 
WifiTxVector GetCtsTxVectorForRts(Mac48Address to, WifiMode rtsTxMode) const 
 
Time GetBasicBlockAckTimeout() const 
 
void NotifyNav(Ptr< const Packet > packet, const WifiMacHeader &hdr, WifiMode txMode, WifiPreamble preamble)
 
void SendAckAfterData(Mac48Address source, Time duration, WifiMode txMode, double rtsSnr)
 
WifiTxVector GetCtsTxVector(Mac48Address to, WifiMode rtsTxMode) const 
 
bool StoreMpduIfNeeded(Ptr< Packet > packet, WifiMacHeader hdr)
 
bool MustWaitNormalAck(void) const 
 
void SetCompressedBlockAckTimeout(Time blockAckTimeout)
 
void SetWifiRemoteStationManager(Ptr< WifiRemoteStationManager > manager)
 
class PhyMacLowListener * m_phyMacLowListener
 
uint32_t GetSize(Ptr< const Packet > packet, const WifiMacHeader *hdr) const 
 
MacLowTransmissionListener * m_listener
 
void SendRtsForPacket(void)
 
void RxCompleteBufferedPacketsUntilFirstLost(Mac48Address originator, uint8_t tid)