#include <edca-txop-n.h>
Classes | |
class | BlockAckEventListener |
class | Dcf |
class | TransmissionListener |
Public Types | |
typedef Callback< void, const WifiMacHeader & > | TxFailed |
typedef Callback< void, const WifiMacHeader & > | TxOk |
Public Member Functions | |
EdcaTxopN () | |
virtual | ~EdcaTxopN () |
int64_t | AssignStreams (int64_t stream) |
void | Cancel (void) |
void | CompleteConfig (void) |
void | DoDispose () |
void | EndTxNoAck (void) |
virtual uint32_t | GetAifsn (void) const |
uint8_t | GetBlockAckThreshold (void) const |
uint32_t | GetFragmentOffset (void) |
Ptr< Packet > | GetFragmentPacket (WifiMacHeader *hdr) |
uint32_t | GetFragmentSize (void) |
virtual uint32_t | GetMaxCw (void) const |
virtual uint32_t | GetMinCw (void) const |
Ptr< MsduAggregator > | GetMsduAggregator (void) const |
uint32_t | GetNextFragmentSize (void) |
Ptr< WifiMacQueue > | GetQueue () const |
enum TypeOfStation | GetTypeOfStation (void) const |
void | GotAck (double snr, WifiMode txMode) |
void | GotAddBaResponse (const MgtAddBaResponseHeader *respHdr, Mac48Address recipient) |
void | GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address recipient) |
void | GotCts (double snr, WifiMode txMode) |
void | GotDelBaFrame (const MgtDelBaHeader *delBaHdr, Mac48Address recipient) |
bool | IsLastFragment (void) const |
Ptr< MacLow > | Low (void) |
void | MissedAck (void) |
void | MissedBlockAck (void) |
void | MissedCts (void) |
bool | NeedDataRetransmission (void) |
bool | NeedFragmentation (void) const |
bool | NeedRts (void) |
bool | NeedRtsRetransmission (void) |
bool | NeedsAccess (void) const |
void | NextFragment (void) |
void | NotifyAccessGranted (void) |
void | NotifyChannelSwitching (void) |
void | NotifyCollision (void) |
void | NotifyInternalCollision (void) |
void | PushFront (Ptr< const Packet > packet, const WifiMacHeader &hdr) |
void | Queue (Ptr< const Packet > packet, const WifiMacHeader &hdr) |
void | RestartAccessIfNeeded (void) |
void | SendDelbaFrame (Mac48Address addr, uint8_t tid, bool byOriginator) |
void | SetAccessCategory (enum AcIndex ac) |
virtual void | SetAifsn (uint32_t aifsn) |
void | SetBlockAckInactivityTimeout (uint16_t timeout) |
void | SetBlockAckThreshold (uint8_t threshold) |
void | SetLow (Ptr< MacLow > low) |
void | SetManager (DcfManager *manager) |
virtual void | SetMaxCw (uint32_t maxCw) |
virtual void | SetMinCw (uint32_t minCw) |
void | SetMsduAggregator (Ptr< MsduAggregator > aggr) |
void | SetTxFailedCallback (TxFailed callback) |
void | SetTxMiddle (MacTxMiddle *txMiddle) |
void | SetTxOkCallback (TxOk callback) |
void | SetTypeOfStation (enum TypeOfStation type) |
void | SetWifiRemoteStationManager (Ptr< WifiRemoteStationManager > remoteManager) |
void | StartAccessIfNeeded (void) |
void | StartNext (void) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Private Member Functions | |
EdcaTxopN (const EdcaTxopN &) | |
void | CompleteTx (void) |
void | DoInitialize () |
Mac48Address | MapDestAddressForAggregation (const WifiMacHeader &hdr) |
Mac48Address | MapSrcAddressForAggregation (const WifiMacHeader &hdr) |
EdcaTxopN & | operator= (const EdcaTxopN &) |
void | SendAddBaRequest (Mac48Address recipient, uint8_t tid, uint16_t startSeq, uint16_t timeout, bool immediateBAck) |
void | SendBlockAckRequest (const struct Bar &bar) |
bool | SetupBlockAckIfNeeded () |
void | VerifyBlockAck (void) |
Friends | |
class | Dcf |
class | TransmissionListener |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
This queue contains packets for a particular access class. possibles access classes are:
-AC_VO : voice, tid = 6,7 ^ -AC_VI : video, tid = 4,5 | -AC_BE : best-effort, tid = 0,3 | priority -AC_BK : background, tid = 1,2 |
For more details see section 9.1.3.1 in 802.11 standard.
ns3::EdcaTxopN is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 77 of file edca-txop-n.h.
typedef Callback<void, const WifiMacHeader&> ns3::EdcaTxopN::TxFailed |
Definition at line 81 of file edca-txop-n.h.
typedef Callback<void, const WifiMacHeader&> ns3::EdcaTxopN::TxOk |
Definition at line 80 of file edca-txop-n.h.
ns3::EdcaTxopN::EdcaTxopN | ( | ) |
Definition at line 170 of file edca-txop-n.cc.
References ns3::QosBlockedDestinations::Block(), Dcf, ns3::WifiMacQueue::GetMaxDelay(), m_baManager, m_blockAckListener, m_blockAckType, m_dcf, m_qosBlockedDestinations, m_queue, m_rng, m_transmissionListener, ns3::MakeCallback(), NS_LOG_FUNCTION, ns3::BlockAckManager::SetBlockAckType(), ns3::BlockAckManager::SetBlockDestinationCallback(), ns3::BlockAckManager::SetMaxPacketDelay(), ns3::BlockAckManager::SetQueue(), ns3::BlockAckManager::SetUnblockDestinationCallback(), TransmissionListener, and ns3::QosBlockedDestinations::Unblock().
|
virtual |
Definition at line 191 of file edca-txop-n.cc.
References NS_LOG_FUNCTION.
|
private |
int64_t ns3::EdcaTxopN::AssignStreams | ( | int64_t | stream | ) |
Assign a fixed random variable stream number to the random variables used by this model. Return the number of streams (possibly zero) that have been assigned.
stream | first stream index to use |
Definition at line 1148 of file edca-txop-n.cc.
References ns3::RandomStream::AssignStreams(), m_rng, and NS_LOG_FUNCTION.
Referenced by ns3::WifiHelper::AssignStreams().
void ns3::EdcaTxopN::Cancel | ( | void | ) |
Definition at line 743 of file edca-txop-n.cc.
References NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ns3::EdcaTxopN::TransmissionListener::Cancel().
void ns3::EdcaTxopN::CompleteConfig | ( | void | ) |
Definition at line 1019 of file edca-txop-n.cc.
References m_ac, m_baManager, m_blockAckListener, m_low, m_txMiddle, ns3::MakeCallback(), NS_LOG_FUNCTION, ns3::MacLow::RegisterBlockAckListenerForAc(), SendDelbaFrame(), ns3::BlockAckManager::SetBlockAckInactivityCallback(), and ns3::BlockAckManager::SetTxMiddle().
|
private |
Definition at line 940 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::MacTxMiddle::GetNextSeqNumberByTidAndAddress(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::IsQosBlockAck(), ns3::WifiMacHeader::IsQosData(), ns3::WifiMacHeader::IsRetry(), m_baManager, m_currentHdr, m_currentPacket, m_currentPacketTimestamp, m_txMiddle, ns3::BlockAckManager::NotifyMpduTransmission(), NS_LOG_FUNCTION, and ns3::BlockAckManager::StorePacket().
Referenced by NotifyAccessGranted().
|
virtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::Object.
Definition at line 197 of file edca-txop-n.cc.
References m_aggregator, m_baManager, m_blockAckListener, m_dcf, m_low, m_qosBlockedDestinations, m_queue, m_rng, m_stationManager, m_transmissionListener, m_txMiddle, and NS_LOG_FUNCTION.
|
private |
Definition at line 1156 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), m_dcf, m_rng, NS_LOG_FUNCTION, ns3::DcfState::ResetCw(), and ns3::DcfState::StartBackoffNow().
void ns3::EdcaTxopN::EndTxNoAck | ( | void | ) |
Definition at line 750 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), m_currentPacket, m_dcf, m_rng, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::DcfState::ResetCw(), StartAccessIfNeeded(), and ns3::DcfState::StartBackoffNow().
Referenced by ns3::EdcaTxopN::TransmissionListener::EndTxNoAck().
|
virtual |
Implements ns3::Dcf.
Definition at line 304 of file edca-txop-n.cc.
References ns3::DcfState::GetAifsn(), m_dcf, and NS_LOG_FUNCTION.
uint8_t ns3::EdcaTxopN::GetBlockAckThreshold | ( | void | ) | const |
Definition at line 1043 of file edca-txop-n.cc.
References m_blockAckThreshold, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
uint32_t ns3::EdcaTxopN::GetFragmentOffset | ( | void | ) |
Definition at line 785 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetFragmentOffset(), m_currentHdr, m_currentPacket, m_fragmentNumber, m_stationManager, and NS_LOG_FUNCTION.
Referenced by GetFragmentPacket().
Ptr< Packet > ns3::EdcaTxopN::GetFragmentPacket | ( | WifiMacHeader * | hdr | ) |
Definition at line 802 of file edca-txop-n.cc.
References ns3::Packet::CreateFragment(), GetFragmentOffset(), GetFragmentSize(), IsLastFragment(), m_currentHdr, m_currentPacket, m_fragmentNumber, NS_LOG_FUNCTION, ns3::WifiMacHeader::SetFragmentNumber(), ns3::WifiMacHeader::SetMoreFragments(), and ns3::WifiMacHeader::SetNoMoreFragments().
Referenced by NotifyAccessGranted(), and StartNext().
uint32_t ns3::EdcaTxopN::GetFragmentSize | ( | void | ) |
Definition at line 769 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetFragmentSize(), m_currentHdr, m_currentPacket, m_fragmentNumber, m_stationManager, and NS_LOG_FUNCTION.
Referenced by GetFragmentPacket().
|
virtual |
Implements ns3::Dcf.
Definition at line 297 of file edca-txop-n.cc.
References ns3::DcfState::GetCwMax(), m_dcf, and NS_LOG_FUNCTION.
|
virtual |
Implements ns3::Dcf.
Definition at line 290 of file edca-txop-n.cc.
References ns3::DcfState::GetCwMin(), m_dcf, and NS_LOG_FUNCTION.
Ptr< MsduAggregator > ns3::EdcaTxopN::GetMsduAggregator | ( | void | ) | const |
Definition at line 658 of file edca-txop-n.cc.
References m_aggregator.
uint32_t ns3::EdcaTxopN::GetNextFragmentSize | ( | void | ) |
Definition at line 777 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetFragmentSize(), m_currentHdr, m_currentPacket, m_fragmentNumber, m_stationManager, and NS_LOG_FUNCTION.
Referenced by NotifyAccessGranted(), and StartNext().
Ptr< WifiMacQueue > ns3::EdcaTxopN::GetQueue | ( | void | ) | const |
Definition at line 262 of file edca-txop-n.cc.
References m_queue, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
static |
Reimplemented from ns3::Dcf.
Definition at line 144 of file edca-txop-n.cc.
References ns3::TypeId::AddConstructor(), GetBlockAckThreshold(), GetQueue(), ns3::Dcf::GetTypeId(), SetBlockAckInactivityTimeout(), SetBlockAckThreshold(), and ns3::TypeId::SetParent().
enum TypeOfStation ns3::EdcaTxopN::GetTypeOfStation | ( | void | ) | const |
Definition at line 255 of file edca-txop-n.cc.
References m_typeOfStation, and NS_LOG_FUNCTION.
void ns3::EdcaTxopN::GotAck | ( | double | snr, |
WifiMode | txMode | ||
) |
Definition at line 571 of file edca-txop-n.cc.
References ns3::WifiActionHeader::BLOCK_ACK, ns3::WifiActionHeader::BLOCK_ACK_DELBA, ns3::WifiActionHeader::ActionValue::blockAck, ns3::Packet::Copy(), ns3::MacLow::DestroyBlockAckAgreement(), ns3::WifiActionHeader::GetAction(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiActionHeader::GetCategory(), ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), ns3::Packet::GetSize(), ns3::MgtDelBaHeader::GetTid(), ns3::WifiMacHeader::IsAction(), ns3::MgtDelBaHeader::IsByOriginator(), IsLastFragment(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::WifiMacHeader::IsQosAmsdu(), m_baManager, m_currentHdr, m_currentPacket, m_dcf, m_low, m_rng, m_txOkCallback, NeedFragmentation(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Packet::PeekHeader(), ns3::Packet::RemoveHeader(), ns3::DcfState::ResetCw(), RestartAccessIfNeeded(), ns3::DcfState::StartBackoffNow(), and ns3::BlockAckManager::TearDownBlockAck().
Referenced by ns3::EdcaTxopN::TransmissionListener::GotAck().
void ns3::EdcaTxopN::GotAddBaResponse | ( | const MgtAddBaResponseHeader * | respHdr, |
Mac48Address | recipient | ||
) |
Definition at line 881 of file edca-txop-n.cc.
References ns3::BlockAckManager::ExistsAgreementInState(), ns3::MgtAddBaResponseHeader::GetStatusCode(), ns3::MgtAddBaResponseHeader::GetTid(), ns3::StatusCode::IsSuccess(), m_baManager, ns3::BlockAckManager::NotifyAgreementUnsuccessful(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::OriginatorBlockAckAgreement::PENDING, RestartAccessIfNeeded(), and ns3::BlockAckManager::UpdateAgreement().
void ns3::EdcaTxopN::GotBlockAck | ( | const CtrlBAckResponseHeader * | blockAck, |
Mac48Address | recipient | ||
) |
Definition at line 911 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), m_baManager, m_currentPacket, m_dcf, m_rng, ns3::BlockAckManager::NotifyGotBlockAck(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::DcfState::ResetCw(), RestartAccessIfNeeded(), and ns3::DcfState::StartBackoffNow().
Referenced by ns3::EdcaTxopN::TransmissionListener::GotBlockAck().
void ns3::EdcaTxopN::GotCts | ( | double | snr, |
WifiMode | txMode | ||
) |
Definition at line 519 of file edca-txop-n.cc.
References NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ns3::EdcaTxopN::TransmissionListener::GotCts().
void ns3::EdcaTxopN::GotDelBaFrame | ( | const MgtDelBaHeader * | delBaHdr, |
Mac48Address | recipient | ||
) |
Definition at line 903 of file edca-txop-n.cc.
References ns3::MgtDelBaHeader::GetTid(), m_baManager, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::BlockAckManager::TearDownBlockAck().
bool ns3::EdcaTxopN::IsLastFragment | ( | void | ) | const |
Definition at line 794 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::IsLastFragment(), m_currentHdr, m_currentPacket, m_fragmentNumber, m_stationManager, and NS_LOG_FUNCTION.
Referenced by GetFragmentPacket(), GotAck(), NotifyAccessGranted(), and StartNext().
Definition at line 318 of file edca-txop-n.cc.
References m_low, and NS_LOG_FUNCTION.
Referenced by StartNext().
|
private |
Definition at line 846 of file edca-txop-n.cc.
References ns3::ADHOC_STA, ns3::AP, ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetAddr3(), m_typeOfStation, and NS_LOG_FUNCTION.
Referenced by NotifyAccessGranted().
|
private |
This functions are used only to correctly set addresses in a-msdu subframe. If aggregating sta is a STA (in an infrastructured network): SA = Address2 DA = Address3 If aggregating sta is an AP SA = Address3 DA = Address1
Definition at line 830 of file edca-txop-n.cc.
References ns3::ADHOC_STA, ns3::WifiMacHeader::GetAddr2(), ns3::WifiMacHeader::GetAddr3(), m_typeOfStation, NS_LOG_FUNCTION, and ns3::STA.
Referenced by NotifyAccessGranted().
void ns3::EdcaTxopN::MissedAck | ( | void | ) |
Definition at line 617 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_currentHdr, m_currentPacket, m_dcf, m_rng, m_stationManager, m_txFailedCallback, NeedDataRetransmission(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::ReportFinalDataFailed(), ns3::DcfState::ResetCw(), RestartAccessIfNeeded(), ns3::WifiMacHeader::SetRetry(), ns3::DcfState::StartBackoffNow(), and ns3::DcfState::UpdateFailedCw().
Referenced by ns3::EdcaTxopN::TransmissionListener::MissedAck().
void ns3::EdcaTxopN::MissedBlockAck | ( | void | ) |
Definition at line 644 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), m_currentHdr, m_dcf, m_rng, NS_LOG_DEBUG, NS_LOG_FUNCTION, RestartAccessIfNeeded(), ns3::WifiMacHeader::SetRetry(), ns3::DcfState::StartBackoffNow(), and ns3::DcfState::UpdateFailedCw().
Referenced by ns3::EdcaTxopN::TransmissionListener::MissedBlockAck().
void ns3::EdcaTxopN::MissedCts | ( | void | ) |
Definition at line 526 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_currentHdr, m_currentPacket, m_dcf, m_rng, m_stationManager, m_txFailedCallback, NeedRtsRetransmission(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::ReportFinalRtsFailed(), ns3::DcfState::ResetCw(), RestartAccessIfNeeded(), ns3::DcfState::StartBackoffNow(), and ns3::DcfState::UpdateFailedCw().
Referenced by ns3::EdcaTxopN::TransmissionListener::MissedCts().
bool ns3::EdcaTxopN::NeedDataRetransmission | ( | void | ) |
Definition at line 704 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), m_currentHdr, m_currentPacket, m_stationManager, ns3::WifiRemoteStationManager::NeedDataRetransmission(), and NS_LOG_FUNCTION.
Referenced by MissedAck().
bool ns3::EdcaTxopN::NeedFragmentation | ( | void | ) | const |
Definition at line 761 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), m_currentHdr, m_currentPacket, m_stationManager, ns3::WifiRemoteStationManager::NeedFragmentation(), and NS_LOG_FUNCTION.
Referenced by GotAck(), and NotifyAccessGranted().
bool ns3::EdcaTxopN::NeedRts | ( | void | ) |
Definition at line 688 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), m_currentHdr, m_currentPacket, m_stationManager, ns3::WifiRemoteStationManager::NeedRts(), and NS_LOG_FUNCTION.
Referenced by NotifyAccessGranted().
bool ns3::EdcaTxopN::NeedRtsRetransmission | ( | void | ) |
Definition at line 696 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), m_currentHdr, m_currentPacket, m_stationManager, ns3::WifiRemoteStationManager::NeedRtsRetransmission(), and NS_LOG_FUNCTION.
Referenced by MissedCts().
bool ns3::EdcaTxopN::NeedsAccess | ( | void | ) | const |
Definition at line 332 of file edca-txop-n.cc.
References ns3::BlockAckManager::HasPackets(), ns3::WifiMacQueue::IsEmpty(), m_baManager, m_currentPacket, m_queue, and NS_LOG_FUNCTION.
void ns3::EdcaTxopN::NextFragment | ( | void | ) |
Definition at line 712 of file edca-txop-n.cc.
References m_fragmentNumber, and NS_LOG_FUNCTION.
Referenced by StartNext().
void ns3::EdcaTxopN::NotifyAccessGranted | ( | void | ) |
Definition at line 339 of file edca-txop-n.cc.
References ns3::WifiMacHeader::ADDR1, ns3::MsduAggregator::Aggregate(), ns3::BASIC_BLOCK_ACK, CompleteTx(), ns3::WifiMacQueue::DequeueFirstAvailable(), ns3::MacLowTransmissionParameters::DisableAck(), ns3::MacLowTransmissionParameters::DisableNextData(), ns3::MacLowTransmissionParameters::DisableOverrideDurationId(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLowTransmissionParameters::EnableNextData(), ns3::MacLowTransmissionParameters::EnableRts(), ns3::BlockAckManager::ExistsAgreement(), ns3::WifiMacHeader::GetAddr1(), ns3::MacLow::GetBssid(), GetFragmentPacket(), GetNextFragmentSize(), ns3::BlockAckManager::GetNextPacket(), ns3::MacTxMiddle::GetNextSequenceNumberfor(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::GetSequenceControl(), ns3::Packet::GetSize(), ns3::WifiMacHeader::GetType(), ns3::BlockAckManager::HasBar(), ns3::BlockAckManager::HasPackets(), ns3::Mac48Address::IsBroadcast(), ns3::WifiMacHeader::IsData(), ns3::WifiMacQueue::IsEmpty(), ns3::Mac48Address::IsGroup(), IsLastFragment(), ns3::WifiMacHeader::IsQosAmsdu(), ns3::WifiMacHeader::IsQosBlockAck(), ns3::WifiMacHeader::IsQosData(), ns3::WifiMacHeader::IsRetry(), m_aggregator, m_baManager, m_blockAckThreshold, m_blockAckType, m_currentBar, m_currentHdr, m_currentPacket, m_currentPacketTimestamp, m_fragmentNumber, m_low, m_qosBlockedDestinations, m_queue, m_transmissionListener, m_txMiddle, MapDestAddressForAggregation(), MapSrcAddressForAggregation(), NeedFragmentation(), NeedRts(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiMacQueue::PeekByTidAndAddress(), ns3::WifiMacQueue::PeekFirstAvailable(), ns3::WifiMacQueue::Remove(), SendBlockAckRequest(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetFragmentNumber(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetQosAmsdu(), ns3::WifiMacHeader::SetSequenceNumber(), SetupBlockAckIfNeeded(), ns3::MacLow::StartTransmission(), VerifyBlockAck(), and ns3::WIFI_MAC_CTL_BACKREQ.
Referenced by ns3::EdcaTxopN::Dcf::DoNotifyAccessGranted().
void ns3::EdcaTxopN::NotifyChannelSwitching | ( | void | ) |
When a channel switching occurs, enqueued packets are removed.
Definition at line 551 of file edca-txop-n.cc.
References ns3::WifiMacQueue::Flush(), m_currentPacket, m_queue, and NS_LOG_FUNCTION.
Referenced by ns3::EdcaTxopN::Dcf::DoNotifyChannelSwitching().
void ns3::EdcaTxopN::NotifyCollision | ( | void | ) |
Definition at line 511 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), m_dcf, m_rng, NS_LOG_FUNCTION, RestartAccessIfNeeded(), and ns3::DcfState::StartBackoffNow().
Referenced by ns3::EdcaTxopN::Dcf::DoNotifyCollision(), and NotifyInternalCollision().
void ns3::EdcaTxopN::NotifyInternalCollision | ( | void | ) |
Definition at line 504 of file edca-txop-n.cc.
References NotifyCollision(), and NS_LOG_FUNCTION.
Referenced by ns3::EdcaTxopN::Dcf::DoNotifyInternalCollision().
void ns3::EdcaTxopN::PushFront | ( | Ptr< const Packet > | packet, |
const WifiMacHeader & | hdr | ||
) |
Definition at line 869 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacTrailer::GetSerializedSize(), ns3::WifiMacHeader::GetSerializedSize(), ns3::Packet::GetSize(), m_queue, m_stationManager, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::PrepareForQueue(), ns3::WifiMacQueue::PushFront(), and StartAccessIfNeeded().
Referenced by SendDelbaFrame().
void ns3::EdcaTxopN::Queue | ( | Ptr< const Packet > | packet, |
const WifiMacHeader & | hdr | ||
) |
Definition at line 559 of file edca-txop-n.cc.
References ns3::WifiMacQueue::Enqueue(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacTrailer::GetSerializedSize(), ns3::WifiMacHeader::GetSerializedSize(), ns3::Packet::GetSize(), m_queue, m_stationManager, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::PrepareForQueue(), and StartAccessIfNeeded().
void ns3::EdcaTxopN::RestartAccessIfNeeded | ( | void | ) |
Definition at line 664 of file edca-txop-n.cc.
References ns3::BlockAckManager::HasPackets(), ns3::DcfState::IsAccessRequested(), ns3::WifiMacQueue::IsEmpty(), m_baManager, m_currentPacket, m_dcf, m_manager, m_queue, NS_LOG_FUNCTION, and ns3::DcfManager::RequestAccess().
Referenced by GotAck(), GotAddBaResponse(), GotBlockAck(), MissedAck(), MissedBlockAck(), MissedCts(), and NotifyCollision().
|
private |
Definition at line 1050 of file edca-txop-n.cc.
References ns3::Packet::AddHeader(), ns3::WifiActionHeader::BLOCK_ACK, ns3::WifiActionHeader::BLOCK_ACK_ADDBA_REQUEST, ns3::WifiActionHeader::ActionValue::blockAck, ns3::BlockAckManager::CreateAgreement(), ns3::MacLowTransmissionParameters::DisableNextData(), ns3::MacLowTransmissionParameters::DisableOverrideDurationId(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLow::GetAddress(), ns3::MacTxMiddle::GetNextSequenceNumberfor(), m_baManager, m_currentHdr, m_currentPacket, m_low, m_transmissionListener, m_txMiddle, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiMacHeader::SetAction(), ns3::WifiActionHeader::SetAction(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::MgtAddBaRequestHeader::SetAmsduSupport(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::WifiMacHeader::SetFragmentNumber(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetSequenceNumber(), and ns3::MacLow::StartTransmission().
Referenced by SetupBlockAckIfNeeded().
|
private |
Definition at line 975 of file edca-txop-n.cc.
References ns3::Bar::bar, ns3::BASIC_BLOCK_ACK, ns3::COMPRESSED_BLOCK_ACK, ns3::MacLowTransmissionParameters::DisableNextData(), ns3::MacLowTransmissionParameters::DisableOverrideDurationId(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLowTransmissionParameters::EnableBasicBlockAck(), ns3::MacLowTransmissionParameters::EnableCompressedBlockAck(), ns3::MacLow::GetAddress(), ns3::MacLow::GetBssid(), ns3::Bar::immediate, m_blockAckType, m_currentHdr, m_currentPacket, m_low, m_transmissionListener, ns3::MULTI_TID_BLOCK_ACK, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::Bar::recipient, ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetType(), ns3::MacLow::StartTransmission(), and ns3::WIFI_MAC_CTL_BACKREQ.
Referenced by NotifyAccessGranted().
void ns3::EdcaTxopN::SendDelbaFrame | ( | Mac48Address | addr, |
uint8_t | tid, | ||
bool | byOriginator | ||
) |
Definition at line 1113 of file edca-txop-n.cc.
References ns3::Packet::AddHeader(), ns3::WifiActionHeader::BLOCK_ACK, ns3::WifiActionHeader::BLOCK_ACK_DELBA, ns3::WifiActionHeader::ActionValue::blockAck, ns3::MacLow::GetAddress(), m_low, NS_LOG_FUNCTION, PushFront(), ns3::WifiMacHeader::SetAction(), ns3::WifiActionHeader::SetAction(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::MgtDelBaHeader::SetByOriginator(), ns3::MgtDelBaHeader::SetByRecipient(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), and ns3::MgtDelBaHeader::SetTid().
Referenced by ns3::EdcaTxopN::BlockAckEventListener::BlockAckInactivityTimeout(), and CompleteConfig().
void ns3::EdcaTxopN::SetAccessCategory | ( | enum AcIndex | ac | ) |
Definition at line 823 of file edca-txop-n.cc.
References m_ac, and NS_LOG_FUNCTION.
|
virtual |
Implements ns3::Dcf.
Definition at line 283 of file edca-txop-n.cc.
References m_dcf, NS_LOG_FUNCTION, and ns3::DcfState::SetAifsn().
void ns3::EdcaTxopN::SetBlockAckInactivityTimeout | ( | uint16_t | timeout | ) |
Definition at line 1036 of file edca-txop-n.cc.
References m_blockAckInactivityTimeout, NS_LOG_FUNCTION, and timeout.
Referenced by GetTypeId(), and ns3::QosWifiMacHelper::Setup().
void ns3::EdcaTxopN::SetBlockAckThreshold | ( | uint8_t | threshold | ) |
Definition at line 1028 of file edca-txop-n.cc.
References m_baManager, m_blockAckThreshold, NS_LOG_FUNCTION, and ns3::BlockAckManager::SetBlockAckThreshold().
Referenced by GetTypeId(), and ns3::QosWifiMacHelper::Setup().
Definition at line 325 of file edca-txop-n.cc.
References m_low, and NS_LOG_FUNCTION.
Referenced by ns3::RegularWifiMac::SetupEdcaQueue().
void ns3::EdcaTxopN::SetManager | ( | DcfManager * | manager | ) |
Definition at line 220 of file edca-txop-n.cc.
References ns3::DcfManager::Add(), m_dcf, m_manager, and NS_LOG_FUNCTION.
|
virtual |
Implements ns3::Dcf.
Definition at line 276 of file edca-txop-n.cc.
References m_dcf, NS_LOG_FUNCTION, and ns3::DcfState::SetCwMax().
|
virtual |
Implements ns3::Dcf.
Definition at line 269 of file edca-txop-n.cc.
References m_dcf, NS_LOG_FUNCTION, and ns3::DcfState::SetCwMin().
void ns3::EdcaTxopN::SetMsduAggregator | ( | Ptr< MsduAggregator > | aggr | ) |
Definition at line 862 of file edca-txop-n.cc.
References m_aggregator, and NS_LOG_FUNCTION.
Referenced by ns3::QosWifiMacHelper::Setup().
void ns3::EdcaTxopN::SetTxFailedCallback | ( | TxFailed | callback | ) |
Definition at line 235 of file edca-txop-n.cc.
References m_txFailedCallback, and NS_LOG_FUNCTION.
void ns3::EdcaTxopN::SetTxMiddle | ( | MacTxMiddle * | txMiddle | ) |
Definition at line 311 of file edca-txop-n.cc.
References m_txMiddle, and NS_LOG_FUNCTION.
void ns3::EdcaTxopN::SetTxOkCallback | ( | TxOk | callback | ) |
Definition at line 228 of file edca-txop-n.cc.
References m_txOkCallback, and NS_LOG_FUNCTION.
void ns3::EdcaTxopN::SetTypeOfStation | ( | enum TypeOfStation | type | ) |
Definition at line 248 of file edca-txop-n.cc.
References m_typeOfStation, and NS_LOG_FUNCTION.
|
private |
Definition at line 956 of file edca-txop-n.cc.
References ns3::WifiMacHeader::ADDR1, ns3::WifiMacHeader::GetAddr1(), ns3::MacTxMiddle::GetNextSeqNumberByTidAndAddress(), ns3::WifiMacQueue::GetNPacketsByTidAndAddress(), ns3::WifiMacHeader::GetQosTid(), m_blockAckInactivityTimeout, m_blockAckThreshold, m_currentHdr, m_queue, m_txMiddle, NS_LOG_FUNCTION, and SendAddBaRequest().
Referenced by NotifyAccessGranted().
void ns3::EdcaTxopN::SetWifiRemoteStationManager | ( | Ptr< WifiRemoteStationManager > | remoteManager | ) |
Definition at line 242 of file edca-txop-n.cc.
References m_stationManager, and NS_LOG_FUNCTION.
void ns3::EdcaTxopN::StartAccessIfNeeded | ( | void | ) |
Definition at line 676 of file edca-txop-n.cc.
References ns3::BlockAckManager::HasPackets(), ns3::DcfState::IsAccessRequested(), ns3::WifiMacQueue::IsEmpty(), m_baManager, m_currentPacket, m_dcf, m_manager, m_queue, NS_LOG_FUNCTION, and ns3::DcfManager::RequestAccess().
Referenced by EndTxNoAck(), PushFront(), and Queue().
void ns3::EdcaTxopN::StartNext | ( | void | ) |
Definition at line 719 of file edca-txop-n.cc.
References ns3::MacLowTransmissionParameters::DisableNextData(), ns3::MacLowTransmissionParameters::DisableOverrideDurationId(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLowTransmissionParameters::EnableNextData(), GetFragmentPacket(), GetNextFragmentSize(), IsLastFragment(), Low(), m_transmissionListener, NextFragment(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::MacLow::StartTransmission().
Referenced by ns3::EdcaTxopN::TransmissionListener::StartNext().
|
private |
Definition at line 923 of file edca-txop-n.cc.
References ns3::WifiMacHeader::BLOCK_ACK, ns3::OriginatorBlockAckAgreement::ESTABLISHED, ns3::BlockAckManager::ExistsAgreementInState(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::GetSequenceNumber(), ns3::OriginatorBlockAckAgreement::INACTIVE, m_baManager, m_currentHdr, NS_LOG_FUNCTION, ns3::WifiMacHeader::SetQosAckPolicy(), and ns3::BlockAckManager::SwitchToBlockAckIfNeeded().
Referenced by NotifyAccessGranted().
|
friend |
Definition at line 205 of file edca-txop-n.h.
Referenced by EdcaTxopN().
|
friend |
Definition at line 207 of file edca-txop-n.h.
Referenced by EdcaTxopN().
|
private |
Definition at line 202 of file edca-txop-n.h.
Referenced by CompleteConfig(), and SetAccessCategory().
|
private |
Definition at line 227 of file edca-txop-n.h.
Referenced by DoDispose(), GetMsduAggregator(), NotifyAccessGranted(), and SetMsduAggregator().
|
private |
Definition at line 230 of file edca-txop-n.h.
Referenced by CompleteConfig(), CompleteTx(), DoDispose(), EdcaTxopN(), GotAck(), GotAddBaResponse(), GotBlockAck(), GotDelBaFrame(), NeedsAccess(), NotifyAccessGranted(), RestartAccessIfNeeded(), SendAddBaRequest(), SetBlockAckThreshold(), StartAccessIfNeeded(), and VerifyBlockAck().
|
private |
Definition at line 237 of file edca-txop-n.h.
Referenced by SetBlockAckInactivityTimeout(), and SetupBlockAckIfNeeded().
|
private |
Definition at line 216 of file edca-txop-n.h.
Referenced by CompleteConfig(), DoDispose(), and EdcaTxopN().
|
private |
Definition at line 234 of file edca-txop-n.h.
Referenced by GetBlockAckThreshold(), NotifyAccessGranted(), SetBlockAckThreshold(), and SetupBlockAckIfNeeded().
|
private |
Definition at line 235 of file edca-txop-n.h.
Referenced by EdcaTxopN(), NotifyAccessGranted(), and SendBlockAckRequest().
|
private |
Definition at line 238 of file edca-txop-n.h.
Referenced by NotifyAccessGranted().
|
private |
Definition at line 226 of file edca-txop-n.h.
Referenced by CompleteTx(), GetFragmentOffset(), GetFragmentPacket(), GetFragmentSize(), GetNextFragmentSize(), GotAck(), IsLastFragment(), MissedAck(), MissedBlockAck(), MissedCts(), NeedDataRetransmission(), NeedFragmentation(), NeedRts(), NeedRtsRetransmission(), NotifyAccessGranted(), SendAddBaRequest(), SendBlockAckRequest(), SetupBlockAckIfNeeded(), and VerifyBlockAck().
Definition at line 224 of file edca-txop-n.h.
Referenced by CompleteTx(), EndTxNoAck(), GetFragmentOffset(), GetFragmentPacket(), GetFragmentSize(), GetNextFragmentSize(), GotAck(), GotBlockAck(), IsLastFragment(), MissedAck(), MissedCts(), NeedDataRetransmission(), NeedFragmentation(), NeedRts(), NeedRtsRetransmission(), NeedsAccess(), NotifyAccessGranted(), NotifyChannelSwitching(), RestartAccessIfNeeded(), SendAddBaRequest(), SendBlockAckRequest(), and StartAccessIfNeeded().
|
private |
Definition at line 236 of file edca-txop-n.h.
Referenced by CompleteTx(), and NotifyAccessGranted().
|
private |
Definition at line 208 of file edca-txop-n.h.
Referenced by DoDispose(), DoInitialize(), EdcaTxopN(), EndTxNoAck(), GetAifsn(), GetMaxCw(), GetMinCw(), GotAck(), GotBlockAck(), MissedAck(), MissedBlockAck(), MissedCts(), NotifyCollision(), RestartAccessIfNeeded(), SetAifsn(), SetManager(), SetMaxCw(), SetMinCw(), and StartAccessIfNeeded().
|
private |
Definition at line 219 of file edca-txop-n.h.
Referenced by GetFragmentOffset(), GetFragmentPacket(), GetFragmentSize(), GetNextFragmentSize(), IsLastFragment(), NextFragment(), and NotifyAccessGranted().
Definition at line 213 of file edca-txop-n.h.
Referenced by CompleteConfig(), DoDispose(), GotAck(), Low(), NotifyAccessGranted(), SendAddBaRequest(), SendBlockAckRequest(), SendDelbaFrame(), and SetLow().
|
private |
Definition at line 209 of file edca-txop-n.h.
Referenced by RestartAccessIfNeeded(), SetManager(), and StartAccessIfNeeded().
|
private |
Definition at line 229 of file edca-txop-n.h.
Referenced by DoDispose(), EdcaTxopN(), and NotifyAccessGranted().
|
private |
Definition at line 210 of file edca-txop-n.h.
Referenced by DoDispose(), EdcaTxopN(), GetQueue(), NeedsAccess(), NotifyAccessGranted(), NotifyChannelSwitching(), PushFront(), Queue(), RestartAccessIfNeeded(), SetupBlockAckIfNeeded(), and StartAccessIfNeeded().
|
private |
Definition at line 217 of file edca-txop-n.h.
Referenced by AssignStreams(), DoDispose(), DoInitialize(), EdcaTxopN(), EndTxNoAck(), GotAck(), GotBlockAck(), MissedAck(), MissedBlockAck(), MissedCts(), and NotifyCollision().
|
private |
Definition at line 218 of file edca-txop-n.h.
Referenced by DoDispose(), GetFragmentOffset(), GetFragmentSize(), GetNextFragmentSize(), IsLastFragment(), MissedAck(), MissedCts(), NeedDataRetransmission(), NeedFragmentation(), NeedRts(), NeedRtsRetransmission(), PushFront(), Queue(), and SetWifiRemoteStationManager().
|
private |
Definition at line 215 of file edca-txop-n.h.
Referenced by DoDispose(), EdcaTxopN(), NotifyAccessGranted(), SendAddBaRequest(), SendBlockAckRequest(), and StartNext().
|
private |
Definition at line 212 of file edca-txop-n.h.
Referenced by MissedAck(), MissedCts(), and SetTxFailedCallback().
|
private |
Definition at line 214 of file edca-txop-n.h.
Referenced by CompleteConfig(), CompleteTx(), DoDispose(), NotifyAccessGranted(), SendAddBaRequest(), SetTxMiddle(), and SetupBlockAckIfNeeded().
|
private |
Definition at line 211 of file edca-txop-n.h.
Referenced by GotAck(), and SetTxOkCallback().
|
private |
Definition at line 228 of file edca-txop-n.h.
Referenced by GetTypeOfStation(), MapDestAddressForAggregation(), MapSrcAddressForAggregation(), and SetTypeOfStation().