This queue contains packets for a particular access class. More...
#include "edca-txop-n.h"
Classes | |
class | AggregationCapableTransmissionListener |
class | Dcf |
class | TransmissionListener |
Public Types | |
typedef Callback< void, const WifiMacHeader & > | TxFailed |
typedef for a callback to invoke when a packet transmission was failed. More... | |
typedef Callback< void, const WifiMacHeader & > | TxOk |
typedef for a callback to invoke when a packet transmission was completed successfully. More... | |
Public Member Functions | |
EdcaTxopN () | |
virtual | ~EdcaTxopN () |
int64_t | AssignStreams (int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this model. More... | |
void | BaTxFailed (const WifiMacHeader &hdr) |
The packet we sent was successfully received by the receiver. More... | |
void | BaTxOk (const WifiMacHeader &hdr) |
The packet we sent was successfully received by the receiver. More... | |
void | Cancel (void) |
Cancel the transmission. More... | |
void | CompleteAmpduTransfer (Mac48Address recipient, uint8_t tid) |
void | CompleteConfig (void) |
Complete block ACK configuration. More... | |
void | CompleteMpduTx (Ptr< const Packet > packet, WifiMacHeader hdr, Time tstamp) |
void | DoDispose () |
Destructor implementation. More... | |
void | EndTxNoAck (void) |
Event handler when a transmission that does not require an ACK has completed. More... | |
virtual uint32_t | GetAifsn (void) const |
Return the number of slots that make up an AIFS. More... | |
bool | GetAmpduExist (Mac48Address dest) const |
bool | GetBaAgreementExists (Mac48Address address, uint8_t tid) const |
uint8_t | GetBlockAckThreshold (void) const |
Return the current threshold for block ACK mechanism. More... | |
Ptr< WifiMacQueue > | GetEdcaQueue () const |
Return the packet queue associated with this EdcaTxopN. More... | |
uint32_t | GetFragmentOffset (void) |
Calculate the offset for the current fragment. More... | |
Ptr< Packet > | GetFragmentPacket (WifiMacHeader *hdr) |
Get the next fragment from the packet with appropriate Wifi header for the fragment. More... | |
uint32_t | GetFragmentSize (void) |
Calculate the size of the current fragment. More... | |
virtual uint32_t | GetMaxCw (void) const |
Return the maximum contention window size. More... | |
virtual uint32_t | GetMinCw (void) const |
Return the minimum contention window size. More... | |
Ptr< MpduAggregator > | GetMpduAggregator (void) const |
Ptr< MsduAggregator > | GetMsduAggregator (void) const |
uint32_t | GetNextFragmentSize (void) |
Calculate the size of the next fragment. More... | |
uint16_t | GetNextSequenceNumberfor (WifiMacHeader *hdr) |
Return the next sequence number for the given header. More... | |
uint32_t | GetNOutstandingPacketsInBa (Mac48Address address, uint8_t tid) |
uint32_t | GetNRetryNeededPackets (Mac48Address recipient, uint8_t tid) const |
virtual Time | GetTxopLimit (void) const |
Return the TXOP limit. More... | |
enum TypeOfStation | GetTypeOfStation (void) const |
Return type of station. More... | |
void | GotAck (double snr, WifiMode txMode) |
Event handler when an ACK is received. More... | |
void | GotAddBaResponse (const MgtAddBaResponseHeader *respHdr, Mac48Address recipient) |
void | GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address recipient, double rxSnr, WifiMode txMode, double dataSnr) |
Event handler when a Block ACK is received. More... | |
void | GotCts (double snr, WifiMode txMode) |
Event handler when a CTS is received. More... | |
void | GotDelBaFrame (const MgtDelBaHeader *delBaHdr, Mac48Address recipient) |
bool | IsLastFragment (void) const |
Check if the current fragment is the last fragment. More... | |
Ptr< MacLow > | Low (void) |
Return the MacLow associated with this EdcaTxopN. More... | |
void | MissedAck (void) |
Event handler when an ACK is missed. More... | |
void | MissedBlockAck (uint32_t nMpdus) |
Event handler when a Block ACK timeout has occurred. More... | |
void | MissedCts (void) |
Event handler when a CTS timeout has occurred. More... | |
bool | NeedBarRetransmission (void) |
Check if Block ACK Request should be re-transmitted. More... | |
bool | NeedDataRetransmission (Ptr< const Packet > packet, const WifiMacHeader &hdr) |
Check if DATA should be re-transmitted if ACK was missed. More... | |
bool | NeedFragmentation (void) const |
Check if the current packet should be fragmented. More... | |
bool | NeedRtsRetransmission (Ptr< const Packet > packet, const WifiMacHeader &hdr) |
Check if RTS should be re-transmitted if CTS was missed. More... | |
bool | NeedsAccess (void) const |
Check if the EDCAF requires access. More... | |
void | NextFragment (void) |
Continue to the next fragment. More... | |
void | NotifyAccessGranted (void) |
Notify the EDCAF that access has been granted. More... | |
void | NotifyChannelSwitching (void) |
When a channel switching occurs, enqueued packets are removed. More... | |
void | NotifyCollision (void) |
Notify the EDCAF that collision has occurred. More... | |
void | NotifyInternalCollision (void) |
Notify the EDCAF that internal collision has occurred. More... | |
void | NotifySleep (void) |
When sleep operation occurs, re-insert pending packet into front of the queue. More... | |
void | NotifyWakeUp (void) |
When wake up operation occurs, restart channel access. More... | |
Ptr< const Packet > | PeekNextRetransmitPacket (WifiMacHeader &header, Mac48Address recipient, uint8_t tid, Time *timestamp) |
uint16_t | PeekNextSequenceNumberfor (WifiMacHeader *hdr) |
Return the next sequence number for the Traffic ID and destination, but do not pick it (i.e. More... | |
void | PushFront (Ptr< const Packet > packet, const WifiMacHeader &hdr) |
void | Queue (Ptr< const Packet > packet, const WifiMacHeader &hdr) |
void | RemoveRetransmitPacket (uint8_t tid, Mac48Address recipient, uint16_t seqnumber) |
Remove a packet after you peek in the retransmit queue and get it. More... | |
void | RestartAccessIfNeeded (void) |
Restart access request if needed. More... | |
void | SendDelbaFrame (Mac48Address addr, uint8_t tid, bool byOriginator) |
void | SetAccessCategory (enum AcIndex ac) |
Set the access category of this EDCAF. More... | |
virtual void | SetAifsn (uint32_t aifsn) |
void | SetAmpduExist (Mac48Address dest, bool enableAmpdu) |
void | SetBlockAckInactivityTimeout (uint16_t timeout) |
void | SetBlockAckThreshold (uint8_t threshold) |
Set threshold for block ACK mechanism. More... | |
void | SetLow (Ptr< MacLow > low) |
Set MacLow associated with this EdcaTxopN. More... | |
void | SetManager (DcfManager *manager) |
Set DcfManager this EdcaTxopN is associated to. More... | |
virtual void | SetMaxCw (uint32_t maxCw) |
Set the maximum contention window size. More... | |
virtual void | SetMinCw (uint32_t minCw) |
Set the minimum contention window size. More... | |
void | SetMpduAggregator (Ptr< MpduAggregator > aggr) |
void | SetMsduAggregator (Ptr< MsduAggregator > aggr) |
void | SetTxFailedCallback (TxFailed callback) |
void | SetTxMiddle (MacTxMiddle *txMiddle) |
void | SetTxOkCallback (TxOk callback) |
virtual void | SetTxopLimit (Time txopLimit) |
void | SetTypeOfStation (enum TypeOfStation type) |
Set type of station with the given type. More... | |
void | SetWifiRemoteStationManager (Ptr< WifiRemoteStationManager > remoteManager) |
Set WifiRemoteStationsManager this EdcaTxopN is associated to. More... | |
void | StartAccessIfNeeded (void) |
Request access from DCF manager if needed. More... | |
void | StartNext (void) |
Start transmission for the next packet if allowed by the TxopLimit. More... | |
void | StartNextFragment (void) |
Start transmission for the next fragment. More... | |
![]() | |
Object () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Implement the GetInstanceTypeId method defined in ObjectBase. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized (void) const |
Check if the object has been initialized. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Public Attributes | |
std::map< Mac48Address, bool > | m_aMpduEnabled |
Private Member Functions | |
EdcaTxopN (const EdcaTxopN &) | |
void | CompleteTx (void) |
For now is typically invoked to complete transmission of a packets sent with ack policy Block Ack: the packet is buffered and dcf is reset. More... | |
void | DoInitialize () |
Initialize() implementation. More... | |
uint8_t | GetCurrentTid () const |
Get Traffic ID of the current packet. More... | |
Time | GetTxopRemaining (void) |
bool | HasTxop (void) |
Mac48Address | MapDestAddressForAggregation (const WifiMacHeader &hdr) |
Mac48Address | MapSrcAddressForAggregation (const WifiMacHeader &hdr) |
This functions are used only to correctly set addresses in a-msdu subframe. More... | |
EdcaTxopN & | operator= (const EdcaTxopN &) |
void | SendAddBaRequest (Mac48Address recipient, uint8_t tid, uint16_t startSeq, uint16_t timeout, bool immediateBAck) |
Sends an ADDBA Request to establish a block ack agreement with sta addressed by recipient for tid tid. More... | |
void | SendBlockAckRequest (const struct Bar &bar) |
After that all packets, for which a block ack agreement was established, have been transmitted, we have to send a block ack request. More... | |
bool | SetupBlockAckIfNeeded () |
If number of packets in the queue reaches m_blockAckThreshold value, an ADDBA Request frame is sent to destination in order to setup a block ack. More... | |
void | VerifyBlockAck (void) |
Verifies if dequeued packet has to be transmitted with ack policy Block Ack. More... | |
Private Attributes | |
AcIndex | m_ac |
TracedValue< uint32_t > | m_backoffTrace |
BlockAckManager * | m_baManager |
uint16_t | m_blockAckInactivityTimeout |
AggregationCapableTransmissionListener * | m_blockAckListener |
uint8_t | m_blockAckThreshold |
enum BlockAckType | m_blockAckType |
struct Bar | m_currentBar |
WifiMacHeader | m_currentHdr |
Ptr< const Packet > | m_currentPacket |
Time | m_currentPacketTimestamp |
TracedValue< uint32_t > | m_cwTrace |
Dcf * | m_dcf |
uint8_t | m_fragmentNumber |
bool | m_isAccessRequestedForRts |
Ptr< MacLow > | m_low |
DcfManager * | m_manager |
Ptr< MpduAggregator > | m_mpduAggregator |
Ptr< MsduAggregator > | m_msduAggregator |
QosBlockedDestinations * | m_qosBlockedDestinations |
Ptr< WifiMacQueue > | m_queue |
RandomStream * | m_rng |
Time | m_startTxop |
Ptr< WifiRemoteStationManager > | m_stationManager |
TransmissionListener * | m_transmissionListener |
TxFailed | m_txFailedCallback |
MacTxMiddle * | m_txMiddle |
TxOk | m_txOkCallback |
TypeOfStation | m_typeOfStation |
Friends | |
class | ::AmpduAggregationTest |
class | Dcf |
class | TransmissionListener |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
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:
Size of this type is 392 bytes (on a 64-bit architecture).
Definition at line 86 of file edca-txop-n.h.
typedef Callback<void, const WifiMacHeader&> ns3::EdcaTxopN::TxFailed |
typedef for a callback to invoke when a packet transmission was failed.
Definition at line 101 of file edca-txop-n.h.
typedef Callback<void, const WifiMacHeader&> ns3::EdcaTxopN::TxOk |
typedef for a callback to invoke when a packet transmission was completed successfully.
Definition at line 96 of file edca-txop-n.h.
ns3::EdcaTxopN::EdcaTxopN | ( | ) |
Definition at line 260 of file edca-txop-n.cc.
References BaTxFailed(), BaTxOk(), ns3::QosBlockedDestinations::Block(), Dcf, 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::SetTxFailedCallback(), ns3::BlockAckManager::SetTxOkCallback(), ns3::BlockAckManager::SetUnblockDestinationCallback(), TransmissionListener, and ns3::QosBlockedDestinations::Unblock().
|
virtual |
Definition at line 287 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 1824 of file edca-txop-n.cc.
References ns3::RandomStream::AssignStreams(), m_rng, and NS_LOG_FUNCTION.
Referenced by ns3::MeshHelper::AssignStreams(), ns3::WaveHelper::AssignStreams(), ns3::WifiHelper::AssignStreams(), and AssignWifiRandomStreams().
void ns3::EdcaTxopN::BaTxFailed | ( | const WifiMacHeader & | hdr | ) |
The packet we sent was successfully received by the receiver.
hdr | the header of the packet that we failed to sent |
Definition at line 1853 of file edca-txop-n.cc.
References ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_currentHdr, m_txFailedCallback, and NS_LOG_FUNCTION.
Referenced by EdcaTxopN().
void ns3::EdcaTxopN::BaTxOk | ( | const WifiMacHeader & | hdr | ) |
The packet we sent was successfully received by the receiver.
hdr | the header of the packet that we successfully sent |
Definition at line 1843 of file edca-txop-n.cc.
References ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_currentHdr, m_txOkCallback, and NS_LOG_FUNCTION.
Referenced by EdcaTxopN().
void ns3::EdcaTxopN::Cancel | ( | void | ) |
Cancel the transmission.
Definition at line 1361 of file edca-txop-n.cc.
References NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ns3::EdcaTxopN::TransmissionListener::Cancel().
void ns3::EdcaTxopN::CompleteAmpduTransfer | ( | Mac48Address | recipient, |
uint8_t | tid | ||
) |
recipient | address of peer station involved in block ack mechanism. |
tid | Ttraffic ID of transmitted packet. |
This function resets the status of OriginatorBlockAckAgreement after the transfer of an A-MPDU with ImmediateBlockAck policy (i.e. no BAR is scheduled)
Definition at line 335 of file edca-txop-n.cc.
References ns3::BlockAckManager::CompleteAmpduExchange(), and m_baManager.
Referenced by ns3::EdcaTxopN::AggregationCapableTransmissionListener::CompleteTransfer().
void ns3::EdcaTxopN::CompleteConfig | ( | void | ) |
Complete block ACK configuration.
Definition at line 1694 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().
Referenced by AmpduAggregationTest::DoRun(), and TwoLevelAggregationTest::DoRun().
void ns3::EdcaTxopN::CompleteMpduTx | ( | Ptr< const Packet > | packet, |
WifiMacHeader | hdr, | ||
Time | tstamp | ||
) |
Definition at line 1621 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::MacTxMiddle::GetNextSeqNumberByTidAndAddress(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::IsQosData(), m_baManager, m_txMiddle, ns3::WifiMacHeader::NORMAL_ACK, ns3::BlockAckManager::NotifyMpduTransmission(), NS_ASSERT, and ns3::BlockAckManager::StorePacket().
Referenced by ns3::EdcaTxopN::AggregationCapableTransmissionListener::CompleteMpduTx().
|
private |
For now is typically invoked to complete transmission of a packets sent with ack policy Block Ack: the packet is buffered and dcf is reset.
Definition at line 1605 of file edca-txop-n.cc.
References ns3::WifiMacHeader::BLOCK_ACK, 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 |
Destructor implementation.
This method is called by 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 293 of file edca-txop-n.cc.
References m_baManager, m_blockAckListener, m_dcf, m_low, m_mpduAggregator, m_msduAggregator, m_qosBlockedDestinations, m_queue, m_rng, m_stationManager, m_transmissionListener, m_txMiddle, and NS_LOG_FUNCTION.
|
privatevirtual |
Initialize() implementation.
This method is called only once by Initialize(). If the user calls Initialize() multiple times, DoInitialize() is called only the first time.
Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject() and AggregateObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 1832 of file edca-txop-n.cc.
References ns3::Object::DoInitialize(), ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), m_backoffTrace, m_cwTrace, m_dcf, m_rng, NS_LOG_FUNCTION, ns3::DcfState::ResetCw(), and ns3::DcfState::StartBackoffNow().
void ns3::EdcaTxopN::EndTxNoAck | ( | void | ) |
Event handler when a transmission that does not require an ACK has completed.
Definition at line 1368 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), m_backoffTrace, m_currentPacket, m_cwTrace, 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 |
Return the number of slots that make up an AIFS.
Implements ns3::Dcf.
Definition at line 434 of file edca-txop-n.cc.
References ns3::DcfState::GetAifsn(), m_dcf, and NS_LOG_FUNCTION.
Referenced by ns3::ApWifiMac::GetEdcaParameterSet().
bool ns3::EdcaTxopN::GetAmpduExist | ( | Mac48Address | dest | ) | const |
Definition at line 1581 of file edca-txop-n.cc.
References m_aMpduEnabled, and NS_LOG_FUNCTION.
Referenced by MissedAck(), MissedBlockAck(), MissedCts(), NeedFragmentation(), and NotifyAccessGranted().
bool ns3::EdcaTxopN::GetBaAgreementExists | ( | Mac48Address | address, |
uint8_t | tid | ||
) | const |
recipient | address of the peer station |
tid | traffic ID. |
Checks if a block ack agreement exists with station addressed by recipient for tid tid.
Definition at line 317 of file edca-txop-n.cc.
References ns3::BlockAckManager::ExistsAgreement(), and m_baManager.
Referenced by ns3::EdcaTxopN::AggregationCapableTransmissionListener::GetBlockAckAgreementExists(), MissedAck(), MissedCts(), and NeedFragmentation().
uint8_t ns3::EdcaTxopN::GetBlockAckThreshold | ( | void | ) | const |
Return the current threshold for block ACK mechanism.
Definition at line 1718 of file edca-txop-n.cc.
References m_blockAckThreshold, and NS_LOG_FUNCTION.
|
private |
Get Traffic ID of the current packet.
Definition at line 747 of file edca-txop-n.cc.
References ns3::WifiActionHeader::BLOCK_ACK, ns3::WifiActionHeader::BLOCK_ACK_ADDBA_REQUEST, ns3::WifiActionHeader::BLOCK_ACK_ADDBA_RESPONSE, ns3::WifiActionHeader::BLOCK_ACK_DELBA, ns3::WifiActionHeader::ActionValue::blockAck, ns3::Packet::Copy(), ns3::WifiActionHeader::GetAction(), ns3::WifiActionHeader::GetCategory(), ns3::WifiMacHeader::GetQosTid(), ns3::MgtAddBaResponseHeader::GetTid(), ns3::MgtDelBaHeader::GetTid(), ns3::CtrlBAckRequestHeader::GetTidInfo(), ns3::CtrlBAckResponseHeader::GetTidInfo(), ns3::WifiMacHeader::IsAction(), ns3::WifiMacHeader::IsBlockAck(), ns3::WifiMacHeader::IsBlockAckReq(), ns3::WifiMacHeader::IsMgt(), ns3::WifiMacHeader::IsQosData(), m_currentHdr, m_currentPacket, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::Packet::PeekHeader(), and ns3::Packet::RemoveHeader().
Referenced by MissedAck(), MissedBlockAck(), MissedCts(), and NeedFragmentation().
Ptr< WifiMacQueue > ns3::EdcaTxopN::GetEdcaQueue | ( | ) | const |
Return the packet queue associated with this EdcaTxopN.
Definition at line 385 of file edca-txop-n.cc.
References m_queue, and NS_LOG_FUNCTION.
Referenced by AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), ns3::EdcaTxopN::TransmissionListener::GetQueue(), ns3::EdcaTxopN::AggregationCapableTransmissionListener::GetQueue(), and GetTypeId().
uint32_t ns3::EdcaTxopN::GetFragmentOffset | ( | void | ) |
Calculate the offset for the current fragment.
Definition at line 1416 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 | ) |
Get the next fragment from the packet with appropriate Wifi header for the fragment.
hdr |
Definition at line 1433 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 StartNextFragment().
uint32_t ns3::EdcaTxopN::GetFragmentSize | ( | void | ) |
Calculate the size of the current fragment.
Definition at line 1400 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 |
Return the maximum contention window size.
Implements ns3::Dcf.
Definition at line 427 of file edca-txop-n.cc.
References ns3::DcfState::GetCwMax(), m_dcf, and NS_LOG_FUNCTION.
Referenced by ns3::ApWifiMac::GetEdcaParameterSet().
|
virtual |
Return the minimum contention window size.
Implements ns3::Dcf.
Definition at line 420 of file edca-txop-n.cc.
References ns3::DcfState::GetCwMin(), m_dcf, and NS_LOG_FUNCTION.
Referenced by ns3::ApWifiMac::GetEdcaParameterSet().
Ptr< MpduAggregator > ns3::EdcaTxopN::GetMpduAggregator | ( | void | ) | const |
Definition at line 1106 of file edca-txop-n.cc.
References m_mpduAggregator.
Referenced by ns3::RegularWifiMac::ConfigureAggregation(), ns3::EdcaTxopN::AggregationCapableTransmissionListener::GetMpduAggregator(), NeedFragmentation(), and VerifyBlockAck().
Ptr< MsduAggregator > ns3::EdcaTxopN::GetMsduAggregator | ( | void | ) | const |
Definition at line 1100 of file edca-txop-n.cc.
References m_msduAggregator.
Referenced by ns3::RegularWifiMac::ConfigureAggregation(), and ns3::EdcaTxopN::AggregationCapableTransmissionListener::GetMsduAggregator().
uint32_t ns3::EdcaTxopN::GetNextFragmentSize | ( | void | ) |
Calculate the size of the next fragment.
Definition at line 1408 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 StartNextFragment().
uint16_t ns3::EdcaTxopN::GetNextSequenceNumberfor | ( | WifiMacHeader * | hdr | ) |
Return the next sequence number for the given header.
hdr | Wi-Fi header |
Definition at line 474 of file edca-txop-n.cc.
References ns3::MacTxMiddle::GetNextSequenceNumberfor(), and m_txMiddle.
Referenced by ns3::EdcaTxopN::AggregationCapableTransmissionListener::GetNextSequenceNumberfor().
uint32_t ns3::EdcaTxopN::GetNOutstandingPacketsInBa | ( | Mac48Address | address, |
uint8_t | tid | ||
) |
recipient | address of peer station involved in block ack mechanism. |
tid | traffic ID. |
Returns number of packets buffered for a specified agreement.
Definition at line 323 of file edca-txop-n.cc.
References ns3::BlockAckManager::GetNBufferedPackets(), and m_baManager.
Referenced by ns3::EdcaTxopN::AggregationCapableTransmissionListener::GetNOutstandingPackets().
uint32_t ns3::EdcaTxopN::GetNRetryNeededPackets | ( | Mac48Address | recipient, |
uint8_t | tid | ||
) | const |
recipient | address of peer station involved in block ack mechanism. |
tid | traffic ID. |
Returns number of packets for a specific agreement that need retransmission.
Definition at line 329 of file edca-txop-n.cc.
References ns3::BlockAckManager::GetNRetryNeededPackets(), and m_baManager.
Referenced by ns3::EdcaTxopN::AggregationCapableTransmissionListener::GetNRetryNeededPackets().
|
virtual |
Return the TXOP limit.
Implements ns3::Dcf.
Definition at line 441 of file edca-txop-n.cc.
References ns3::DcfState::GetTxopLimit(), m_dcf, and NS_LOG_FUNCTION.
Referenced by ns3::ApWifiMac::GetEdcaParameterSet(), and GetTxopRemaining().
|
private |
Definition at line 1303 of file edca-txop-n.cc.
References GetTxopLimit(), m_startTxop, ns3::MicroSeconds(), ns3::Simulator::Now(), and NS_LOG_FUNCTION.
Referenced by HasTxop(), and StartNext().
|
static |
Definition at line 237 of file edca-txop-n.cc.
References GetEdcaQueue(), m_backoffTrace, m_cwTrace, ns3::MakePointerAccessor(), ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
enum TypeOfStation ns3::EdcaTxopN::GetTypeOfStation | ( | void | ) | const |
Return type of station.
Definition at line 378 of file edca-txop-n.cc.
References m_typeOfStation, and NS_LOG_FUNCTION.
void ns3::EdcaTxopN::GotAck | ( | double | snr, |
WifiMode | txMode | ||
) |
Event handler when an ACK is received.
snr | |
txMode |
Definition at line 910 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(), HasTxop(), ns3::WifiMacHeader::IsAction(), ns3::MgtDelBaHeader::IsByOriginator(), IsLastFragment(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::WifiMacHeader::IsQosAmsdu(), m_backoffTrace, m_baManager, m_currentHdr, m_currentPacket, m_cwTrace, 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 1517 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, | ||
double | rxSnr, | ||
WifiMode | txMode, | ||
double | dataSnr | ||
) |
Event handler when a Block ACK is received.
blockAck | |
recipient | |
rxSnr | SNR of the block ack itself |
txMode | |
dataSnr | reported data SNR from the peer |
Definition at line 1547 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), ns3::WifiMode::GetUniqueName(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_backoffTrace, m_baManager, m_currentHdr, m_currentPacket, m_cwTrace, m_dcf, m_rng, m_txOkCallback, 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 | ||
) |
Event handler when a CTS is received.
snr | |
txMode |
Definition at line 740 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 1539 of file edca-txop-n.cc.
References ns3::MgtDelBaHeader::GetTid(), m_baManager, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::BlockAckManager::TearDownBlockAck().
|
private |
Definition at line 1316 of file edca-txop-n.cc.
References ns3::WifiMacHeader::ADDR1, ns3::MacLowTransmissionParameters::DisableAck(), ns3::MacLowTransmissionParameters::DisableOverrideDurationId(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLowTransmissionParameters::EnableRts(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::WifiMacHeader::GetQosTid(), GetTxopRemaining(), ns3::WifiMacHeader::IsQosBlockAck(), ns3::WifiMacHeader::IsQosData(), Low(), m_currentHdr, m_queue, m_stationManager, ns3::WifiRemoteStationManager::NeedRts(), and NS_LOG_FUNCTION.
Referenced by GotAck().
bool ns3::EdcaTxopN::IsLastFragment | ( | void | ) | const |
Check if the current fragment is the last fragment.
Definition at line 1425 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 StartNextFragment().
Return the MacLow associated with this EdcaTxopN.
Definition at line 455 of file edca-txop-n.cc.
References m_low.
Referenced by HasTxop(), StartNext(), and StartNextFragment().
|
private |
Definition at line 1477 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 ns3::EdcaTxopN::AggregationCapableTransmissionListener::GetDestAddressForAggregation(), and 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
hdr |
Definition at line 1461 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 ns3::EdcaTxopN::AggregationCapableTransmissionListener::GetSrcAddressForAggregation(), and NotifyAccessGranted().
void ns3::EdcaTxopN::MissedAck | ( | void | ) |
Event handler when an ACK is missed.
Definition at line 960 of file edca-txop-n.cc.
References ns3::Packet::AddHeader(), ns3::COMPRESSED_BLOCK_ACK, ns3::WifiMacHeader::GetAddr1(), ns3::MacLow::GetAddress(), GetAmpduExist(), GetBaAgreementExists(), ns3::MacLow::GetBssid(), GetCurrentTid(), ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::WifiMacHeader::IsQosData(), m_backoffTrace, m_currentBar, m_currentHdr, m_currentPacket, m_cwTrace, m_dcf, m_low, m_rng, m_stationManager, m_txFailedCallback, m_txMiddle, ns3::CtrlBAckRequestHeader::MustSendHtImmediateAck(), NeedDataRetransmission(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::MacTxMiddle::PeekNextSequenceNumberfor(), ns3::WifiRemoteStationManager::ReportFinalDataFailed(), ns3::DcfState::ResetCw(), RestartAccessIfNeeded(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::CtrlBAckRequestHeader::SetHtImmediateAck(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetRetry(), ns3::CtrlBAckRequestHeader::SetStartingSequence(), ns3::CtrlBAckRequestHeader::SetTidInfo(), ns3::CtrlBAckRequestHeader::SetType(), ns3::WifiMacHeader::SetType(), ns3::DcfState::StartBackoffNow(), ns3::DcfState::UpdateFailedCw(), and ns3::WIFI_MAC_CTL_BACKREQ.
Referenced by AmpduAggregationTest::DoRun(), and ns3::EdcaTxopN::TransmissionListener::MissedAck().
void ns3::EdcaTxopN::MissedBlockAck | ( | uint32_t | nMpdus | ) |
Event handler when a Block ACK timeout has occurred.
Definition at line 1025 of file edca-txop-n.cc.
References ns3::Packet::AddHeader(), ns3::COMPRESSED_BLOCK_ACK, ns3::WifiMacHeader::GetAddr1(), ns3::MacLow::GetAddress(), GetAmpduExist(), ns3::MacLow::GetBssid(), GetCurrentTid(), ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), ns3::WifiMacHeader::GetSequenceNumber(), ns3::CtrlBAckRequestHeader::GetStartingSequence(), ns3::WifiMacHeader::IsBlockAck(), ns3::WifiMacHeader::IsBlockAckReq(), ns3::WifiMacHeader::IsQosData(), m_backoffTrace, m_currentBar, m_currentHdr, m_currentPacket, m_cwTrace, m_dcf, m_low, m_rng, m_stationManager, ns3::CtrlBAckRequestHeader::MustSendHtImmediateAck(), NeedBarRetransmission(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Packet::PeekHeader(), ns3::WifiRemoteStationManager::ReportAmpduTxStatus(), ns3::DcfState::ResetCw(), RestartAccessIfNeeded(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::CtrlBAckRequestHeader::SetHtImmediateAck(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetRetry(), ns3::CtrlBAckRequestHeader::SetStartingSequence(), ns3::CtrlBAckRequestHeader::SetTidInfo(), ns3::CtrlBAckRequestHeader::SetType(), ns3::WifiMacHeader::SetType(), ns3::DcfState::StartBackoffNow(), ns3::DcfState::UpdateFailedCw(), and ns3::WIFI_MAC_CTL_BACKREQ.
Referenced by ns3::EdcaTxopN::TransmissionListener::MissedBlockAck().
void ns3::EdcaTxopN::MissedCts | ( | void | ) |
Event handler when a CTS timeout has occurred.
Definition at line 812 of file edca-txop-n.cc.
References ns3::Packet::AddHeader(), ns3::COMPRESSED_BLOCK_ACK, ns3::MacLow::FlushAggregateQueue(), ns3::WifiMacHeader::GetAddr1(), ns3::MacLow::GetAddress(), GetAmpduExist(), GetBaAgreementExists(), ns3::MacLow::GetBssid(), GetCurrentTid(), ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::WifiMacHeader::IsQosData(), m_backoffTrace, m_currentBar, m_currentHdr, m_currentPacket, m_cwTrace, m_dcf, m_low, m_rng, m_stationManager, m_txFailedCallback, m_txMiddle, ns3::CtrlBAckRequestHeader::MustSendHtImmediateAck(), NeedRtsRetransmission(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::MacTxMiddle::PeekNextSequenceNumberfor(), ns3::WifiRemoteStationManager::ReportFinalRtsFailed(), ns3::DcfState::ResetCw(), RestartAccessIfNeeded(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::CtrlBAckRequestHeader::SetHtImmediateAck(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::CtrlBAckRequestHeader::SetStartingSequence(), ns3::CtrlBAckRequestHeader::SetTidInfo(), ns3::CtrlBAckRequestHeader::SetType(), ns3::WifiMacHeader::SetType(), ns3::DcfState::StartBackoffNow(), ns3::DcfState::UpdateFailedCw(), and ns3::WIFI_MAC_CTL_BACKREQ.
Referenced by ns3::EdcaTxopN::TransmissionListener::MissedCts().
bool ns3::EdcaTxopN::NeedBarRetransmission | ( | void | ) |
Check if Block ACK Request should be re-transmitted.
Definition at line 1196 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::GetSequenceNumber(), ns3::CtrlBAckRequestHeader::GetStartingSequence(), ns3::CtrlBAckRequestHeader::GetTidInfo(), ns3::CtrlBAckResponseHeader::GetTidInfo(), ns3::WifiMacHeader::IsBlockAck(), ns3::WifiMacHeader::IsBlockAckReq(), ns3::WifiMacHeader::IsQosData(), m_baManager, m_currentHdr, m_currentPacket, ns3::BlockAckManager::NeedBarRetransmission(), and ns3::Packet::PeekHeader().
Referenced by MissedBlockAck().
bool ns3::EdcaTxopN::NeedDataRetransmission | ( | Ptr< const Packet > | packet, |
const WifiMacHeader & | hdr | ||
) |
Check if DATA should be re-transmitted if ACK was missed.
packet | current packet being transmitted |
hdr | current header being transmitted |
Definition at line 1189 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), m_stationManager, ns3::WifiRemoteStationManager::NeedDataRetransmission(), and NS_LOG_FUNCTION.
Referenced by MissedAck(), and NotifyInternalCollision().
bool ns3::EdcaTxopN::NeedFragmentation | ( | void | ) | const |
Check if the current packet should be fragmented.
Definition at line 1381 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), GetAmpduExist(), GetBaAgreementExists(), GetCurrentTid(), ns3::MpduAggregator::GetMaxAmpduSize(), GetMpduAggregator(), ns3::Packet::GetSize(), ns3::WifiRemoteStationManager::HasHtSupported(), ns3::WifiRemoteStationManager::HasVhtSupported(), ns3::WifiMacHeader::IsQosData(), m_currentHdr, m_currentPacket, m_stationManager, ns3::WifiRemoteStationManager::NeedFragmentation(), and NS_LOG_FUNCTION.
Referenced by GotAck(), and NotifyAccessGranted().
bool ns3::EdcaTxopN::NeedRtsRetransmission | ( | Ptr< const Packet > | packet, |
const WifiMacHeader & | hdr | ||
) |
Check if RTS should be re-transmitted if CTS was missed.
packet | current packet being transmitted |
hdr | current header being transmitted |
Definition at line 1182 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), m_stationManager, ns3::WifiRemoteStationManager::NeedRtsRetransmission(), and NS_LOG_FUNCTION.
Referenced by MissedCts(), and NotifyInternalCollision().
bool ns3::EdcaTxopN::NeedsAccess | ( | void | ) | const |
Check if the EDCAF requires access.
Definition at line 468 of file edca-txop-n.cc.
References ns3::BlockAckManager::HasPackets(), m_baManager, m_currentPacket, m_queue, and NS_LOG_FUNCTION.
void ns3::EdcaTxopN::NextFragment | ( | void | ) |
Continue to the next fragment.
This method simply increments the internal variable that keep track of the current fragment number.
Definition at line 1223 of file edca-txop-n.cc.
References m_fragmentNumber, and NS_LOG_FUNCTION.
Referenced by StartNextFragment().
void ns3::EdcaTxopN::NotifyAccessGranted | ( | void | ) |
Notify the EDCAF that access has been granted.
Definition at line 497 of file edca-txop-n.cc.
References ns3::WifiMacHeader::ADDR1, ns3::MsduAggregator::Aggregate(), ns3::BASIC_BLOCK_ACK, CompleteTx(), ns3::MacLowTransmissionParameters::DisableAck(), ns3::MacLowTransmissionParameters::DisableNextData(), ns3::MacLowTransmissionParameters::DisableOverrideDurationId(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLowTransmissionParameters::EnableNextData(), ns3::BlockAckManager::ExistsAgreement(), ns3::WifiMacHeader::GetAddr1(), GetAmpduExist(), 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::Mac48Address::IsGroup(), IsLastFragment(), ns3::WifiMacHeader::IsQosAmsdu(), ns3::WifiMacHeader::IsQosBlockAck(), ns3::WifiMacHeader::IsQosData(), ns3::WifiMacHeader::IsRetry(), m_baManager, m_blockAckThreshold, m_blockAckType, m_currentBar, m_currentHdr, m_currentPacket, m_currentPacketTimestamp, m_fragmentNumber, m_isAccessRequestedForRts, m_low, m_msduAggregator, m_qosBlockedDestinations, m_queue, m_startTxop, m_stationManager, m_transmissionListener, m_txMiddle, MapDestAddressForAggregation(), MapSrcAddressForAggregation(), NeedFragmentation(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, SendBlockAckRequest(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetFragmentNumber(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetQosAmsdu(), ns3::WifiMacHeader::SetSequenceNumber(), SetupBlockAckIfNeeded(), ns3::MacLow::StartTransmission(), ns3::WifiRemoteStationManager::UpdateFragmentationThreshold(), 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 875 of file edca-txop-n.cc.
References m_currentPacket, m_queue, and NS_LOG_FUNCTION.
Referenced by ns3::OcbWifiMac::CancleTx(), and ns3::EdcaTxopN::Dcf::DoNotifyChannelSwitching().
void ns3::EdcaTxopN::NotifyCollision | ( | void | ) |
Notify the EDCAF that collision has occurred.
Definition at line 731 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), m_backoffTrace, m_dcf, m_rng, NS_LOG_FUNCTION, RestartAccessIfNeeded(), and ns3::DcfState::StartBackoffNow().
Referenced by ns3::EdcaTxopN::Dcf::DoNotifyCollision().
void ns3::EdcaTxopN::NotifyInternalCollision | ( | void | ) |
Notify the EDCAF that internal collision has occurred.
Definition at line 655 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::Mac48Address::GetBroadcast(), ns3::DcfState::GetCw(), ns3::RandomStream::GetNext(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_backoffTrace, m_currentHdr, m_currentPacket, m_dcf, m_isAccessRequestedForRts, m_queue, m_rng, m_stationManager, m_txFailedCallback, NeedDataRetransmission(), NeedRtsRetransmission(), NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::ReportDataFailed(), ns3::WifiRemoteStationManager::ReportFinalDataFailed(), ns3::WifiRemoteStationManager::ReportFinalRtsFailed(), ns3::WifiRemoteStationManager::ReportRtsFailed(), ns3::DcfState::ResetCw(), RestartAccessIfNeeded(), ns3::DcfState::StartBackoffNow(), and ns3::DcfState::UpdateFailedCw().
Referenced by ns3::EdcaTxopN::Dcf::DoNotifyInternalCollision().
void ns3::EdcaTxopN::NotifySleep | ( | void | ) |
When sleep operation occurs, re-insert pending packet into front of the queue.
Definition at line 883 of file edca-txop-n.cc.
References m_currentHdr, m_currentPacket, m_queue, and NS_LOG_FUNCTION.
Referenced by ns3::EdcaTxopN::Dcf::DoNotifySleep().
void ns3::EdcaTxopN::NotifyWakeUp | ( | void | ) |
When wake up operation occurs, restart channel access.
Definition at line 894 of file edca-txop-n.cc.
References NS_LOG_FUNCTION, and RestartAccessIfNeeded().
Referenced by ns3::EdcaTxopN::Dcf::DoNotifyWakeUp().
Ptr< const Packet > ns3::EdcaTxopN::PeekNextRetransmitPacket | ( | WifiMacHeader & | header, |
Mac48Address | recipient, | ||
uint8_t | tid, | ||
Time * | timestamp | ||
) |
Definition at line 485 of file edca-txop-n.cc.
References m_baManager, and ns3::BlockAckManager::PeekNextPacketByTidAndAddress().
Referenced by ns3::EdcaTxopN::AggregationCapableTransmissionListener::PeekNextPacketInBaQueue().
uint16_t ns3::EdcaTxopN::PeekNextSequenceNumberfor | ( | WifiMacHeader * | hdr | ) |
Return the next sequence number for the Traffic ID and destination, but do not pick it (i.e.
the current sequence number remains unchanged).
hdr | Wi-Fi header |
Definition at line 479 of file edca-txop-n.cc.
References m_txMiddle, and ns3::MacTxMiddle::PeekNextSequenceNumberfor().
Referenced by ns3::EdcaTxopN::AggregationCapableTransmissionListener::PeekNextSequenceNumberfor().
void ns3::EdcaTxopN::PushFront | ( | Ptr< const Packet > | packet, |
const WifiMacHeader & | hdr | ||
) |
packet | packet to send |
hdr | header of packet to send. |
Store the packet in the front of the internal queue until it can be sent safely.
Definition at line 1507 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), m_queue, m_stationManager, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::PrepareForQueue(), and StartAccessIfNeeded().
Referenced by SendDelbaFrame().
void ns3::EdcaTxopN::Queue | ( | Ptr< const Packet > | packet, |
const WifiMacHeader & | hdr | ||
) |
packet | packet to send |
hdr | header of packet to send. |
Store the packet in the internal queue until it can be sent safely.
Definition at line 901 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), m_queue, m_stationManager, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::PrepareForQueue(), and StartAccessIfNeeded().
void ns3::EdcaTxopN::RemoveRetransmitPacket | ( | uint8_t | tid, |
Mac48Address | recipient, | ||
uint16_t | seqnumber | ||
) |
Remove a packet after you peek in the retransmit queue and get it.
Definition at line 491 of file edca-txop-n.cc.
References m_baManager, and ns3::BlockAckManager::RemovePacket().
Referenced by ns3::EdcaTxopN::AggregationCapableTransmissionListener::RemoveFromBaQueue().
void ns3::EdcaTxopN::RestartAccessIfNeeded | ( | void | ) |
Restart access request if needed.
Definition at line 1112 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::MacLow::GetDataTxVector(), ns3::BlockAckManager::HasPackets(), ns3::DcfState::IsAccessRequested(), m_baManager, m_currentHdr, m_currentPacket, m_currentPacketTimestamp, m_dcf, m_isAccessRequestedForRts, m_low, m_manager, m_qosBlockedDestinations, m_queue, m_stationManager, ns3::WifiRemoteStationManager::NeedRts(), NS_LOG_FUNCTION, ns3::BlockAckManager::PeekNextPacket(), and ns3::DcfManager::RequestAccess().
Referenced by GotAck(), GotAddBaResponse(), GotBlockAck(), MissedAck(), MissedBlockAck(), MissedCts(), NotifyCollision(), NotifyInternalCollision(), and NotifyWakeUp().
|
private |
Sends an ADDBA Request to establish a block ack agreement with sta addressed by recipient for tid tid.
recipient | |
tid | |
startSeq | |
timeout | |
immediateBAck |
Definition at line 1725 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_stationManager, 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(), ns3::MacLow::StartTransmission(), and ns3::WifiRemoteStationManager::UpdateFragmentationThreshold().
Referenced by SetupBlockAckIfNeeded().
|
private |
After that all packets, for which a block ack agreement was established, have been transmitted, we have to send a block ack request.
bar |
Definition at line 1650 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 1789 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::AggregationCapableTransmissionListener::BlockAckInactivityTimeout(), and CompleteConfig().
void ns3::EdcaTxopN::SetAccessCategory | ( | enum AcIndex | ac | ) |
Set the access category of this EDCAF.
ac |
Definition at line 1454 of file edca-txop-n.cc.
References m_ac, and NS_LOG_FUNCTION.
Referenced by AmpduAggregationTest::DoRun(), and TwoLevelAggregationTest::DoRun().
|
virtual |
aifsn | the number of slots which make up an AIFS for a specific DCF. a DIFS corresponds to an AIFSN = 2. |
Calling this method after DcfManager::Add has been called is not recommended.
Implements ns3::Dcf.
Definition at line 406 of file edca-txop-n.cc.
References m_dcf, NS_LOG_FUNCTION, and ns3::DcfState::SetAifsn().
Referenced by ns3::StaWifiMac::SetEdcaParameters().
void ns3::EdcaTxopN::SetAmpduExist | ( | Mac48Address | dest, |
bool | enableAmpdu | ||
) |
Definition at line 1591 of file edca-txop-n.cc.
References m_aMpduEnabled, and NS_LOG_FUNCTION.
Referenced by ns3::EdcaTxopN::AggregationCapableTransmissionListener::SetAmpdu().
void ns3::EdcaTxopN::SetBlockAckInactivityTimeout | ( | uint16_t | timeout | ) |
Definition at line 1711 of file edca-txop-n.cc.
References m_blockAckInactivityTimeout, NS_LOG_FUNCTION, and timeout.
Referenced by ns3::RegularWifiMac::SetBeBlockAckInactivityTimeout(), ns3::RegularWifiMac::SetBkBlockAckInactivityTimeout(), ns3::QosWifiMacHelper::Setup(), ns3::RegularWifiMac::SetViBlockAckInactivityTimeout(), and ns3::RegularWifiMac::SetVoBlockAckInactivityTimeout().
void ns3::EdcaTxopN::SetBlockAckThreshold | ( | uint8_t | threshold | ) |
Set threshold for block ACK mechanism.
If number of packets in the queue reaches the threshold, block ACK mechanism is used.
threshold |
Definition at line 1703 of file edca-txop-n.cc.
References m_baManager, m_blockAckThreshold, NS_LOG_FUNCTION, and ns3::BlockAckManager::SetBlockAckThreshold().
Referenced by ns3::RegularWifiMac::SetBeBlockAckThreshold(), ns3::RegularWifiMac::SetBkBlockAckThreshold(), ns3::QosWifiMacHelper::Setup(), ns3::RegularWifiMac::SetViBlockAckThreshold(), and ns3::RegularWifiMac::SetVoBlockAckThreshold().
Set MacLow associated with this EdcaTxopN.
low | MacLow |
Definition at line 461 of file edca-txop-n.cc.
References m_low, and NS_LOG_FUNCTION.
Referenced by AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), and ns3::RegularWifiMac::SetupEdcaQueue().
void ns3::EdcaTxopN::SetManager | ( | DcfManager * | manager | ) |
Set DcfManager this EdcaTxopN is associated to.
manager | DcfManager |
Definition at line 341 of file edca-txop-n.cc.
References ns3::DcfManager::Add(), m_dcf, m_manager, and NS_LOG_FUNCTION.
Referenced by AmpduAggregationTest::DoRun().
|
virtual |
Set the maximum contention window size.
maxCw | the maximum contention window size |
Implements ns3::Dcf.
Definition at line 399 of file edca-txop-n.cc.
References m_dcf, NS_LOG_FUNCTION, and ns3::DcfState::SetCwMax().
Referenced by ns3::StaWifiMac::SetEdcaParameters().
|
virtual |
Set the minimum contention window size.
minCw | the minimum contention window size |
Implements ns3::Dcf.
Definition at line 392 of file edca-txop-n.cc.
References m_dcf, NS_LOG_FUNCTION, and ns3::DcfState::SetCwMin().
Referenced by ns3::StaWifiMac::SetEdcaParameters().
void ns3::EdcaTxopN::SetMpduAggregator | ( | Ptr< MpduAggregator > | aggr | ) |
Definition at line 1500 of file edca-txop-n.cc.
References m_mpduAggregator, and NS_LOG_FUNCTION.
Referenced by AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), and ns3::QosWifiMacHelper::Setup().
void ns3::EdcaTxopN::SetMsduAggregator | ( | Ptr< MsduAggregator > | aggr | ) |
Definition at line 1493 of file edca-txop-n.cc.
References m_msduAggregator, and NS_LOG_FUNCTION.
Referenced by TwoLevelAggregationTest::DoRun(), and ns3::QosWifiMacHelper::Setup().
void ns3::EdcaTxopN::SetTxFailedCallback | ( | TxFailed | callback | ) |
callback | the callback to invoke when a packet transmission was completed unsuccessfully. |
Definition at line 356 of file edca-txop-n.cc.
References m_txFailedCallback, and NS_LOG_FUNCTION.
void ns3::EdcaTxopN::SetTxMiddle | ( | MacTxMiddle * | txMiddle | ) |
Definition at line 448 of file edca-txop-n.cc.
References m_txMiddle, and NS_LOG_FUNCTION.
Referenced by AmpduAggregationTest::DoRun().
void ns3::EdcaTxopN::SetTxOkCallback | ( | TxOk | callback | ) |
callback | the callback to invoke when a packet transmission was completed successfully. |
Definition at line 349 of file edca-txop-n.cc.
References m_txOkCallback, and NS_LOG_FUNCTION.
|
virtual |
Implements ns3::Dcf.
Definition at line 413 of file edca-txop-n.cc.
References m_dcf, NS_LOG_FUNCTION, and ns3::DcfState::SetTxopLimit().
Referenced by ns3::StaWifiMac::SetEdcaParameters().
void ns3::EdcaTxopN::SetTypeOfStation | ( | enum TypeOfStation | type | ) |
Set type of station with the given type.
type |
Definition at line 371 of file edca-txop-n.cc.
References m_typeOfStation, and NS_LOG_FUNCTION.
|
private |
If number of packets in the queue reaches m_blockAckThreshold value, an ADDBA Request frame is sent to destination in order to setup a block ack.
Definition at line 1631 of file edca-txop-n.cc.
References ns3::WifiMacHeader::ADDR1, ns3::WifiMacHeader::GetAddr1(), ns3::MacTxMiddle::GetNextSeqNumberByTidAndAddress(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiRemoteStationManager::HasVhtSupported(), m_blockAckInactivityTimeout, m_blockAckThreshold, m_currentHdr, m_mpduAggregator, m_queue, m_stationManager, m_txMiddle, NS_LOG_FUNCTION, and SendAddBaRequest().
Referenced by NotifyAccessGranted().
void ns3::EdcaTxopN::SetWifiRemoteStationManager | ( | Ptr< WifiRemoteStationManager > | remoteManager | ) |
Set WifiRemoteStationsManager this EdcaTxopN is associated to.
remoteManager | WifiRemoteStationManager |
Definition at line 363 of file edca-txop-n.cc.
References m_baManager, m_stationManager, NS_LOG_FUNCTION, and ns3::BlockAckManager::SetWifiRemoteStationManager().
Referenced by AmpduAggregationTest::DoRun(), and TwoLevelAggregationTest::DoRun().
void ns3::EdcaTxopN::StartAccessIfNeeded | ( | void | ) |
Request access from DCF manager if needed.
Definition at line 1147 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::MacLow::GetDataTxVector(), ns3::BlockAckManager::HasPackets(), ns3::DcfState::IsAccessRequested(), m_baManager, m_currentHdr, m_currentPacket, m_currentPacketTimestamp, m_dcf, m_isAccessRequestedForRts, m_low, m_manager, m_qosBlockedDestinations, m_queue, m_stationManager, ns3::WifiRemoteStationManager::NeedRts(), NS_LOG_FUNCTION, ns3::BlockAckManager::PeekNextPacket(), and ns3::DcfManager::RequestAccess().
Referenced by EndTxNoAck(), PushFront(), and Queue().
void ns3::EdcaTxopN::StartNext | ( | void | ) |
Start transmission for the next packet if allowed by the TxopLimit.
Definition at line 1254 of file edca-txop-n.cc.
References ns3::WifiMacHeader::ADDR1, ns3::MacLowTransmissionParameters::DisableAck(), ns3::MacLowTransmissionParameters::DisableOverrideDurationId(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLowTransmissionParameters::EnableRts(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::WifiMacHeader::GetQosTid(), GetTxopRemaining(), ns3::WifiMacHeader::IsQosBlockAck(), ns3::WifiMacHeader::IsQosData(), Low(), m_currentHdr, m_currentPacket, m_queue, m_stationManager, m_transmissionListener, ns3::WifiRemoteStationManager::NeedRts(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::MacLow::StartTransmission().
Referenced by ns3::EdcaTxopN::TransmissionListener::StartNext().
void ns3::EdcaTxopN::StartNextFragment | ( | void | ) |
Start transmission for the next fragment.
This is called for fragment only.
Definition at line 1230 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::StartNextFragment().
|
private |
Verifies if dequeued packet has to be transmitted with ack policy Block Ack.
This happens if an established block ack agreement exists with the receiver.
Definition at line 1565 of file edca-txop-n.cc.
References ns3::WifiMacHeader::BLOCK_ACK, ns3::OriginatorBlockAckAgreement::ESTABLISHED, ns3::BlockAckManager::ExistsAgreementInState(), ns3::WifiMacHeader::GetAddr1(), GetMpduAggregator(), 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 90 of file edca-txop-n.h.
|
friend |
Definition at line 558 of file edca-txop-n.h.
Referenced by EdcaTxopN().
|
friend |
Definition at line 560 of file edca-txop-n.h.
Referenced by EdcaTxopN().
|
private |
Definition at line 555 of file edca-txop-n.h.
Referenced by CompleteConfig(), and SetAccessCategory().
std::map<Mac48Address, bool> ns3::EdcaTxopN::m_aMpduEnabled |
Definition at line 103 of file edca-txop-n.h.
Referenced by GetAmpduExist(), and SetAmpduExist().
|
private |
Definition at line 595 of file edca-txop-n.h.
Referenced by DoInitialize(), EndTxNoAck(), GetTypeId(), GotAck(), GotBlockAck(), MissedAck(), MissedBlockAck(), MissedCts(), NotifyCollision(), and NotifyInternalCollision().
|
private |
Definition at line 584 of file edca-txop-n.h.
Referenced by CompleteAmpduTransfer(), CompleteConfig(), CompleteMpduTx(), CompleteTx(), DoDispose(), AmpduAggregationTest::DoRun(), EdcaTxopN(), GetBaAgreementExists(), GetNOutstandingPacketsInBa(), GetNRetryNeededPackets(), GotAck(), GotAddBaResponse(), GotBlockAck(), GotDelBaFrame(), NeedBarRetransmission(), NeedsAccess(), NotifyAccessGranted(), PeekNextRetransmitPacket(), RemoveRetransmitPacket(), RestartAccessIfNeeded(), SendAddBaRequest(), SetBlockAckThreshold(), SetWifiRemoteStationManager(), StartAccessIfNeeded(), and VerifyBlockAck().
|
private |
Definition at line 591 of file edca-txop-n.h.
Referenced by SetBlockAckInactivityTimeout(), and SetupBlockAckIfNeeded().
|
private |
Definition at line 569 of file edca-txop-n.h.
Referenced by CompleteConfig(), DoDispose(), and EdcaTxopN().
|
private |
Definition at line 588 of file edca-txop-n.h.
Referenced by GetBlockAckThreshold(), NotifyAccessGranted(), SetBlockAckThreshold(), and SetupBlockAckIfNeeded().
|
private |
Definition at line 589 of file edca-txop-n.h.
Referenced by EdcaTxopN(), NotifyAccessGranted(), and SendBlockAckRequest().
|
private |
Definition at line 592 of file edca-txop-n.h.
Referenced by MissedAck(), MissedBlockAck(), MissedCts(), and NotifyAccessGranted().
|
private |
Definition at line 579 of file edca-txop-n.h.
Referenced by BaTxFailed(), BaTxOk(), CompleteTx(), AmpduAggregationTest::DoRun(), GetCurrentTid(), GetFragmentOffset(), GetFragmentPacket(), GetFragmentSize(), GetNextFragmentSize(), GotAck(), GotBlockAck(), HasTxop(), IsLastFragment(), MissedAck(), MissedBlockAck(), MissedCts(), NeedBarRetransmission(), NeedFragmentation(), NotifyAccessGranted(), NotifyInternalCollision(), NotifySleep(), RestartAccessIfNeeded(), SendAddBaRequest(), SendBlockAckRequest(), SetupBlockAckIfNeeded(), StartAccessIfNeeded(), StartNext(), and VerifyBlockAck().
Definition at line 577 of file edca-txop-n.h.
Referenced by CompleteTx(), AmpduAggregationTest::DoRun(), EndTxNoAck(), GetCurrentTid(), GetFragmentOffset(), GetFragmentPacket(), GetFragmentSize(), GetNextFragmentSize(), GotAck(), GotBlockAck(), IsLastFragment(), MissedAck(), MissedBlockAck(), MissedCts(), NeedBarRetransmission(), NeedFragmentation(), NeedsAccess(), NotifyAccessGranted(), NotifyChannelSwitching(), NotifyInternalCollision(), NotifySleep(), RestartAccessIfNeeded(), SendAddBaRequest(), SendBlockAckRequest(), StartAccessIfNeeded(), and StartNext().
|
private |
Definition at line 590 of file edca-txop-n.h.
Referenced by CompleteTx(), NotifyAccessGranted(), RestartAccessIfNeeded(), and StartAccessIfNeeded().
|
private |
Definition at line 596 of file edca-txop-n.h.
Referenced by DoInitialize(), EndTxNoAck(), GetTypeId(), GotAck(), GotBlockAck(), MissedAck(), MissedBlockAck(), and MissedCts().
|
private |
Definition at line 561 of file edca-txop-n.h.
Referenced by DoDispose(), DoInitialize(), EdcaTxopN(), EndTxNoAck(), GetAifsn(), GetMaxCw(), GetMinCw(), GetTxopLimit(), GotAck(), GotBlockAck(), MissedAck(), MissedBlockAck(), MissedCts(), NotifyCollision(), NotifyInternalCollision(), RestartAccessIfNeeded(), SetAifsn(), SetManager(), SetMaxCw(), SetMinCw(), SetTxopLimit(), and StartAccessIfNeeded().
|
private |
Definition at line 572 of file edca-txop-n.h.
Referenced by GetFragmentOffset(), GetFragmentPacket(), GetFragmentSize(), GetNextFragmentSize(), IsLastFragment(), NextFragment(), and NotifyAccessGranted().
|
private |
Definition at line 594 of file edca-txop-n.h.
Referenced by NotifyAccessGranted(), NotifyInternalCollision(), RestartAccessIfNeeded(), and StartAccessIfNeeded().
Definition at line 566 of file edca-txop-n.h.
Referenced by CompleteConfig(), DoDispose(), GotAck(), Low(), MissedAck(), MissedBlockAck(), MissedCts(), NotifyAccessGranted(), RestartAccessIfNeeded(), SendAddBaRequest(), SendBlockAckRequest(), SendDelbaFrame(), SetLow(), and StartAccessIfNeeded().
|
private |
Definition at line 562 of file edca-txop-n.h.
Referenced by RestartAccessIfNeeded(), SetManager(), and StartAccessIfNeeded().
|
private |
Definition at line 581 of file edca-txop-n.h.
Referenced by DoDispose(), GetMpduAggregator(), SetMpduAggregator(), and SetupBlockAckIfNeeded().
|
private |
Definition at line 580 of file edca-txop-n.h.
Referenced by DoDispose(), GetMsduAggregator(), NotifyAccessGranted(), and SetMsduAggregator().
|
private |
Definition at line 583 of file edca-txop-n.h.
Referenced by DoDispose(), EdcaTxopN(), NotifyAccessGranted(), RestartAccessIfNeeded(), and StartAccessIfNeeded().
|
private |
Definition at line 563 of file edca-txop-n.h.
Referenced by DoDispose(), EdcaTxopN(), GetEdcaQueue(), HasTxop(), NeedsAccess(), NotifyAccessGranted(), NotifyChannelSwitching(), NotifyInternalCollision(), NotifySleep(), PushFront(), Queue(), RestartAccessIfNeeded(), SetupBlockAckIfNeeded(), StartAccessIfNeeded(), and StartNext().
|
private |
Definition at line 570 of file edca-txop-n.h.
Referenced by AssignStreams(), DoDispose(), DoInitialize(), EdcaTxopN(), EndTxNoAck(), GotAck(), GotBlockAck(), MissedAck(), MissedBlockAck(), MissedCts(), NotifyCollision(), and NotifyInternalCollision().
|
private |
Definition at line 593 of file edca-txop-n.h.
Referenced by GetTxopRemaining(), and NotifyAccessGranted().
|
private |
Definition at line 571 of file edca-txop-n.h.
Referenced by DoDispose(), GetFragmentOffset(), GetFragmentSize(), GetNextFragmentSize(), HasTxop(), IsLastFragment(), MissedAck(), MissedBlockAck(), MissedCts(), NeedDataRetransmission(), NeedFragmentation(), NeedRtsRetransmission(), NotifyAccessGranted(), NotifyInternalCollision(), PushFront(), Queue(), RestartAccessIfNeeded(), SendAddBaRequest(), SetupBlockAckIfNeeded(), SetWifiRemoteStationManager(), StartAccessIfNeeded(), and StartNext().
|
private |
Definition at line 568 of file edca-txop-n.h.
Referenced by DoDispose(), EdcaTxopN(), NotifyAccessGranted(), SendAddBaRequest(), SendBlockAckRequest(), StartNext(), and StartNextFragment().
|
private |
Definition at line 565 of file edca-txop-n.h.
Referenced by BaTxFailed(), MissedAck(), MissedCts(), NotifyInternalCollision(), and SetTxFailedCallback().
|
private |
Definition at line 567 of file edca-txop-n.h.
Referenced by CompleteConfig(), CompleteMpduTx(), CompleteTx(), DoDispose(), GetNextSequenceNumberfor(), MissedAck(), MissedCts(), NotifyAccessGranted(), PeekNextSequenceNumberfor(), SendAddBaRequest(), SetTxMiddle(), and SetupBlockAckIfNeeded().
|
private |
Definition at line 564 of file edca-txop-n.h.
Referenced by BaTxOk(), GotAck(), GotBlockAck(), and SetTxOkCallback().
|
private |
Definition at line 582 of file edca-txop-n.h.
Referenced by GetTypeOfStation(), MapDestAddressForAggregation(), MapSrcAddressForAggregation(), and SetTypeOfStation().