This queue contains packets for a particular access class. More...
#include "edca-txop-n.h"
Public Member Functions | |
EdcaTxopN () | |
virtual | ~EdcaTxopN () |
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 | CompleteAmpduTransfer (Mac48Address recipient, uint8_t tid) |
void | CompleteConfig (void) |
Complete block ACK configuration. More... | |
void | CompleteMpduTx (Ptr< const Packet > packet, WifiMacHeader hdr, Time tstamp) |
Stores an MPDU (part of an A-MPDU) in blockackagreement (i.e. More... | |
void | EndTxNoAck (void) |
Event handler when a transmission that does not require an ACK has completed. More... | |
bool | GetAmpduExist (Mac48Address dest) const |
Return whether A-MPDU is used to transmit data to a peer station. More... | |
bool | GetBaAgreementExists (Mac48Address address, uint8_t tid) const |
uint8_t | GetBlockAckThreshold (void) const |
Return the current threshold for block ACK mechanism. More... | |
Ptr< Packet > | GetFragmentPacket (WifiMacHeader *hdr) |
Get the next fragment from the packet with appropriate Wifi header for the fragment. More... | |
Ptr< MpduAggregator > | GetMpduAggregator (void) const |
Returns the aggregator used to construct A-MPDU subframes. More... | |
Ptr< MsduAggregator > | GetMsduAggregator (void) const |
Returns the aggregator used to construct A-MSDU subframes. More... | |
uint16_t | GetNextSequenceNumberFor (WifiMacHeader *hdr) |
Return the next sequence number for the given header. More... | |
TypeOfStation | GetTypeOfStation (void) const |
Return type of station. More... | |
void | GotAck (void) |
Event handler when an ACK is received. More... | |
void | GotAddBaResponse (const MgtAddBaResponseHeader *respHdr, Mac48Address recipient) |
Event handler when an ADDBA response is received. More... | |
void | GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address recipient, double rxSnr, WifiMode txMode, double dataSnr) |
Event handler when a Block ACK is received. More... | |
void | GotDelBaFrame (const MgtDelBaHeader *delBaHdr, Mac48Address recipient) |
Event handler when a DELBA frame is received. More... | |
bool | IsEdca () |
Check for EDCA. More... | |
Mac48Address | MapDestAddressForAggregation (const WifiMacHeader &hdr) |
This functions are used only to correctly set destination address in A-MSDU subframes. More... | |
Mac48Address | MapSrcAddressForAggregation (const WifiMacHeader &hdr) |
This functions are used only to correctly set source address in A-MSDU subframes. More... | |
void | MissedAck (void) |
Event handler when an ACK is missed. More... | |
void | MissedBlockAck (uint8_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 | NeedFragmentation (void) const |
Check if the current packet should be fragmented. More... | |
void | NotifyAccessGranted (void) |
Notify the EDCAF that access has been granted. More... | |
void | NotifyCollision (void) |
Notify the EDCAF that collision has occurred. More... | |
void | NotifyInternalCollision (void) |
Notify the EDCAF that internal collision has occurred. More... | |
Ptr< const Packet > | PeekNextRetransmitPacket (WifiMacHeader &header, Mac48Address recipient, uint8_t tid, Time *timestamp) |
Peek in retransmit queue and get the next packet without removing it from the queue. More... | |
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 | 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) |
Sends DELBA frame to cancel a block ack agreement with sta addressed by addr for tid tid. More... | |
void | SetAccessCategory (AcIndex ac) |
Set the access category of this EDCAF. More... | |
void | SetAmpduExist (Mac48Address dest, bool enableAmpdu) |
Set indication whether A-MPDU is used to transmit data to a peer station. More... | |
void | SetBlockAckInactivityTimeout (uint16_t timeout) |
Set the Block Ack inactivity timeout. More... | |
void | SetBlockAckThreshold (uint8_t threshold) |
Set threshold for block ACK mechanism. More... | |
void | SetMpduAggregator (const Ptr< MpduAggregator > aggr) |
Set the aggregator used to construct A-MPDU subframes. More... | |
void | SetMsduAggregator (const Ptr< MsduAggregator > aggr) |
Set the aggregator used to construct A-MSDU subframes. More... | |
void | SetTypeOfStation (TypeOfStation type) |
Set type of station with the given type. More... | |
void | SetWifiRemoteStationManager (const Ptr< WifiRemoteStationManager > remoteManager) |
Set WifiRemoteStationsManager this EdcaTxopN is associated to. More... | |
void | StartAccessIfNeeded (void) |
Request access from DCF manager if needed. More... | |
void | StartNextPacket (void) |
Start transmission for the next packet if allowed by the TxopLimit. More... | |
![]() | |
DcaTxop () | |
virtual | ~DcaTxop () |
int64_t | AssignStreams (int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this model. More... | |
virtual void | Cancel (void) |
Cancel the transmission. More... | |
uint32_t | GetAifsn (void) const |
Return the number of slots that make up an AIFS. More... | |
Ptr< MacLow > | GetLow (void) const |
Return the MacLow associated with this DcaTxop. More... | |
uint32_t | GetMaxCw (void) const |
Return the maximum contention window size. More... | |
uint32_t | GetMinCw (void) const |
Return the minimum contention window size. More... | |
Ptr< WifiMacQueue > | GetQueue () const |
Return the packet queue associated with this DcaTxop. More... | |
Time | GetTxopLimit (void) const |
Return the TXOP limit. More... | |
virtual void | NotifyChannelSwitching (void) |
When a channel switching occurs, enqueued packets are removed. More... | |
virtual void | NotifyOff (void) |
When off operation occurs, the queue gets cleaned up. More... | |
virtual void | NotifyOn (void) |
When on operation occurs, channel access will be started. More... | |
virtual void | NotifySleep (void) |
When sleep operation occurs, if there is a pending packet transmission, it will be reinserted to the front of the queue. More... | |
virtual void | NotifyWakeUp (void) |
When wake up operation occurs, channel access will be restarted. More... | |
virtual void | Queue (Ptr< const Packet > packet, const WifiMacHeader &hdr) |
void | SetAifsn (uint32_t aifsn) |
Set the number of slots that make up an AIFS. More... | |
void | SetLow (const Ptr< MacLow > low) |
Set MacLow associated with this DcaTxop. More... | |
void | SetManager (const Ptr< DcfManager > manager) |
Set DcfManager this DcaTxop is associated to. More... | |
void | SetMaxCw (uint32_t maxCw) |
Set the maximum contention window size. More... | |
void | SetMinCw (uint32_t minCw) |
Set the minimum contention window size. More... | |
void | SetTxDroppedCallback (TxDropped callback) |
void | SetTxFailedCallback (TxFailed callback) |
void | SetTxMiddle (const Ptr< MacTxMiddle > txMiddle) |
Set MacTxMiddle this DcaTxop is associated to. More... | |
void | SetTxOkCallback (TxOk callback) |
void | SetTxopLimit (Time txopLimit) |
Set the TXOP limit. More... | |
virtual 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 |
Get the most derived TypeId for this Object. 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 () | |
Default 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 operator. 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) |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Public Attributes | |
std::map< Mac48Address, bool > | m_aMpduEnabled |
list containing flags whether A-MPDU is enabled for a given destination address More... | |
Private Member Functions | |
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 | DoDispose (void) |
Destructor implementation. More... | |
void | DoInitialize (void) |
Initialize() implementation. More... | |
uint32_t | GetFragmentOffset (void) const |
Calculate the offset for the current fragment. More... | |
uint32_t | GetFragmentSize (void) const |
Calculate the size of the current fragment. More... | |
uint32_t | GetNextFragmentSize (void) const |
Calculate the size of the next fragment. More... | |
uint32_t | GetNextTxopFragmentSize (uint32_t fragmentNumber) const |
Calculate the size of the next TXOP fragment. More... | |
uint32_t | GetNTxopFragment () const |
Calculate the number of TXOP fragments needed for the transmission of the current packet. More... | |
uint32_t | GetTxopFragmentOffset (uint32_t fragmentNumber) const |
Calculate the offset for the fragment. More... | |
uint32_t | GetTxopFragmentSize () const |
Calculate the size of the current TXOP fragment. More... | |
Time | GetTxopRemaining (void) const |
Return the remaining duration in the current TXOP. More... | |
bool | HasTxop (void) const |
Check if the station has TXOP granted for the next MPDU. More... | |
bool | IsLastFragment (void) const |
Check if the current fragment is the last fragment. More... | |
bool | IsTxopFragmentation () const |
Check if the current packet is fragmented because of an exceeded TXOP duration. More... | |
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 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 |
the access category More... | |
TracedValue< uint32_t > | m_backoffTrace |
backoff trace value More... | |
Ptr< BlockAckManager > | m_baManager |
the Block ACK manager More... | |
uint16_t | m_blockAckInactivityTimeout |
the Block ACK inactivity timeout More... | |
uint8_t | m_blockAckThreshold |
the Block ACK threshold More... | |
BlockAckType | m_blockAckType |
the Block ACK type More... | |
Bar | m_currentBar |
the current BAR More... | |
bool | m_currentIsFragmented |
flag whether current packet is fragmented More... | |
Time | m_currentPacketTimestamp |
the current packet timestamp More... | |
TracedValue< uint32_t > | m_cwTrace |
CW trace value. More... | |
bool | m_isAccessRequestedForRts |
flag whether access is requested to transmit a RTS frame More... | |
Ptr< MpduAggregator > | m_mpduAggregator |
A-MPDU aggregator. More... | |
Ptr< MsduAggregator > | m_msduAggregator |
A-MSDU aggregator. More... | |
Ptr< QosBlockedDestinations > | m_qosBlockedDestinations |
QOS blocked destinations. More... | |
Time | m_startTxop |
the start TXOP time More... | |
TracedCallback< Time, Time > | m_txopTrace |
TXOP trace callback. More... | |
TypeOfStation | m_typeOfStation |
the type of station More... | |
Friends | |
class | ::AmpduAggregationTest |
Allow test cases to access private members. More... | |
class | AggregationCapableTransmissionListener |
allow AggregationCapableTransmissionListener class access More... | |
Additional Inherited Members | |
![]() | |
typedef Callback< void, Ptr< const Packet > > | TxDropped |
typedef for a callback to invoke when a packet is dropped. More... | |
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... | |
![]() | |
bool | NeedDataRetransmission (Ptr< const Packet > packet, const WifiMacHeader &hdr) |
Check if DATA should be re-transmitted if ACK was missed. More... | |
bool | NeedRtsRetransmission (Ptr< const Packet > packet, const WifiMacHeader &hdr) |
Check if RTS should be re-transmitted if CTS was missed. More... | |
void | NextFragment (void) |
Continue to the next fragment. More... | |
void | TxDroppedPacket (Ptr< const WifiMacQueueItem > item) |
Pass the packet included in the wifi MAC queue item to the packet dropped callback. More... | |
![]() | |
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... | |
![]() | |
WifiMacHeader | m_currentHdr |
the current header More... | |
Ptr< const Packet > | m_currentPacket |
the current packet More... | |
MacLowTransmissionParameters | m_currentParams |
current transmission parameters More... | |
Ptr< DcfState > | m_dcf |
the DCF state More... | |
uint8_t | m_fragmentNumber |
the fragment number More... | |
Ptr< MacLow > | m_low |
the MacLow More... | |
Ptr< DcfManager > | m_manager |
the DCF manager More... | |
Ptr< WifiMacQueue > | m_queue |
the wifi MAC queue More... | |
Ptr< UniformRandomVariable > | m_rng |
the random stream More... | |
Ptr< WifiRemoteStationManager > | m_stationManager |
the wifi remote station manager More... | |
TxDropped | m_txDroppedCallback |
the packet dropped callback More... | |
TxFailed | m_txFailedCallback |
the transmit failed callback More... | |
Ptr< MacTxMiddle > | m_txMiddle |
the MacTxMiddle More... | |
TxOk | m_txOkCallback |
the transmit OK callback 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:
No Attributes are defined for this type.
Size of this type is 408 bytes (on a 64-bit architecture).
Definition at line 68 of file edca-txop-n.h.
ns3::EdcaTxopN::EdcaTxopN | ( | ) |
Definition at line 66 of file edca-txop-n.cc.
References BaTxFailed(), BaTxOk(), ns3::QosBlockedDestinations::Block(), m_baManager, m_blockAckType, m_qosBlockedDestinations, ns3::DcaTxop::m_queue, ns3::MakeCallback(), NS_LOG_FUNCTION, and ns3::QosBlockedDestinations::Unblock().
|
virtual |
Definition at line 87 of file edca-txop-n.cc.
References NS_LOG_FUNCTION.
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 1554 of file edca-txop-n.cc.
References ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::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 1544 of file edca-txop-n.cc.
References ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_txOkCallback, and NS_LOG_FUNCTION.
Referenced by EdcaTxopN().
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 110 of file edca-txop-n.cc.
References m_baManager.
void ns3::EdcaTxopN::CompleteConfig | ( | void | ) |
Complete block ACK configuration.
Definition at line 1405 of file edca-txop-n.cc.
References m_ac, m_baManager, ns3::DcaTxop::m_low, ns3::DcaTxop::m_txMiddle, ns3::MakeCallback(), NS_LOG_FUNCTION, ns3::MacLow::RegisterEdcaForAc(), and SendDelbaFrame().
Referenced by AmpduAggregationTest::DoRun(), and TwoLevelAggregationTest::DoRun().
void ns3::EdcaTxopN::CompleteMpduTx | ( | Ptr< const Packet > | packet, |
WifiMacHeader | hdr, | ||
Time | tstamp | ||
) |
Stores an MPDU (part of an A-MPDU) in blockackagreement (i.e.
the sender is waiting for a blockack containing the sequence number of this MPDU). It also calls NotifyMpdu transmission that updates the status of OriginatorBlockAckAgreement.
packet | received packet. |
hdr | received Wi-Fi header. |
tstamp | timestamp. |
Definition at line 1333 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::MacTxMiddle::GetNextSeqNumberByTidAndAddress(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::IsQosData(), m_baManager, ns3::DcaTxop::m_txMiddle, ns3::WifiMacHeader::NORMAL_ACK, and NS_ASSERT.
|
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 1317 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, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, m_currentPacketTimestamp, ns3::DcaTxop::m_txMiddle, and NS_LOG_FUNCTION.
Referenced by NotifyAccessGranted(), and StartNextPacket().
|
privatevirtual |
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::DcaTxop.
Definition at line 93 of file edca-txop-n.cc.
References ns3::DcaTxop::DoDispose(), m_baManager, m_mpduAggregator, m_msduAggregator, m_qosBlockedDestinations, 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::DcaTxop.
Definition at line 1534 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomVariableStream::GetInteger(), m_backoffTrace, m_cwTrace, ns3::DcaTxop::m_dcf, ns3::DcaTxop::m_rng, NS_LOG_FUNCTION, ns3::DcfState::ResetCw(), and ns3::DcfState::StartBackoffNow().
|
virtual |
Event handler when a transmission that does not require an ACK has completed.
Reimplemented from ns3::DcaTxop.
Definition at line 928 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomVariableStream::GetInteger(), ns3::DcaTxop::GetTxopLimit(), ns3::WifiMacHeader::IsQosBlockAck(), ns3::WifiMacHeader::IsQosData(), ns3::Time::IsStrictlyPositive(), m_backoffTrace, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, m_cwTrace, ns3::DcaTxop::m_dcf, ns3::DcaTxop::m_rng, m_startTxop, m_txopTrace, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::DcfState::ResetCw(), StartAccessIfNeeded(), and ns3::DcfState::StartBackoffNow().
bool ns3::EdcaTxopN::GetAmpduExist | ( | Mac48Address | dest | ) | const |
Return whether A-MPDU is used to transmit data to a peer station.
dest | address of peer station |
Definition at line 1293 of file edca-txop-n.cc.
References m_aMpduEnabled, and NS_LOG_FUNCTION.
Referenced by MissedAck(), MissedBlockAck(), MissedCts(), NeedFragmentation(), NotifyAccessGranted(), and StartNextPacket().
bool ns3::EdcaTxopN::GetBaAgreementExists | ( | Mac48Address | address, |
uint8_t | tid | ||
) | const |
address | 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 104 of file edca-txop-n.cc.
References m_baManager.
Referenced by MissedAck(), MissedCts(), and NeedFragmentation().
uint8_t ns3::EdcaTxopN::GetBlockAckThreshold | ( | void | ) | const |
Return the current threshold for block ACK mechanism.
Definition at line 1429 of file edca-txop-n.cc.
References m_blockAckThreshold, and NS_LOG_FUNCTION.
|
privatevirtual |
Calculate the offset for the current fragment.
Reimplemented from ns3::DcaTxop.
Definition at line 1105 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetFragmentOffset(), GetTxopFragmentOffset(), IsTxopFragmentation(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_fragmentNumber, and ns3::DcaTxop::m_stationManager.
Referenced by GetFragmentPacket().
|
virtual |
Get the next fragment from the packet with appropriate Wifi header for the fragment.
hdr | Wi-Fi header. |
Reimplemented from ns3::DcaTxop.
Definition at line 1137 of file edca-txop-n.cc.
References ns3::Packet::CreateFragment(), GetFragmentOffset(), GetFragmentSize(), IsLastFragment(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_fragmentNumber, NS_LOG_FUNCTION, ns3::WifiMacHeader::SetFragmentNumber(), ns3::WifiMacHeader::SetMoreFragments(), and ns3::WifiMacHeader::SetNoMoreFragments().
Referenced by NotifyAccessGranted().
|
privatevirtual |
Calculate the size of the current fragment.
Reimplemented from ns3::DcaTxop.
Definition at line 1075 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetFragmentSize(), GetNextTxopFragmentSize(), IsTxopFragmentation(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_fragmentNumber, and ns3::DcaTxop::m_stationManager.
Referenced by GetFragmentPacket().
Ptr< MpduAggregator > ns3::EdcaTxopN::GetMpduAggregator | ( | void | ) | const |
Returns the aggregator used to construct A-MPDU subframes.
Definition at line 694 of file edca-txop-n.cc.
References m_mpduAggregator.
Referenced by ns3::RegularWifiMac::ConfigureAggregation(), NeedFragmentation(), and VerifyBlockAck().
Ptr< MsduAggregator > ns3::EdcaTxopN::GetMsduAggregator | ( | void | ) | const |
Returns the aggregator used to construct A-MSDU subframes.
Definition at line 688 of file edca-txop-n.cc.
References m_msduAggregator.
Referenced by ns3::RegularWifiMac::ConfigureAggregation().
|
privatevirtual |
Calculate the size of the next fragment.
Reimplemented from ns3::DcaTxop.
Definition at line 1090 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetFragmentSize(), GetNextTxopFragmentSize(), IsTxopFragmentation(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_fragmentNumber, and ns3::DcaTxop::m_stationManager.
Referenced by NotifyAccessGranted().
uint16_t ns3::EdcaTxopN::GetNextSequenceNumberFor | ( | WifiMacHeader * | hdr | ) |
Return the next sequence number for the given header.
hdr | Wi-Fi header. |
Definition at line 137 of file edca-txop-n.cc.
References ns3::MacTxMiddle::GetNextSequenceNumberFor(), and ns3::DcaTxop::m_txMiddle.
|
private |
Calculate the size of the next TXOP fragment.
fragmentNumber | number of the next fragment |
Definition at line 1056 of file edca-txop-n.cc.
References GetNTxopFragment(), ns3::Packet::GetSize(), GetTxopFragmentSize(), ns3::DcaTxop::m_currentPacket, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by GetFragmentSize(), and GetNextFragmentSize().
|
private |
Calculate the number of TXOP fragments needed for the transmission of the current packet.
Definition at line 1017 of file edca-txop-n.cc.
References ns3::Packet::GetSize(), GetTxopFragmentSize(), ns3::DcaTxop::m_currentPacket, and NS_LOG_DEBUG.
Referenced by GetNextTxopFragmentSize(), and IsLastFragment().
|
private |
Calculate the offset for the fragment.
fragmentNumber | number of the fragment |
Definition at line 1030 of file edca-txop-n.cc.
References ns3::Packet::GetSize(), GetTxopFragmentSize(), ns3::DcaTxop::m_currentPacket, NS_ASSERT, and NS_LOG_DEBUG.
Referenced by GetFragmentOffset().
|
private |
Calculate the size of the current TXOP fragment.
Definition at line 984 of file edca-txop-n.cc.
References ns3::MacLow::CalculateOverallTxTime(), ns3::DcaTxop::GetLow(), ns3::Packet::GetSize(), ns3::DcaTxop::GetTxopLimit(), ns3::Time::IsZero(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_currentParams, and NS_ASSERT.
Referenced by GetNextTxopFragmentSize(), GetNTxopFragment(), GetTxopFragmentOffset(), and IsTxopFragmentation().
|
private |
Return the remaining duration in the current TXOP.
Definition at line 876 of file edca-txop-n.cc.
References ns3::DcaTxop::GetTxopLimit(), ns3::Time::IsStrictlyNegative(), m_startTxop, ns3::Simulator::Now(), NS_LOG_FUNCTION, and ns3::Seconds().
Referenced by HasTxop().
|
static |
Get the type ID.
Definition at line 44 of file edca-txop-n.cc.
References m_backoffTrace, m_cwTrace, m_txopTrace, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
TypeOfStation ns3::EdcaTxopN::GetTypeOfStation | ( | void | ) | const |
Return type of station.
Definition at line 131 of file edca-txop-n.cc.
References m_typeOfStation, and NS_LOG_FUNCTION.
|
virtual |
Event handler when an ACK is received.
Reimplemented from ns3::DcaTxop.
Definition at line 483 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::RandomVariableStream::GetInteger(), ns3::Packet::GetSize(), ns3::MgtDelBaHeader::GetTid(), ns3::DcaTxop::GetTxopLimit(), ns3::MacLowTransmissionParameters::HasNextPacket(), HasTxop(), ns3::WifiMacHeader::IsAction(), ns3::MgtDelBaHeader::IsByOriginator(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::WifiMacHeader::IsQosAmsdu(), ns3::WifiMacHeader::IsQosData(), ns3::Time::IsStrictlyPositive(), m_backoffTrace, m_baManager, ns3::DcaTxop::m_currentHdr, m_currentIsFragmented, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_currentParams, m_cwTrace, ns3::DcaTxop::m_dcf, ns3::DcaTxop::m_fragmentNumber, ns3::DcaTxop::m_low, ns3::DcaTxop::m_rng, m_startTxop, ns3::DcaTxop::m_txOkCallback, m_txopTrace, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Packet::PeekHeader(), ns3::Packet::RemoveHeader(), ns3::DcfState::ResetCw(), RestartAccessIfNeeded(), and ns3::DcfState::StartBackoffNow().
void ns3::EdcaTxopN::GotAddBaResponse | ( | const MgtAddBaResponseHeader * | respHdr, |
Mac48Address | recipient | ||
) |
Event handler when an ADDBA response is received.
respHdr | ADDBA response header. |
recipient | address of the recipient. |
Definition at line 1221 of file edca-txop-n.cc.
References ns3::MgtAddBaResponseHeader::GetStatusCode(), ns3::MgtAddBaResponseHeader::GetTid(), ns3::StatusCode::IsSuccess(), m_baManager, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::OriginatorBlockAckAgreement::PENDING, and RestartAccessIfNeeded().
|
virtual |
Event handler when a Block ACK is received.
blockAck | block ack. |
recipient | address of the recipient. |
rxSnr | SNR of the block ack itself. |
txMode | wifi mode. |
dataSnr | reported data SNR from the peer. |
Reimplemented from ns3::DcaTxop.
Definition at line 1251 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomVariableStream::GetInteger(), ns3::DcaTxop::GetTxopLimit(), ns3::WifiMode::GetUniqueName(), HasTxop(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::WifiMacHeader::IsQosData(), ns3::Time::IsStrictlyPositive(), m_backoffTrace, m_baManager, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, m_cwTrace, ns3::DcaTxop::m_dcf, ns3::DcaTxop::m_rng, m_startTxop, ns3::DcaTxop::m_txOkCallback, m_txopTrace, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::DcfState::ResetCw(), RestartAccessIfNeeded(), and ns3::DcfState::StartBackoffNow().
void ns3::EdcaTxopN::GotDelBaFrame | ( | const MgtDelBaHeader * | delBaHdr, |
Mac48Address | recipient | ||
) |
Event handler when a DELBA frame is received.
delBaHdr | DELBA header. |
recipient | address of the recipient. |
Definition at line 1243 of file edca-txop-n.cc.
References ns3::MgtDelBaHeader::GetTid(), m_baManager, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
privatevirtual |
Check if the station has TXOP granted for the next MPDU.
Reimplemented from ns3::DcaTxop.
Definition at line 889 of file edca-txop-n.cc.
References ns3::WifiMacHeader::ADDR1, ns3::MacLow::CalculateOverallTxTime(), ns3::MacLowTransmissionParameters::DisableAck(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::WifiMacHeader::GetAddr1(), ns3::DcaTxop::GetLow(), ns3::WifiMacHeader::GetQosTid(), ns3::DcaTxop::GetTxopLimit(), GetTxopRemaining(), ns3::WifiMacHeader::IsQosBlockAck(), ns3::WifiMacHeader::IsQosData(), ns3::Time::IsZero(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_currentParams, ns3::DcaTxop::m_queue, and NS_LOG_FUNCTION.
Referenced by GotAck(), and GotBlockAck().
|
virtual |
Check for EDCA.
Reimplemented from ns3::DcaTxop.
Definition at line 1564 of file edca-txop-n.cc.
|
privatevirtual |
Check if the current fragment is the last fragment.
Reimplemented from ns3::DcaTxop.
Definition at line 1121 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), GetNTxopFragment(), ns3::WifiRemoteStationManager::IsLastFragment(), IsTxopFragmentation(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_fragmentNumber, and ns3::DcaTxop::m_stationManager.
Referenced by GetFragmentPacket(), and NotifyAccessGranted().
|
private |
Check if the current packet is fragmented because of an exceeded TXOP duration.
Definition at line 969 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetFragmentSize(), GetTxopFragmentSize(), ns3::DcaTxop::GetTxopLimit(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_stationManager, and ns3::WifiRemoteStationManager::NeedFragmentation().
Referenced by GetFragmentOffset(), GetFragmentSize(), GetNextFragmentSize(), and IsLastFragment().
Mac48Address ns3::EdcaTxopN::MapDestAddressForAggregation | ( | const WifiMacHeader & | hdr | ) |
This functions are used only to correctly set destination address in A-MSDU subframes.
If aggregating sta is a STA (in an infrastructured network): DA = Address3 If aggregating sta is an AP DA = Address1
hdr | Wi-Fi header |
Definition at line 1181 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().
Mac48Address ns3::EdcaTxopN::MapSrcAddressForAggregation | ( | const WifiMacHeader & | hdr | ) |
This functions are used only to correctly set source address in A-MSDU subframes.
If aggregating sta is a STA (in an infrastructured network): SA = Address2 If aggregating sta is an AP SA = Address3
hdr | Wi-Fi header |
Definition at line 1165 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().
|
virtual |
Event handler when an ACK is missed.
Reimplemented from ns3::DcaTxop.
Definition at line 549 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(), ns3::DcfState::GetCw(), ns3::RandomVariableStream::GetInteger(), ns3::GetTid(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::WifiMacHeader::IsQosData(), m_backoffTrace, m_currentBar, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, m_cwTrace, ns3::DcaTxop::m_dcf, ns3::DcaTxop::m_low, ns3::DcaTxop::m_rng, ns3::DcaTxop::m_stationManager, ns3::DcaTxop::m_txFailedCallback, ns3::DcaTxop::m_txMiddle, ns3::CtrlBAckRequestHeader::MustSendHtImmediateAck(), ns3::DcaTxop::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().
|
virtual |
Event handler when a Block ACK timeout has occurred.
nMpdus | number of MPDUs sent in the A-MPDU transmission that results in a Block ACK timeout. |
Reimplemented from ns3::DcaTxop.
Definition at line 614 of file edca-txop-n.cc.
References ns3::Packet::AddHeader(), ns3::COMPRESSED_BLOCK_ACK, ns3::WifiMacHeader::GetAddr1(), ns3::MacLow::GetAddress(), GetAmpduExist(), ns3::MacLow::GetBssid(), ns3::DcfState::GetCw(), ns3::RandomVariableStream::GetInteger(), ns3::WifiMacHeader::GetSequenceNumber(), ns3::CtrlBAckRequestHeader::GetStartingSequence(), ns3::GetTid(), ns3::WifiMacHeader::IsBlockAck(), ns3::WifiMacHeader::IsBlockAckReq(), ns3::WifiMacHeader::IsQosData(), m_backoffTrace, m_currentBar, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, m_cwTrace, ns3::DcaTxop::m_dcf, ns3::DcaTxop::m_low, ns3::DcaTxop::m_rng, ns3::DcaTxop::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.
|
virtual |
Event handler when a CTS timeout has occurred.
Reimplemented from ns3::DcaTxop.
Definition at line 420 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(), ns3::DcfState::GetCw(), ns3::RandomVariableStream::GetInteger(), ns3::GetTid(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::WifiMacHeader::IsQosData(), m_backoffTrace, m_currentBar, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, m_cwTrace, ns3::DcaTxop::m_dcf, ns3::DcaTxop::m_low, ns3::DcaTxop::m_rng, ns3::DcaTxop::m_stationManager, ns3::DcaTxop::m_txFailedCallback, ns3::DcaTxop::m_txMiddle, ns3::CtrlBAckRequestHeader::MustSendHtImmediateAck(), ns3::DcaTxop::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.
bool ns3::EdcaTxopN::NeedBarRetransmission | ( | void | ) |
Check if Block ACK Request should be re-transmitted.
Definition at line 777 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, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, and ns3::Packet::PeekHeader().
Referenced by MissedBlockAck().
|
virtual |
Check if the current packet should be fragmented.
Reimplemented from ns3::DcaTxop.
Definition at line 945 of file edca-txop-n.cc.
References ns3::MacLow::CalculateOverallTxTime(), ns3::WifiMacHeader::GetAddr1(), GetAmpduExist(), GetBaAgreementExists(), ns3::DcaTxop::GetLow(), ns3::MpduAggregator::GetMaxAmpduSize(), GetMpduAggregator(), ns3::Packet::GetSize(), ns3::GetTid(), ns3::DcaTxop::GetTxopLimit(), ns3::WifiRemoteStationManager::HasHeSupported(), ns3::WifiRemoteStationManager::HasHtSupported(), ns3::WifiRemoteStationManager::HasVhtSupported(), ns3::WifiMacHeader::IsData(), ns3::WifiMacHeader::IsQosData(), ns3::Time::IsStrictlyPositive(), ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_currentParams, ns3::DcaTxop::m_stationManager, ns3::WifiRemoteStationManager::NeedFragmentation(), and NS_LOG_FUNCTION.
Referenced by NotifyAccessGranted().
|
virtual |
Notify the EDCAF that access has been granted.
Reimplemented from ns3::DcaTxop.
Definition at line 160 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::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLowTransmissionParameters::EnableNextData(), ns3::WifiMacHeader::GetAddr1(), GetAmpduExist(), ns3::MacLow::GetBssid(), GetFragmentPacket(), GetNextFragmentSize(), ns3::MacTxMiddle::GetNextSequenceNumberFor(), ns3::WifiRemoteStationManager::GetQosSupported(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::GetSequenceControl(), ns3::Packet::GetSize(), ns3::WifiMacHeader::GetType(), 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, ns3::DcaTxop::m_currentHdr, m_currentIsFragmented, ns3::DcaTxop::m_currentPacket, m_currentPacketTimestamp, ns3::DcaTxop::m_currentParams, ns3::DcaTxop::m_fragmentNumber, m_isAccessRequestedForRts, ns3::DcaTxop::m_low, m_msduAggregator, m_qosBlockedDestinations, ns3::DcaTxop::m_queue, m_startTxop, ns3::DcaTxop::m_stationManager, ns3::DcaTxop::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.
|
virtual |
Notify the EDCAF that collision has occurred.
Reimplemented from ns3::DcaTxop.
Definition at line 411 of file edca-txop-n.cc.
References ns3::DcfState::GetCw(), ns3::RandomVariableStream::GetInteger(), m_backoffTrace, ns3::DcaTxop::m_dcf, ns3::DcaTxop::m_rng, NS_LOG_FUNCTION, RestartAccessIfNeeded(), and ns3::DcfState::StartBackoffNow().
|
virtual |
Notify the EDCAF that internal collision has occurred.
Reimplemented from ns3::DcaTxop.
Definition at line 321 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::Mac48Address::GetBroadcast(), ns3::DcfState::GetCw(), ns3::RandomVariableStream::GetInteger(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_backoffTrace, m_baManager, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_dcf, m_isAccessRequestedForRts, ns3::DcaTxop::m_queue, ns3::DcaTxop::m_rng, ns3::DcaTxop::m_stationManager, ns3::DcaTxop::m_txFailedCallback, ns3::DcaTxop::NeedDataRetransmission(), ns3::DcaTxop::NeedRtsRetransmission(), 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().
Ptr< const Packet > ns3::EdcaTxopN::PeekNextRetransmitPacket | ( | WifiMacHeader & | header, |
Mac48Address | recipient, | ||
uint8_t | tid, | ||
Time * | timestamp | ||
) |
Peek in retransmit queue and get the next packet without removing it from the queue.
header | Wi-Fi header. |
recipient | address of the recipient. |
tid | traffic ID. |
timestamp | the timestamp. |
Definition at line 148 of file edca-txop-n.cc.
References m_baManager.
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 142 of file edca-txop-n.cc.
References ns3::DcaTxop::m_txMiddle, and ns3::MacTxMiddle::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 1211 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::DcaTxop::m_queue, ns3::DcaTxop::m_stationManager, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::PrepareForQueue(), and StartAccessIfNeeded().
Referenced by SendDelbaFrame().
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.
tid | traffic ID of the packet to be removed. |
recipient | address of the recipient the packet was intended for. |
seqnumber | sequence number of the packet to be removed. |
Definition at line 154 of file edca-txop-n.cc.
References m_baManager.
|
virtual |
Restart access request if needed.
Reimplemented from ns3::DcaTxop.
Definition at line 700 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::MacLow::GetDataTxVector(), ns3::DcfState::IsAccessRequested(), m_baManager, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, m_currentPacketTimestamp, ns3::DcaTxop::m_dcf, m_isAccessRequestedForRts, ns3::DcaTxop::m_low, ns3::DcaTxop::m_manager, m_qosBlockedDestinations, ns3::DcaTxop::m_queue, ns3::DcaTxop::m_stationManager, ns3::WifiRemoteStationManager::NeedRts(), NS_LOG_FUNCTION, and ns3::DcfManager::RequestAccess().
Referenced by GotAck(), GotAddBaResponse(), GotBlockAck(), MissedAck(), MissedBlockAck(), MissedCts(), NotifyCollision(), and NotifyInternalCollision().
|
private |
Sends an ADDBA Request to establish a block ack agreement with sta addressed by recipient for tid tid.
recipient | address of the recipient. |
tid | traffic ID. |
startSeq | starting sequence. |
timeout | timeout value. |
immediateBAck | flag to indicate whether immediate block ack is used. |
Definition at line 1436 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::MacLowTransmissionParameters::DisableNextData(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLow::GetAddress(), ns3::MacTxMiddle::GetNextSequenceNumberFor(), m_baManager, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_currentParams, ns3::DcaTxop::m_low, ns3::DcaTxop::m_stationManager, ns3::DcaTxop::m_txMiddle, NS_LOG_DEBUG, NS_LOG_FUNCTION, 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::WifiMacHeader::SetType(), ns3::MacLow::StartTransmission(), ns3::WifiRemoteStationManager::UpdateFragmentationThreshold(), and ns3::WIFI_MAC_MGT_ACTION.
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 | the block ack request. |
Definition at line 1363 of file edca-txop-n.cc.
References ns3::Bar::bar, ns3::BASIC_BLOCK_ACK, ns3::COMPRESSED_BLOCK_ACK, ns3::MacLowTransmissionParameters::DisableNextData(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLowTransmissionParameters::EnableBasicBlockAck(), ns3::MacLowTransmissionParameters::EnableCompressedBlockAck(), ns3::MacLow::GetAddress(), ns3::MacLow::GetBssid(), ns3::Bar::immediate, m_blockAckType, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_currentParams, ns3::DcaTxop::m_low, 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(), and StartNextPacket().
void ns3::EdcaTxopN::SendDelbaFrame | ( | Mac48Address | addr, |
uint8_t | tid, | ||
bool | byOriginator | ||
) |
Sends DELBA frame to cancel a block ack agreement with sta addressed by addr for tid tid.
addr | address of the recipient. |
tid | traffic ID. |
byOriginator | flag to indicate whether this is set by the originator. |
Definition at line 1497 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::DestroyBlockAckAgreement(), ns3::MacLow::GetAddress(), m_baManager, ns3::DcaTxop::m_low, NS_LOG_FUNCTION, PushFront(), ns3::WifiActionHeader::SetAction(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::MgtDelBaHeader::SetByOriginator(), ns3::MgtDelBaHeader::SetByRecipient(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::MgtDelBaHeader::SetTid(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_MGT_ACTION.
Referenced by CompleteConfig(), ns3::MacLow::CreateBlockAckAgreement(), and ns3::MacLow::ResetBlockAckInactivityTimerIfNeeded().
void ns3::EdcaTxopN::SetAccessCategory | ( | AcIndex | ac | ) |
Set the access category of this EDCAF.
ac | access category. |
Definition at line 1158 of file edca-txop-n.cc.
References m_ac, and NS_LOG_FUNCTION.
Referenced by AmpduAggregationTest::DoRun(), and TwoLevelAggregationTest::DoRun().
void ns3::EdcaTxopN::SetAmpduExist | ( | Mac48Address | dest, |
bool | enableAmpdu | ||
) |
Set indication whether A-MPDU is used to transmit data to a peer station.
dest | address of peer station. |
enableAmpdu | flag whether A-MPDU is used or not. |
Definition at line 1303 of file edca-txop-n.cc.
References m_aMpduEnabled, and NS_LOG_FUNCTION.
void ns3::EdcaTxopN::SetBlockAckInactivityTimeout | ( | uint16_t | timeout | ) |
Set the Block Ack inactivity timeout.
timeout | the Block Ack inactivity timeout. |
Definition at line 1422 of file edca-txop-n.cc.
References m_blockAckInactivityTimeout, NS_LOG_FUNCTION, and timeout.
Referenced by ns3::RegularWifiMac::SetBeBlockAckInactivityTimeout(), ns3::RegularWifiMac::SetBkBlockAckInactivityTimeout(), 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 | block ack threshold value. |
Definition at line 1414 of file edca-txop-n.cc.
References m_baManager, m_blockAckThreshold, and NS_LOG_FUNCTION.
Referenced by ns3::RegularWifiMac::SetBeBlockAckThreshold(), ns3::RegularWifiMac::SetBkBlockAckThreshold(), ns3::RegularWifiMac::SetViBlockAckThreshold(), and ns3::RegularWifiMac::SetVoBlockAckThreshold().
void ns3::EdcaTxopN::SetMpduAggregator | ( | const Ptr< MpduAggregator > | aggr | ) |
Set the aggregator used to construct A-MPDU subframes.
aggr | pointer to the MPDU aggregator. |
Definition at line 1204 of file edca-txop-n.cc.
References m_mpduAggregator, and NS_LOG_FUNCTION.
Referenced by AmpduAggregationTest::DoRun(), and TwoLevelAggregationTest::DoRun().
void ns3::EdcaTxopN::SetMsduAggregator | ( | const Ptr< MsduAggregator > | aggr | ) |
Set the aggregator used to construct A-MSDU subframes.
aggr | pointer to the MSDU aggregator. |
Definition at line 1197 of file edca-txop-n.cc.
References m_msduAggregator, and NS_LOG_FUNCTION.
Referenced by TwoLevelAggregationTest::DoRun().
void ns3::EdcaTxopN::SetTypeOfStation | ( | TypeOfStation | type | ) |
Set type of station with the given type.
type | the type of station. |
Definition at line 124 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 1343 of file edca-txop-n.cc.
References ns3::WifiMacHeader::ADDR1, ns3::WifiMacHeader::GetAddr1(), ns3::MpduAggregator::GetMaxAmpduSize(), ns3::MacTxMiddle::GetNextSeqNumberByTidAndAddress(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiRemoteStationManager::HasHeSupported(), ns3::WifiRemoteStationManager::HasVhtSupported(), m_blockAckInactivityTimeout, m_blockAckThreshold, ns3::DcaTxop::m_currentHdr, m_mpduAggregator, ns3::DcaTxop::m_queue, ns3::DcaTxop::m_stationManager, ns3::DcaTxop::m_txMiddle, NS_LOG_FUNCTION, and SendAddBaRequest().
Referenced by NotifyAccessGranted().
|
virtual |
Set WifiRemoteStationsManager this EdcaTxopN is associated to.
remoteManager | WifiRemoteStationManager. |
Reimplemented from ns3::DcaTxop.
Definition at line 116 of file edca-txop-n.cc.
References m_baManager, ns3::DcaTxop::m_stationManager, NS_LOG_FUNCTION, and ns3::DcaTxop::SetWifiRemoteStationManager().
Referenced by AmpduAggregationTest::DoRun(), and TwoLevelAggregationTest::DoRun().
|
virtual |
Request access from DCF manager if needed.
Reimplemented from ns3::DcaTxop.
Definition at line 741 of file edca-txop-n.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::MacLow::GetDataTxVector(), ns3::DcfState::IsAccessRequested(), m_baManager, ns3::DcaTxop::m_currentPacket, m_currentPacketTimestamp, ns3::DcaTxop::m_dcf, m_isAccessRequestedForRts, ns3::DcaTxop::m_low, ns3::DcaTxop::m_manager, m_qosBlockedDestinations, ns3::DcaTxop::m_queue, ns3::DcaTxop::m_stationManager, ns3::WifiRemoteStationManager::NeedRts(), and ns3::DcfManager::RequestAccess().
Referenced by EndTxNoAck(), and PushFront().
|
virtual |
Start transmission for the next packet if allowed by the TxopLimit.
Reimplemented from ns3::DcaTxop.
Definition at line 804 of file edca-txop-n.cc.
References ns3::WifiMacHeader::ADDR1, CompleteTx(), ns3::MacLowTransmissionParameters::DisableAck(), ns3::MacLowTransmissionParameters::DisableNextData(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::WifiMacHeader::GetAddr1(), GetAmpduExist(), ns3::DcaTxop::GetLow(), ns3::MacTxMiddle::GetNextSequenceNumberFor(), ns3::WifiMacHeader::GetQosTid(), ns3::DcaTxop::GetTxopLimit(), ns3::WifiMacHeader::IsQosBlockAck(), ns3::WifiMacHeader::IsQosData(), ns3::Time::IsStrictlyPositive(), ns3::Time::IsZero(), m_baManager, m_currentBar, ns3::DcaTxop::m_currentHdr, ns3::DcaTxop::m_currentPacket, ns3::DcaTxop::m_currentParams, ns3::DcaTxop::m_fragmentNumber, ns3::DcaTxop::m_queue, m_startTxop, ns3::DcaTxop::m_stationManager, ns3::DcaTxop::m_txMiddle, m_txopTrace, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, SendBlockAckRequest(), ns3::WifiMacHeader::SetFragmentNumber(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetSequenceNumber(), ns3::MacLow::StartTransmission(), ns3::WifiRemoteStationManager::UpdateFragmentationThreshold(), and VerifyBlockAck().
|
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 1276 of file edca-txop-n.cc.
References ns3::WifiMacHeader::BLOCK_ACK, ns3::OriginatorBlockAckAgreement::ESTABLISHED, ns3::WifiMacHeader::GetAddr1(), ns3::MpduAggregator::GetMaxAmpduSize(), GetMpduAggregator(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::GetSequenceNumber(), ns3::OriginatorBlockAckAgreement::INACTIVE, m_baManager, ns3::DcaTxop::m_currentHdr, NS_LOG_FUNCTION, and ns3::WifiMacHeader::SetQosAckPolicy().
Referenced by NotifyAccessGranted(), and StartNextPacket().
|
friend |
Allow test cases to access private members.
Definition at line 72 of file edca-txop-n.h.
|
friend |
allow AggregationCapableTransmissionListener class access
Definition at line 404 of file edca-txop-n.h.
|
private |
the access category
Definition at line 519 of file edca-txop-n.h.
Referenced by CompleteConfig(), and SetAccessCategory().
std::map<Mac48Address, bool> ns3::EdcaTxopN::m_aMpduEnabled |
list containing flags whether A-MPDU is enabled for a given destination address
Definition at line 74 of file edca-txop-n.h.
Referenced by GetAmpduExist(), and SetAmpduExist().
|
private |
backoff trace value
Definition at line 534 of file edca-txop-n.h.
Referenced by DoInitialize(), EndTxNoAck(), GetTypeId(), GotAck(), GotBlockAck(), MissedAck(), MissedBlockAck(), MissedCts(), NotifyCollision(), and NotifyInternalCollision().
|
private |
the Block ACK manager
Definition at line 524 of file edca-txop-n.h.
Referenced by CompleteAmpduTransfer(), CompleteConfig(), CompleteMpduTx(), CompleteTx(), DoDispose(), AmpduAggregationTest::DoRun(), EdcaTxopN(), GetBaAgreementExists(), GotAck(), GotAddBaResponse(), GotBlockAck(), GotDelBaFrame(), NeedBarRetransmission(), NotifyAccessGranted(), NotifyInternalCollision(), PeekNextRetransmitPacket(), RemoveRetransmitPacket(), RestartAccessIfNeeded(), SendAddBaRequest(), SendDelbaFrame(), SetBlockAckThreshold(), SetWifiRemoteStationManager(), StartAccessIfNeeded(), StartNextPacket(), and VerifyBlockAck().
|
private |
the Block ACK inactivity timeout
Definition at line 528 of file edca-txop-n.h.
Referenced by SetBlockAckInactivityTimeout(), and SetupBlockAckIfNeeded().
|
private |
the Block ACK threshold
Definition at line 525 of file edca-txop-n.h.
Referenced by GetBlockAckThreshold(), NotifyAccessGranted(), SetBlockAckThreshold(), and SetupBlockAckIfNeeded().
|
private |
the Block ACK type
Definition at line 526 of file edca-txop-n.h.
Referenced by EdcaTxopN(), NotifyAccessGranted(), and SendBlockAckRequest().
|
private |
the current BAR
Definition at line 529 of file edca-txop-n.h.
Referenced by MissedAck(), MissedBlockAck(), MissedCts(), NotifyAccessGranted(), and StartNextPacket().
|
private |
flag whether current packet is fragmented
Definition at line 532 of file edca-txop-n.h.
Referenced by GotAck(), and NotifyAccessGranted().
|
private |
the current packet timestamp
Definition at line 527 of file edca-txop-n.h.
Referenced by CompleteTx(), NotifyAccessGranted(), RestartAccessIfNeeded(), and StartAccessIfNeeded().
|
private |
CW trace value.
Definition at line 535 of file edca-txop-n.h.
Referenced by DoInitialize(), EndTxNoAck(), GetTypeId(), GotAck(), GotBlockAck(), MissedAck(), MissedBlockAck(), and MissedCts().
|
private |
flag whether access is requested to transmit a RTS frame
Definition at line 531 of file edca-txop-n.h.
Referenced by NotifyAccessGranted(), NotifyInternalCollision(), RestartAccessIfNeeded(), and StartAccessIfNeeded().
|
private |
A-MPDU aggregator.
Definition at line 521 of file edca-txop-n.h.
Referenced by DoDispose(), GetMpduAggregator(), SetMpduAggregator(), and SetupBlockAckIfNeeded().
|
private |
A-MSDU aggregator.
Definition at line 520 of file edca-txop-n.h.
Referenced by DoDispose(), GetMsduAggregator(), NotifyAccessGranted(), and SetMsduAggregator().
|
private |
QOS blocked destinations.
Definition at line 523 of file edca-txop-n.h.
Referenced by DoDispose(), EdcaTxopN(), NotifyAccessGranted(), RestartAccessIfNeeded(), and StartAccessIfNeeded().
|
private |
the start TXOP time
Definition at line 530 of file edca-txop-n.h.
Referenced by EndTxNoAck(), GetTxopRemaining(), GotAck(), GotBlockAck(), NotifyAccessGranted(), and StartNextPacket().
|
private |
TXOP trace callback.
Definition at line 536 of file edca-txop-n.h.
Referenced by EndTxNoAck(), GetTypeId(), GotAck(), GotBlockAck(), and StartNextPacket().
|
private |
the type of station
Definition at line 522 of file edca-txop-n.h.
Referenced by GetTypeOfStation(), MapDestAddressForAggregation(), MapSrcAddressForAggregation(), and SetTypeOfStation().