A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::MacLow Class Reference

handle RTS/CTS/DATA/ACK transactions. More...

#include <mac-low.h>

+ Inheritance diagram for ns3::MacLow:
+ Collaboration diagram for ns3::MacLow:

Public Types

typedef Callback< void, Ptr
< Packet >, const
WifiMacHeader * > 
MacLowRxCallback

Public Member Functions

 MacLow ()
virtual ~MacLow ()
Time CalculateTransmissionTime (Ptr< const Packet > packet, const WifiMacHeader *hdr, const MacLowTransmissionParameters &parameters) const
void CreateBlockAckAgreement (const MgtAddBaResponseHeader *respHdr, Mac48Address originator, uint16_t startingSeq)
void DestroyBlockAckAgreement (Mac48Address originator, uint8_t tid)
Time GetAckTimeout (void) const
Mac48Address GetAddress (void) const
Time GetBasicBlockAckTimeout () const
Mac48Address GetBssid (void) const
Time GetCompressedBlockAckTimeout () const
Time GetCtsTimeout (void) const
bool GetCtsToSelfSupported () const
Time GetPifs (void) const
Time GetRifs (void) const
Time GetSifs (void) const
Time GetSlotTime (void) const
void NotifySwitchingStartNow (Time duration)
void ReceiveError (Ptr< const Packet > packet, double rxSnr)
void ReceiveOk (Ptr< Packet > packet, double rxSnr, WifiMode txMode, WifiPreamble preamble)
void RegisterBlockAckListenerForAc (enum AcIndex ac, MacLowBlockAckEventListener *listener)
void RegisterDcfListener (MacLowDcfListener *listener)
void SetAckTimeout (Time ackTimeout)
void SetAddress (Mac48Address ad)
void SetBasicBlockAckTimeout (Time blockAckTimeout)
void SetBssid (Mac48Address ad)
void SetCompressedBlockAckTimeout (Time blockAckTimeout)
void SetCtsTimeout (Time ctsTimeout)
void SetCtsToSelfSupported (bool enable)
void SetPhy (Ptr< WifiPhy > phy)
void SetPifs (Time pifs)
void SetPromisc (void)
void SetRifs (Time rifs)
void SetRxCallback (Callback< void, Ptr< Packet >, const WifiMacHeader * > callback)
void SetSifs (Time sifs)
void SetSlotTime (Time slotTime)
void SetWifiRemoteStationManager (Ptr< WifiRemoteStationManager > manager)
void StartTransmission (Ptr< const Packet > packet, const WifiMacHeader *hdr, MacLowTransmissionParameters parameters, MacLowTransmissionListener *listener)
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~Object ()
void AggregateObject (Ptr< Object > other)
void Dispose (void)
AggregateIterator GetAggregateIterator (void) const
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Initialize (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Private Types

typedef std::pair
< Mac48Address, uint8_t > 
AgreementKey
typedef std::map< AgreementKey,
AgreementValue
Agreements
typedef std::map< AgreementKey,
AgreementValue >::iterator 
AgreementsI
typedef std::pair
< BlockAckAgreement, std::list
< BufferedPacket > > 
AgreementValue
typedef std::map< AgreementKey,
BlockAckCache
BlockAckCaches
typedef std::map< AgreementKey,
BlockAckCache >::iterator 
BlockAckCachesI
typedef std::pair< Ptr< Packet >
, WifiMacHeader
BufferedPacket
typedef std::list
< BufferedPacket >::iterator 
BufferedPacketI
typedef std::vector
< MacLowDcfListener * > 
DcfListeners
typedef std::vector
< MacLowDcfListener * >
::const_iterator 
DcfListenersCI
typedef std::map< AcIndex,
MacLowBlockAckEventListener * > 
QueueListeners

Private Member Functions

void BlockAckTimeout (void)
Time CalculateOverallTxTime (Ptr< const Packet > packet, const WifiMacHeader *hdr, const MacLowTransmissionParameters &params) const
void CancelAllEvents (void)
void CtsTimeout (void)
virtual void DoDispose (void)
void DoNavResetNow (Time duration)
bool DoNavStartNow (Time duration)
void EndTxNoAck (void)
void FastAckFailedTimeout (void)
void FastAckTimeout (void)
void ForwardDown (Ptr< const Packet > packet, const WifiMacHeader *hdr, WifiTxVector txVector, WifiPreamble preamble)
Time GetAckDuration (WifiTxVector ackTxVector) const
Time GetAckDuration (Mac48Address to, WifiTxVector dataTxVector) const
uint32_t GetAckSize (void) const
WifiTxVector GetAckTxVector (Mac48Address to, WifiMode dataTxMode) const
WifiTxVector GetAckTxVectorForData (Mac48Address to, WifiMode dataTxMode) const
Time GetBlockAckDuration (Mac48Address to, WifiTxVector blockAckReqTxVector, enum BlockAckType type) const
uint32_t GetBlockAckSize (enum BlockAckType type) const
WifiTxVector GetBlockAckTxVector (Mac48Address to, WifiMode dataTxMode) const
Time GetCtsDuration (WifiTxVector ctsTxVector) const
Time GetCtsDuration (Mac48Address to, WifiTxVector rtsTxVector) const
uint32_t GetCtsSize (void) const
WifiTxVector GetCtsToSelfTxVector (Ptr< const Packet > packet, const WifiMacHeader *hdr) const
WifiTxVector GetCtsTxVector (Mac48Address to, WifiMode rtsTxMode) const
WifiTxVector GetCtsTxVectorForRts (Mac48Address to, WifiMode rtsTxMode) const
WifiTxVector GetDataTxVector (Ptr< const Packet > packet, const WifiMacHeader *hdr) const
uint32_t GetRtsSize (void) const
WifiTxVector GetRtsTxVector (Ptr< const Packet > packet, const WifiMacHeader *hdr) const
uint32_t GetSize (Ptr< const Packet > packet, const WifiMacHeader *hdr) const
bool IsNavZero (void) const
void MaybeCancelPrevious (void)
void NavCounterResetCtsMissed (Time rtsEndRxTime)
bool NeedCtsToSelf (void)
void NormalAckTimeout (void)
void NotifyAckTimeoutResetNow ()
void NotifyAckTimeoutStartNow (Time duration)
void NotifyCtsTimeoutResetNow ()
void NotifyCtsTimeoutStartNow (Time duration)
void NotifyNav (Ptr< const Packet > packet, const WifiMacHeader &hdr, WifiMode txMode, WifiPreamble preamble)
Time NowUs (void) const
void ResetBlockAckInactivityTimerIfNeeded (BlockAckAgreement &agreement)
void RxCompleteBufferedPacketsUntilFirstLost (Mac48Address originator, uint8_t tid)
void RxCompleteBufferedPacketsWithSmallerSequence (uint16_t seq, Mac48Address originator, uint8_t tid)
void SendAckAfterData (Mac48Address source, Time duration, WifiMode txMode, double rtsSnr)
void SendBlockAckAfterBlockAckRequest (const CtrlBAckRequestHeader reqHdr, Mac48Address originator, Time duration, WifiMode blockAckReqTxMode)
void SendBlockAckResponse (const CtrlBAckResponseHeader *blockAck, Mac48Address originator, bool immediate, Time duration, WifiMode blockAckReqTxMode)
void SendCtsAfterRts (Mac48Address source, Time duration, WifiMode txMode, double rtsSnr)
void SendCtsToSelf (void)
void SendCurrentTxPacket (void)
void SendDataAfterCts (Mac48Address source, Time duration, WifiMode txMode)
void SendDataPacket (void)
void SendRtsForPacket (void)
void SetupPhyMacLowListener (Ptr< WifiPhy > phy)
void StartDataTxTimers (WifiTxVector dataTxVector)
bool StoreMpduIfNeeded (Ptr< Packet > packet, WifiMacHeader hdr)
void SuperFastAckTimeout (void)
void WaitSifsAfterEndTx (void)

Private Attributes

Time m_ackTimeout
Agreements m_bAckAgreements
BlockAckCaches m_bAckCaches
Time m_basicBlockAckTimeout
EventId m_blockAckTimeoutEvent
Mac48Address m_bssid
Time m_compressedBlockAckTimeout
Time m_ctsTimeout
EventId m_ctsTimeoutEvent
bool m_ctsToSelfSupported
WifiMacHeader m_currentHdr
Ptr< Packetm_currentPacket
DcfListeners m_dcfListeners
QueueListeners m_edcaListeners
EventId m_endTxNoAckEvent
EventId m_fastAckFailedTimeoutEvent
EventId m_fastAckTimeoutEvent
Time m_lastNavDuration
Time m_lastNavStart
MacLowTransmissionListenerm_listener
EventId m_navCounterResetCtsMissed
EventId m_normalAckTimeoutEvent
Ptr< WifiPhym_phy
class PhyMacLowListenerm_phyMacLowListener
Time m_pifs
bool m_promisc
Time m_rifs
MacLowRxCallback m_rxCallback
Mac48Address m_self
EventId m_sendAckEvent
EventId m_sendCtsEvent
EventId m_sendDataEvent
Time m_sifs
Time m_slotTime
Ptr< WifiRemoteStationManagerm_stationManager
EventId m_superFastAckTimeoutEvent
MacLowTransmissionParameters m_txParams
EventId m_waitRifsEvent
EventId m_waitSifsEvent

Additional Inherited Members

- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void DoDispose (void)
virtual void DoInitialize (void)
virtual void NotifyNewAggregate (void)

Detailed Description

handle RTS/CTS/DATA/ACK transactions.

Definition at line 380 of file mac-low.h.

Member Typedef Documentation

typedef std::pair<Mac48Address, uint8_t> ns3::MacLow::AgreementKey
private

Definition at line 676 of file mac-low.h.

Definition at line 679 of file mac-low.h.

typedef std::map<AgreementKey, AgreementValue>::iterator ns3::MacLow::AgreementsI
private

Definition at line 680 of file mac-low.h.

Definition at line 677 of file mac-low.h.

Definition at line 682 of file mac-low.h.

typedef std::map<AgreementKey, BlockAckCache>::iterator ns3::MacLow::BlockAckCachesI
private

Definition at line 683 of file mac-low.h.

typedef std::pair<Ptr<Packet>, WifiMacHeader> ns3::MacLow::BufferedPacket
private

Definition at line 673 of file mac-low.h.

Definition at line 674 of file mac-low.h.

typedef std::vector<MacLowDcfListener *> ns3::MacLow::DcfListeners
private

Definition at line 630 of file mac-low.h.

typedef std::vector<MacLowDcfListener *>::const_iterator ns3::MacLow::DcfListenersCI
private

Definition at line 629 of file mac-low.h.

Definition at line 383 of file mac-low.h.

Definition at line 688 of file mac-low.h.

Constructor & Destructor Documentation

ns3::MacLow::MacLow ( )

Definition at line 285 of file mac-low.cc.

References m_lastNavDuration, m_lastNavStart, m_promisc, and NS_LOG_FUNCTION.

ns3::MacLow::~MacLow ( )
virtual

Definition at line 306 of file mac-low.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

void ns3::MacLow::BlockAckTimeout ( void  )
private

Definition at line 1281 of file mac-low.cc.

References ns3::WifiMacHeader::GetAddr1(), m_currentHdr, m_listener, m_stationManager, ns3::MacLowTransmissionListener::MissedBlockAck(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::WifiRemoteStationManager::ReportDataFailed().

Referenced by StartDataTxTimers().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::MacLow::CalculateTransmissionTime ( Ptr< const Packet packet,
const WifiMacHeader hdr,
const MacLowTransmissionParameters parameters 
) const
Parameters
packetto send (does not include the 802.11 MAC header and checksum)
hdrheader associated to the packet to send.
parameterstransmission parameters of packet.

This transmission time includes the time required for the next packet transmission if one was selected.

Definition at line 1089 of file mac-low.cc.

References CalculateOverallTxTime(), ns3::WifiPhy::CalculateTxDuration(), ns3::WifiMacHeader::GetAddr1(), GetDataTxVector(), ns3::WifiPhy::GetGreenfield(), ns3::WifiRemoteStationManager::GetGreenfieldSupported(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), ns3::MacLowTransmissionParameters::GetNextPacketSize(), GetSifs(), ns3::MacLowTransmissionParameters::HasNextPacket(), m_currentHdr, m_phy, m_stationManager, ns3::WIFI_MOD_CLASS_HT, ns3::WIFI_PREAMBLE_HT_GF, ns3::WIFI_PREAMBLE_HT_MF, and ns3::WIFI_PREAMBLE_LONG.

+ Here is the call graph for this function:

void ns3::MacLow::CreateBlockAckAgreement ( const MgtAddBaResponseHeader respHdr,
Mac48Address  originator,
uint16_t  startingSeq 
)
Parameters
respHdrAdd block ack response from originator (action frame).
originatorAddress of peer station involved in block ack mechanism.
startingSeqSequence number of the first MPDU of all packets for which block ack was negotiated.

This function is typically invoked only by ns3::RegularWifiMac when the STA (which may be non-AP in ESS, or in an IBSS) has received an ADDBA Request frame and is transmitting an ADDBA Response frame. At this point MacLow must allocate buffers to collect all correctly received packets belonging to the category for which Block Ack was negotiated.

Definition at line 1766 of file mac-low.cc.

References ns3::MacLowBlockAckEventListener::BlockAckInactivityTimeout(), ns3::MgtAddBaResponseHeader::GetBufferSize(), ns3::BlockAckAgreement::GetTid(), ns3::MgtAddBaResponseHeader::GetTid(), ns3::BlockAckAgreement::GetTimeout(), ns3::MgtAddBaResponseHeader::GetTimeout(), ns3::BlockAckCache::Init(), ns3::MgtAddBaResponseHeader::IsAmsduSupported(), ns3::MgtAddBaResponseHeader::IsImmediateBlockAck(), m_bAckAgreements, m_bAckCaches, m_edcaListeners, ns3::QosUtilsMapTidToAc(), ns3::Simulator::Schedule(), ns3::BlockAckAgreement::SetAmsduSupport(), ns3::BlockAckAgreement::SetBufferSize(), ns3::BlockAckAgreement::SetDelayedBlockAck(), ns3::BlockAckAgreement::SetImmediateBlockAck(), ns3::BlockAckAgreement::SetStartingSequence(), ns3::BlockAckAgreement::SetTimeout(), and timeout.

Referenced by ns3::RegularWifiMac::SendAddBaResponse().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::CtsTimeout ( void  )
private
Todo:
should check that there was no rx start before now. we should restart a new cts timeout now until the expected end of rx if there was a rx start before now.

Definition at line 1237 of file mac-low.cc.

References ns3::WifiMacHeader::GetAddr1(), m_currentHdr, m_currentPacket, m_listener, m_stationManager, ns3::MacLowTransmissionListener::MissedCts(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::WifiRemoteStationManager::ReportRtsFailed().

Referenced by SendRtsForPacket().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::DestroyBlockAckAgreement ( Mac48Address  originator,
uint8_t  tid 
)
Parameters
originatorAddress of peer participating in Block Ack mechanism.
tidTID for which Block Ack was created.

Checks if exists an established block ack agreement with originator for tid tid. If the agreement exists, tears down it. This function is typically invoked when a DELBA frame is received from originator.

Definition at line 1808 of file mac-low.cc.

References m_bAckAgreements, m_bAckCaches, NS_ASSERT, RxCompleteBufferedPacketsUntilFirstLost(), and RxCompleteBufferedPacketsWithSmallerSequence().

Referenced by ns3::EdcaTxopN::GotAck(), and ns3::RegularWifiMac::Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::DoNavResetNow ( Time  duration)
private

Definition at line 1163 of file mac-low.cc.

References m_dcfListeners, m_lastNavStart, and ns3::Now().

Referenced by NavCounterResetCtsMissed(), and NotifyNav().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::MacLow::DoNavStartNow ( Time  duration)
private

Definition at line 1173 of file mac-low.cc.

References m_dcfListeners, m_lastNavDuration, m_lastNavStart, and ns3::Now().

Referenced by NotifyNav().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::EndTxNoAck ( void  )
private

Definition at line 1679 of file mac-low.cc.

References ns3::MacLowTransmissionListener::EndTxNoAck(), and m_listener.

Referenced by StartDataTxTimers().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::FastAckFailedTimeout ( void  )
private

Definition at line 1687 of file mac-low.cc.

References m_listener, ns3::MacLowTransmissionListener::MissedAck(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by ReceiveError().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::FastAckTimeout ( void  )
private
Time ns3::MacLow::GetAckDuration ( WifiTxVector  ackTxVector) const
private
Time ns3::MacLow::GetAckDuration ( Mac48Address  to,
WifiTxVector  dataTxVector 
) const
private

Definition at line 936 of file mac-low.cc.

References GetAckDuration(), GetAckTxVectorForData(), and ns3::WifiTxVector::GetMode().

+ Here is the call graph for this function:

uint32_t ns3::MacLow::GetAckSize ( void  ) const
private

Definition at line 901 of file mac-low.cc.

References ns3::WifiMacHeader::GetSize(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_ACK.

Referenced by GetAckDuration().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::MacLow::GetAckTimeout ( void  ) const

Definition at line 498 of file mac-low.cc.

References m_ackTimeout.

Referenced by ns3::RegularWifiMac::GetAckTimeout(), and StartDataTxTimers().

+ Here is the caller graph for this function:

WifiTxVector ns3::MacLow::GetAckTxVector ( Mac48Address  to,
WifiMode  dataTxMode 
) const
private

Definition at line 1027 of file mac-low.cc.

References ns3::WifiRemoteStationManager::GetAckTxVector(), and m_stationManager.

Referenced by GetAckTxVectorForData(), and SendAckAfterData().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiTxVector ns3::MacLow::GetAckTxVectorForData ( Mac48Address  to,
WifiMode  dataTxMode 
) const
private

Definition at line 1043 of file mac-low.cc.

References GetAckTxVector().

Referenced by GetAckDuration().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::MacLow::GetBasicBlockAckTimeout ( ) const

Definition at line 503 of file mac-low.cc.

References m_basicBlockAckTimeout.

Referenced by ns3::RegularWifiMac::GetBasicBlockAckTimeout(), and StartDataTxTimers().

+ Here is the caller graph for this function:

Time ns3::MacLow::GetBlockAckDuration ( Mac48Address  to,
WifiTxVector  blockAckReqTxVector,
enum BlockAckType  type 
) const
private

Definition at line 952 of file mac-low.cc.

References ns3::WifiPhy::CalculateTxDuration(), GetBlockAckSize(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), m_phy, ns3::WIFI_MOD_CLASS_HT, ns3::WIFI_PREAMBLE_HT_MF, and ns3::WIFI_PREAMBLE_LONG.

Referenced by SendBlockAckResponse(), SendCtsToSelf(), and SendDataPacket().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32_t ns3::MacLow::GetBlockAckSize ( enum BlockAckType  type) const
private
WifiTxVector ns3::MacLow::GetBlockAckTxVector ( Mac48Address  to,
WifiMode  dataTxMode 
) const
private

Definition at line 1032 of file mac-low.cc.

References ns3::WifiRemoteStationManager::GetBlockAckTxVector(), and m_stationManager.

Referenced by SendBlockAckResponse().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Mac48Address ns3::MacLow::GetBssid ( void  ) const

Definition at line 538 of file mac-low.cc.

References m_bssid.

Referenced by ns3::RegularWifiMac::GetBssid(), ns3::EdcaTxopN::NotifyAccessGranted(), and ns3::EdcaTxopN::SendBlockAckRequest().

+ Here is the caller graph for this function:

Time ns3::MacLow::GetCompressedBlockAckTimeout ( ) const

Definition at line 508 of file mac-low.cc.

References m_compressedBlockAckTimeout.

Referenced by ns3::RegularWifiMac::GetCompressedBlockAckTimeout(), and StartDataTxTimers().

+ Here is the caller graph for this function:

Time ns3::MacLow::GetCtsDuration ( WifiTxVector  ctsTxVector) const
private
Time ns3::MacLow::GetCtsDuration ( Mac48Address  to,
WifiTxVector  rtsTxVector 
) const
private

Definition at line 970 of file mac-low.cc.

References GetCtsDuration(), GetCtsTxVectorForRts(), and ns3::WifiTxVector::GetMode().

+ Here is the call graph for this function:

uint32_t ns3::MacLow::GetCtsSize ( void  ) const
private

Definition at line 987 of file mac-low.cc.

References ns3::WifiMacHeader::GetSize(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_CTS.

Referenced by GetCtsDuration(), and SendCtsToSelf().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::MacLow::GetCtsTimeout ( void  ) const

Definition at line 513 of file mac-low.cc.

References m_ctsTimeout.

Referenced by ns3::RegularWifiMac::GetCtsTimeout(), and SendRtsForPacket().

+ Here is the caller graph for this function:

bool ns3::MacLow::GetCtsToSelfSupported ( ) const

Definition at line 453 of file mac-low.cc.

References m_ctsToSelfSupported.

Referenced by ns3::RegularWifiMac::GetCtsToSelfSupported().

+ Here is the caller graph for this function:

WifiTxVector ns3::MacLow::GetCtsToSelfTxVector ( Ptr< const Packet packet,
const WifiMacHeader hdr 
) const
private

Definition at line 1001 of file mac-low.cc.

References ns3::WifiRemoteStationManager::GetCtsToSelfTxVector(), and m_stationManager.

Referenced by SendCtsToSelf().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiTxVector ns3::MacLow::GetCtsTxVector ( Mac48Address  to,
WifiMode  rtsTxMode 
) const
private

Definition at line 1022 of file mac-low.cc.

References ns3::WifiRemoteStationManager::GetCtsTxVector(), and m_stationManager.

Referenced by GetCtsTxVectorForRts(), and SendCtsAfterRts().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiTxVector ns3::MacLow::GetCtsTxVectorForRts ( Mac48Address  to,
WifiMode  rtsTxMode 
) const
private

Definition at line 1038 of file mac-low.cc.

References GetCtsTxVector().

Referenced by GetCtsDuration().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiTxVector ns3::MacLow::GetDataTxVector ( Ptr< const Packet packet,
const WifiMacHeader hdr 
) const
private
Time ns3::MacLow::GetPifs ( void  ) const

Definition at line 533 of file mac-low.cc.

References m_pifs.

Referenced by ns3::RegularWifiMac::GetPifs(), and StartDataTxTimers().

+ Here is the caller graph for this function:

Time ns3::MacLow::GetRifs ( void  ) const

Definition at line 523 of file mac-low.cc.

References m_rifs.

Referenced by ns3::RegularWifiMac::GetRifs(), and StartDataTxTimers().

+ Here is the caller graph for this function:

uint32_t ns3::MacLow::GetRtsSize ( void  ) const
private

Definition at line 929 of file mac-low.cc.

References ns3::WifiMacHeader::GetSize(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_RTS.

Referenced by CalculateOverallTxTime(), and SendRtsForPacket().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiTxVector ns3::MacLow::GetRtsTxVector ( Ptr< const Packet packet,
const WifiMacHeader hdr 
) const
private

Definition at line 1007 of file mac-low.cc.

References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetRtsTxVector(), and m_stationManager.

Referenced by CalculateOverallTxTime(), NotifyNav(), and SendRtsForPacket().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32_t ns3::MacLow::GetSize ( Ptr< const Packet packet,
const WifiMacHeader hdr 
) const
private

Definition at line 994 of file mac-low.cc.

References ns3::WifiMacTrailer::GetSerializedSize(), ns3::WifiMacHeader::GetSize(), and ns3::Packet::GetSize().

Referenced by CalculateOverallTxTime(), SendCtsToSelf(), SendDataAfterCts(), SendRtsForPacket(), StartDataTxTimers(), and StartTransmission().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::MacLow::GetSlotTime ( void  ) const

Definition at line 528 of file mac-low.cc.

References m_slotTime.

Referenced by ns3::RegularWifiMac::GetSlot(), and NotifyNav().

+ Here is the caller graph for this function:

bool ns3::MacLow::IsNavZero ( void  ) const
private

Definition at line 1500 of file mac-low.cc.

References m_lastNavDuration, m_lastNavStart, and ns3::Simulator::Now().

Referenced by ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::MaybeCancelPrevious ( void  )
private
void ns3::MacLow::NavCounterResetCtsMissed ( Time  rtsEndRxTime)
private

Definition at line 1154 of file mac-low.cc.

References DoNavResetNow(), ns3::WifiPhy::GetLastRxStartTime(), and m_phy.

Referenced by NotifyNav().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::MacLow::NeedCtsToSelf ( void  )
private

Definition at line 607 of file mac-low.cc.

References GetDataTxVector(), m_currentHdr, m_currentPacket, m_stationManager, and ns3::WifiRemoteStationManager::NeedCtsToSelf().

Referenced by StartTransmission().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::NormalAckTimeout ( void  )
private
Todo:
should check that there was no rx start before now. we should restart a new ack timeout now until the expected end of rx if there was a rx start before now.

Definition at line 1251 of file mac-low.cc.

References ns3::WifiMacHeader::GetAddr1(), m_currentHdr, m_listener, m_stationManager, ns3::MacLowTransmissionListener::MissedAck(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::WifiRemoteStationManager::ReportDataFailed().

Referenced by StartDataTxTimers().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::NotifyAckTimeoutResetNow ( )
private

Definition at line 1198 of file mac-low.cc.

References m_dcfListeners.

Referenced by ReceiveOk().

+ Here is the caller graph for this function:

void ns3::MacLow::NotifyAckTimeoutStartNow ( Time  duration)
private

Definition at line 1190 of file mac-low.cc.

References m_dcfListeners.

Referenced by StartDataTxTimers().

+ Here is the caller graph for this function:

void ns3::MacLow::NotifyCtsTimeoutResetNow ( )
private

Definition at line 1214 of file mac-low.cc.

References m_dcfListeners.

Referenced by ReceiveOk().

+ Here is the caller graph for this function:

void ns3::MacLow::NotifyCtsTimeoutStartNow ( Time  duration)
private

Definition at line 1206 of file mac-low.cc.

References m_dcfListeners.

Referenced by SendRtsForPacket().

+ Here is the caller graph for this function:

void ns3::MacLow::NotifyNav ( Ptr< const Packet packet,
const WifiMacHeader hdr,
WifiMode  txMode,
WifiPreamble  preamble 
)
private
Todo:
We should also handle CF_END specially here but we don't for now because we do not generate them.

A STA that used information from an RTS frame as the most recent basis to update its NAV setting is permitted to reset its NAV if no PHY-RXSTART.indication is detected from the PHY during a period with a duration of (2 * aSIFSTime) + (CTS_Time) + (2 * aSlotTime) starting at the PHY-RXEND.indication corresponding to the detection of the RTS frame. The “CTS_Time” shall be calculated using the length of the CTS frame and the data rate at which the RTS frame used for the most recent NAV update was received.

Definition at line 1112 of file mac-low.cc.

References ns3::WifiPhy::CalculateTxDuration(), DoNavResetNow(), DoNavStartNow(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetAddr2(), ns3::WifiMacHeader::GetDuration(), GetRtsTxVector(), ns3::WifiMacHeader::GetSerializedSize(), GetSifs(), GetSlotTime(), ns3::WifiMacHeader::IsCfpoll(), ns3::WifiMacHeader::IsRts(), m_bssid, m_lastNavStart, m_navCounterResetCtsMissed, m_phy, m_self, NavCounterResetCtsMissed(), ns3::Simulator::Now(), NS_ASSERT, ns3::Simulator::Schedule(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_CTS.

Referenced by ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::NotifySwitchingStartNow ( Time  duration)
Parameters
durationswitching delay duration.

This method is typically invoked by the PhyMacLowListener to notify the MAC layer that a channel switching occured. When a channel switching occurs, pending MAC transmissions (RTS, CTS, DATA and ACK) are cancelled.

Definition at line 627 of file mac-low.cc.

References ns3::EventId::Cancel(), CancelAllEvents(), ns3::EventId::IsRunning(), m_currentPacket, m_lastNavDuration, m_lastNavStart, m_listener, m_navCounterResetCtsMissed, m_stationManager, ns3::Now(), NS_LOG_DEBUG, and ns3::WifiRemoteStationManager::Reset().

Referenced by ns3::PhyMacLowListener::NotifySwitchingStart().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::MacLow::NowUs ( void  ) const
private
void ns3::MacLow::ReceiveError ( Ptr< const Packet packet,
double  rxSnr 
)
Parameters
packetpacket received.
rxSnrsnr of packet received.

This method is typically invoked by the lower PHY layer to notify the MAC layer that a packet was unsuccessfully received.

Definition at line 613 of file mac-low.cc.

References FastAckFailedTimeout(), GetSifs(), ns3::EventId::IsExpired(), m_fastAckFailedTimeoutEvent, m_txParams, ns3::MacLowTransmissionParameters::MustWaitFastAck(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::Simulator::Schedule().

Referenced by SetPhy().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::ReceiveOk ( Ptr< Packet packet,
double  rxSnr,
WifiMode  txMode,
WifiPreamble  preamble 
)
Parameters
packetpacket received
rxSnrsnr of packet received
txModetransmission mode of packet received
preambletype of preamble used for the packet received

This method is typically invoked by the lower PHY layer to notify the MAC layer that a packet was successfully received.

Definition at line 643 of file mac-low.cc.

References ns3::EventId::Cancel(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetAddr2(), ns3::WifiMacHeader::GetDuration(), ns3::WifiMacHeader::GetQosTid(), GetSifs(), ns3::CtrlBAckRequestHeader::GetStartingSequence(), ns3::CtrlBAckRequestHeader::GetTidInfo(), ns3::WifiMacHeader::GetTypeString(), ns3::MacLowTransmissionListener::GotAck(), ns3::MacLowTransmissionListener::GotBlockAck(), ns3::MacLowTransmissionListener::GotCts(), ns3::MacLowTransmissionParameters::HasNextPacket(), ns3::WifiMacHeader::IsAck(), ns3::WifiMacHeader::IsBlockAck(), ns3::WifiMacHeader::IsBlockAckReq(), ns3::WifiMacHeader::IsCtl(), ns3::WifiMacHeader::IsCts(), ns3::WifiMacHeader::IsData(), ns3::EventId::IsExpired(), ns3::Mac48Address::IsGroup(), ns3::WifiMacHeader::IsMgt(), ns3::CtrlBAckRequestHeader::IsMultiTid(), IsNavZero(), ns3::WifiMacHeader::IsQosAck(), ns3::WifiMacHeader::IsQosBlockAck(), ns3::WifiMacHeader::IsQosData(), ns3::WifiMacHeader::IsQosNoAck(), ns3::WifiMacHeader::IsRts(), ns3::EventId::IsRunning(), m_bAckAgreements, m_bAckCaches, m_blockAckTimeoutEvent, m_ctsTimeoutEvent, m_currentHdr, m_currentPacket, m_edcaListeners, m_fastAckTimeoutEvent, m_listener, m_normalAckTimeoutEvent, m_promisc, m_rxCallback, m_self, m_sendAckEvent, m_sendCtsEvent, m_sendDataEvent, m_stationManager, m_superFastAckTimeoutEvent, m_txParams, m_waitSifsEvent, ns3::MacLowTransmissionParameters::MustWaitAck(), ns3::MacLowTransmissionParameters::MustWaitBasicBlockAck(), ns3::MacLowTransmissionParameters::MustWaitCompressedBlockAck(), ns3::MacLowTransmissionParameters::MustWaitFastAck(), ns3::MacLowTransmissionParameters::MustWaitNormalAck(), NotifyAckTimeoutResetNow(), NotifyCtsTimeoutResetNow(), NotifyNav(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::QosUtilsMapTidToAc(), ns3::Packet::RemoveHeader(), ns3::Packet::RemovePacketTag(), ns3::Packet::RemoveTrailer(), ns3::WifiRemoteStationManager::ReportDataOk(), ns3::WifiRemoteStationManager::ReportRtsOk(), ns3::WifiRemoteStationManager::ReportRxOk(), ResetBlockAckInactivityTimerIfNeeded(), RxCompleteBufferedPacketsUntilFirstLost(), RxCompleteBufferedPacketsWithSmallerSequence(), ns3::Simulator::Schedule(), SendAckAfterData(), SendBlockAckAfterBlockAckRequest(), SendCtsAfterRts(), SendDataAfterCts(), StoreMpduIfNeeded(), and WaitSifsAfterEndTx().

Referenced by SetPhy().

+ Here is the caller graph for this function:

void ns3::MacLow::RegisterBlockAckListenerForAc ( enum AcIndex  ac,
MacLowBlockAckEventListener listener 
)
Parameters
acAccess class managed by the queue.
listenerThe listener for the queue.

The lifetime of the registered listener is typically equal to the lifetime of the queue associated to this AC.

Definition at line 2055 of file mac-low.cc.

References m_edcaListeners.

Referenced by ns3::EdcaTxopN::CompleteConfig().

+ Here is the caller graph for this function:

void ns3::MacLow::RegisterDcfListener ( MacLowDcfListener listener)
Parameters
listenerlisten to NAV events for every incoming and outgoing packet.

Definition at line 549 of file mac-low.cc.

References m_dcfListeners.

Referenced by ns3::DcfManager::SetupLowListener().

+ Here is the caller graph for this function:

void ns3::MacLow::ResetBlockAckInactivityTimerIfNeeded ( BlockAckAgreement agreement)
private
void ns3::MacLow::RxCompleteBufferedPacketsUntilFirstLost ( Mac48Address  originator,
uint8_t  tid 
)
private
Parameters
originatorAddress of peer participating in Block Ack mechanism.
tidTID for which Block Ack was created.

This method is typically invoked when a MPDU with ack policy subfield set to Normal Ack is received and a block ack agreement for that packet exists. This happens when the originator of block ack has only few MPDUs to send. All completed MSDUs starting with starting sequence number of block ack agreement are forward up to WifiMac until there is an incomplete or missing MSDU. See section 9.10.4 in IEEE802.11 standard for more details.

Definition at line 1884 of file mac-low.cc.

References m_bAckAgreements, and m_rxCallback.

Referenced by DestroyBlockAckAgreement(), ReceiveOk(), and SendBlockAckAfterBlockAckRequest().

+ Here is the caller graph for this function:

void ns3::MacLow::RxCompleteBufferedPacketsWithSmallerSequence ( uint16_t  seq,
Mac48Address  originator,
uint8_t  tid 
)
private
Parameters
originatorAddress of peer participating in Block Ack mechanism.
tidTID for which Block Ack was created.
seqStarting sequence

This function forward up all completed "old" packets with sequence number smaller than seq. All comparison are performed circularly mod 4096.

Definition at line 1824 of file mac-low.cc.

References m_bAckAgreements, m_rxCallback, and ns3::QosUtilsMapSeqControlToUniqueInteger().

Referenced by DestroyBlockAckAgreement(), ReceiveOk(), and SendBlockAckAfterBlockAckRequest().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::SendCurrentTxPacket ( void  )
private
void ns3::MacLow::SetAckTimeout ( Time  ackTimeout)

Definition at line 433 of file mac-low.cc.

References m_ackTimeout.

Referenced by ns3::RegularWifiMac::SetAckTimeout().

+ Here is the caller graph for this function:

void ns3::MacLow::SetAddress ( Mac48Address  ad)

Definition at line 428 of file mac-low.cc.

References m_self.

Referenced by ns3::RegularWifiMac::SetAddress().

+ Here is the caller graph for this function:

void ns3::MacLow::SetBasicBlockAckTimeout ( Time  blockAckTimeout)

Definition at line 438 of file mac-low.cc.

References m_basicBlockAckTimeout.

Referenced by ns3::RegularWifiMac::SetBasicBlockAckTimeout().

+ Here is the caller graph for this function:

void ns3::MacLow::SetBssid ( Mac48Address  ad)

Definition at line 483 of file mac-low.cc.

References m_bssid.

Referenced by ns3::RegularWifiMac::SetBssid().

+ Here is the caller graph for this function:

void ns3::MacLow::SetCompressedBlockAckTimeout ( Time  blockAckTimeout)

Definition at line 443 of file mac-low.cc.

References m_compressedBlockAckTimeout.

Referenced by ns3::RegularWifiMac::SetCompressedBlockAckTimeout().

+ Here is the caller graph for this function:

void ns3::MacLow::SetCtsTimeout ( Time  ctsTimeout)

Definition at line 458 of file mac-low.cc.

References m_ctsTimeout.

Referenced by ns3::RegularWifiMac::SetCtsTimeout().

+ Here is the caller graph for this function:

void ns3::MacLow::SetCtsToSelfSupported ( bool  enable)

Definition at line 448 of file mac-low.cc.

References m_ctsToSelfSupported.

Referenced by ns3::RegularWifiMac::SetCtsToSelfSupported().

+ Here is the caller graph for this function:

void ns3::MacLow::SetPhy ( Ptr< WifiPhy phy)

Definition at line 414 of file mac-low.cc.

References m_phy, ns3::MakeCallback(), ReceiveError(), ReceiveOk(), ns3::WifiPhy::SetReceiveErrorCallback(), ns3::WifiPhy::SetReceiveOkCallback(), and SetupPhyMacLowListener().

Referenced by ns3::RegularWifiMac::SetWifiPhy().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::SetPifs ( Time  pifs)

Definition at line 473 of file mac-low.cc.

References m_pifs.

Referenced by ns3::RegularWifiMac::SetPifs().

+ Here is the caller graph for this function:

void ns3::MacLow::SetPromisc ( void  )

Definition at line 488 of file mac-low.cc.

References m_promisc.

Referenced by ns3::RegularWifiMac::SetPromisc().

+ Here is the caller graph for this function:

void ns3::MacLow::SetRifs ( Time  rifs)

Definition at line 478 of file mac-low.cc.

References m_rifs.

Referenced by ns3::RegularWifiMac::SetRifs().

+ Here is the caller graph for this function:

void ns3::MacLow::SetRxCallback ( Callback< void, Ptr< Packet >, const WifiMacHeader * >  callback)
Parameters
callbackthe callback which receives every incoming packet.

This callback typically forwards incoming packets to an instance of ns3::MacRxMiddle.

Definition at line 544 of file mac-low.cc.

References m_rxCallback.

Referenced by ns3::RegularWifiMac::RegularWifiMac().

+ Here is the caller graph for this function:

void ns3::MacLow::SetSifs ( Time  sifs)

Definition at line 463 of file mac-low.cc.

References m_sifs.

Referenced by ns3::RegularWifiMac::SetSifs().

+ Here is the caller graph for this function:

void ns3::MacLow::SetSlotTime ( Time  slotTime)

Definition at line 468 of file mac-low.cc.

References m_slotTime.

Referenced by ns3::RegularWifiMac::SetSlot().

+ Here is the caller graph for this function:

void ns3::MacLow::SetupPhyMacLowListener ( Ptr< WifiPhy phy)
private

Definition at line 312 of file mac-low.cc.

References m_phyMacLowListener, and ns3::WifiPhy::RegisterListener().

Referenced by SetPhy().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::SetWifiRemoteStationManager ( Ptr< WifiRemoteStationManager manager)

Definition at line 422 of file mac-low.cc.

References m_stationManager.

Referenced by ns3::RegularWifiMac::SetWifiRemoteStationManager().

+ Here is the caller graph for this function:

void ns3::MacLow::StartDataTxTimers ( WifiTxVector  dataTxVector)
private
void ns3::MacLow::StartTransmission ( Ptr< const Packet packet,
const WifiMacHeader hdr,
MacLowTransmissionParameters  parameters,
MacLowTransmissionListener listener 
)
Parameters
packetpacket to send
hdr802.11 header for packet to send
parametersthe transmission parameters to use for this packet.
listenerlisten to transmission events.

Start the transmission of the input packet and notify the listener of transmission events.

Definition at line 556 of file mac-low.cc.

References CancelAllEvents(), ns3::Packet::Copy(), ns3::WifiMacHeader::GetAddr1(), GetSize(), ns3::WifiPhy::IsStateTx(), m_ctsToSelfSupported, m_currentHdr, m_currentPacket, m_listener, m_phy, m_txParams, ns3::MacLowTransmissionParameters::MustSendRts(), NeedCtsToSelf(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, SendCtsToSelf(), SendDataPacket(), and SendRtsForPacket().

Referenced by ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), ns3::EdcaTxopN::SendAddBaRequest(), ns3::EdcaTxopN::SendBlockAckRequest(), ns3::EdcaTxopN::StartNext(), and ns3::DcaTxop::StartNext().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::MacLow::StoreMpduIfNeeded ( Ptr< Packet packet,
WifiMacHeader  hdr 
)
private

Definition at line 1735 of file mac-low.cc.

References ns3::WifiMacHeader::GetAddr2(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::GetSequenceControl(), m_bAckAgreements, m_bAckCaches, NS_ASSERT, ns3::QosUtilsMapSeqControlToUniqueInteger(), and ns3::Packet::RemoveTrailer().

Referenced by ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::MacLow::SuperFastAckTimeout ( void  )
private
void ns3::MacLow::WaitSifsAfterEndTx ( void  )
private

Definition at line 1673 of file mac-low.cc.

References m_listener, and ns3::MacLowTransmissionListener::StartNext().

Referenced by ReceiveOk(), and StartDataTxTimers().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

Time ns3::MacLow::m_ackTimeout
private

Definition at line 653 of file mac-low.h.

Referenced by GetAckTimeout(), and SetAckTimeout().

BlockAckCaches ns3::MacLow::m_bAckCaches
private
Time ns3::MacLow::m_basicBlockAckTimeout
private

Definition at line 654 of file mac-low.h.

Referenced by GetBasicBlockAckTimeout(), and SetBasicBlockAckTimeout().

EventId ns3::MacLow::m_blockAckTimeoutEvent
private

Definition at line 637 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), ReceiveOk(), and StartDataTxTimers().

Mac48Address ns3::MacLow::m_bssid
private

Definition at line 652 of file mac-low.h.

Referenced by GetBssid(), NotifyNav(), and SetBssid().

Time ns3::MacLow::m_compressedBlockAckTimeout
private

Definition at line 655 of file mac-low.h.

Referenced by GetCompressedBlockAckTimeout(), and SetCompressedBlockAckTimeout().

Time ns3::MacLow::m_ctsTimeout
private

Definition at line 656 of file mac-low.h.

Referenced by GetCtsTimeout(), and SetCtsTimeout().

EventId ns3::MacLow::m_ctsTimeoutEvent
private

Definition at line 638 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), ReceiveOk(), and SendRtsForPacket().

bool ns3::MacLow::m_ctsToSelfSupported
private

Definition at line 690 of file mac-low.h.

Referenced by GetCtsToSelfSupported(), SetCtsToSelfSupported(), and StartTransmission().

QueueListeners ns3::MacLow::m_edcaListeners
private
EventId ns3::MacLow::m_endTxNoAckEvent
private

Definition at line 643 of file mac-low.h.

Referenced by CancelAllEvents(), and DoDispose().

EventId ns3::MacLow::m_fastAckFailedTimeoutEvent
private

Definition at line 636 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), and ReceiveError().

EventId ns3::MacLow::m_fastAckTimeoutEvent
private

Definition at line 634 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), ReceiveOk(), and StartDataTxTimers().

Time ns3::MacLow::m_lastNavDuration
private

Definition at line 663 of file mac-low.h.

Referenced by DoNavStartNow(), IsNavZero(), MacLow(), and NotifySwitchingStartNow().

Time ns3::MacLow::m_lastNavStart
private
EventId ns3::MacLow::m_navCounterResetCtsMissed
private

Definition at line 644 of file mac-low.h.

Referenced by NotifyNav(), and NotifySwitchingStartNow().

EventId ns3::MacLow::m_normalAckTimeoutEvent
private

Definition at line 633 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), ReceiveOk(), and StartDataTxTimers().

class PhyMacLowListener* ns3::MacLow::m_phyMacLowListener
private

Definition at line 668 of file mac-low.h.

Referenced by DoDispose(), and SetupPhyMacLowListener().

Time ns3::MacLow::m_pifs
private

Definition at line 659 of file mac-low.h.

Referenced by GetPifs(), and SetPifs().

bool ns3::MacLow::m_promisc
private

Definition at line 665 of file mac-low.h.

Referenced by MacLow(), ReceiveOk(), and SetPromisc().

Time ns3::MacLow::m_rifs
private

Definition at line 660 of file mac-low.h.

Referenced by GetRifs(), and SetRifs().

Mac48Address ns3::MacLow::m_self
private

Definition at line 651 of file mac-low.h.

Referenced by GetAddress(), NotifyNav(), ReceiveOk(), SendCtsToSelf(), SendRtsForPacket(), and SetAddress().

EventId ns3::MacLow::m_sendAckEvent
private

Definition at line 640 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), and ReceiveOk().

EventId ns3::MacLow::m_sendCtsEvent
private

Definition at line 639 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), and ReceiveOk().

EventId ns3::MacLow::m_sendDataEvent
private

Definition at line 641 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), ReceiveOk(), and SendCtsToSelf().

Time ns3::MacLow::m_sifs
private

Definition at line 657 of file mac-low.h.

Referenced by GetSifs(), and SetSifs().

Time ns3::MacLow::m_slotTime
private

Definition at line 658 of file mac-low.h.

Referenced by GetSlotTime(), and SetSlotTime().

EventId ns3::MacLow::m_superFastAckTimeoutEvent
private

Definition at line 635 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), ReceiveOk(), and StartDataTxTimers().

EventId ns3::MacLow::m_waitRifsEvent
private

Definition at line 645 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), and StartDataTxTimers().

EventId ns3::MacLow::m_waitSifsEvent
private

Definition at line 642 of file mac-low.h.

Referenced by CancelAllEvents(), DoDispose(), ReceiveOk(), and StartDataTxTimers().


The documentation for this class was generated from the following files: