Handle packet fragmentation and retransmissions for data and management frames. More...
#include "txop.h"
Public Types | |
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... | |
Public Member Functions | |
Txop () | |
virtual | ~Txop () |
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... | |
bool | CanStartNextPolling (void) const |
Check if the next PCF transmission can fit in the remaining CFP duration. More... | |
virtual void | EndTxNoAck (void) |
Event handler when a transmission that does not require an Ack has completed. More... | |
uint8_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 Txop. 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... | |
Time | GetTxopLimit (void) const |
Return the TXOP limit. More... | |
virtual Time | GetTxopRemaining (void) const |
Return the remaining duration in the current TXOP. More... | |
Ptr< WifiMacQueue > | GetWifiMacQueue () const |
Return the packet queue associated with this Txop. More... | |
virtual void | GotAck (void) |
Event handler when an Ack is received. More... | |
virtual void | GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address recipient, double rxSnr, double dataSnr, WifiTxVector dataTxVector) |
Event handler when a BlockAck is received. More... | |
void | GotCfEnd (void) |
Event handler when a CF-END frame is received. More... | |
virtual bool | IsAccessRequested (void) const |
virtual bool | IsQosTxop () const |
Check for QoS TXOP. More... | |
virtual void | MissedAck (void) |
Event handler when an Ack is missed. More... | |
virtual void | MissedBlockAck (uint8_t nMpdus) |
Event handler when a BlockAck timeout has occurred. More... | |
void | MissedCfPollResponse (bool expectedCfAck) |
Event handler when a response to a CF-POLL frame is missed. More... | |
virtual void | MissedCts (void) |
Event handler when a CTS timeout has occurred. 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< Packet > packet, const WifiMacHeader &hdr) |
void | SendCfFrame (WifiMacType frameType, Mac48Address addr) |
Sends CF frame to STA with address addr. More... | |
void | SetAifsn (uint8_t aifsn) |
Set the number of slots that make up an AIFS. More... | |
void | SetChannelAccessManager (const Ptr< ChannelAccessManager > manager) |
Set ChannelAccessManager this Txop is associated to. More... | |
void | SetMacLow (const Ptr< MacLow > low) |
Set MacLow associated with this Txop. 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 Txop is associated to. More... | |
void | SetTxOkCallback (TxOk callback) |
void | SetTxopLimit (Time txopLimit) |
Set the TXOP limit. More... | |
virtual void | SetWifiRemoteStationManager (const Ptr< WifiRemoteStationManager > remoteManager) |
Set WifiRemoteStationsManager this Txop is associated to. More... | |
void | StartBackoffNow (uint32_t nSlots) |
virtual void | StartNextFragment (void) |
Start transmission for the next fragment. More... | |
virtual void | StartNextPacket (void) |
Start transmission for the next packet if allowed by the TxopLimit. More... | |
virtual void | TerminateTxop (void) |
Update backoff and restart access if needed. 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... | |
template<> | |
Ptr< Object > | GetObject () const |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
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) |
Register this type. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Protected Member Functions | |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
virtual void | DoInitialize (void) |
Initialize() implementation. More... | |
virtual void | GenerateBackoff (void) |
Generate a new backoff now. More... | |
uint32_t | GetBackoffSlots (void) const |
Return the current number of backoff slots. More... | |
Time | GetBackoffStart (void) const |
Return the time when the backoff procedure started. More... | |
uint32_t | GetCw (void) const |
virtual uint32_t | GetFragmentOffset (void) const |
Calculate the offset for the current fragment. More... | |
virtual Ptr< Packet > | GetFragmentPacket (WifiMacHeader *hdr) |
Get the next fragment from the packet with appropriate Wifi header for the fragment. More... | |
virtual uint32_t | GetFragmentSize (void) const |
Calculate the size of the current fragment. More... | |
virtual uint32_t | GetNextFragmentSize (void) const |
Calculate the size of the next fragment. More... | |
virtual bool | HasFramesToTransmit (void) |
Check if the Txop has frames to transmit. More... | |
virtual bool | IsLastFragment (void) const |
Check if the current fragment is the last fragment. More... | |
bool | NeedDataRetransmission (Ptr< const Packet > packet, const WifiMacHeader &hdr) |
Check if Data should be re-transmitted if Ack was missed. More... | |
virtual 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... | |
void | NextFragment (void) |
Continue to the next fragment. More... | |
virtual void | NotifyAccessGranted (void) |
Notify the Txop that access has been granted. More... | |
virtual void | NotifyAccessRequested (void) |
Notify that access request has been received. More... | |
virtual void | NotifyInternalCollision (void) |
Notify the Txop that internal collision has occurred. More... | |
void | ResetCw (void) |
Update the value of the CW variable to take into account a transmission success or a transmission abort (stop transmission of a packet after the maximum number of retransmissions has been reached). More... | |
virtual void | RestartAccessIfNeeded (void) |
Restart access request if needed. More... | |
virtual void | StartAccessIfNeeded (void) |
Request access from Txop if needed. More... | |
void | TxDroppedPacket (Ptr< const WifiMacQueueItem > item) |
Pass the packet included in the wifi MAC queue item to the packet dropped callback. More... | |
void | UpdateBackoffSlotsNow (uint32_t nSlots, Time backoffUpdateBound) |
Update backoff slots that nSlots has passed. More... | |
void | UpdateFailedCw (void) |
Update the value of the CW variable to take into account a transmission failure. 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... | |
Protected Attributes | |
bool | m_accessRequested |
flag whether channel access is already requested More... | |
uint8_t | m_aifsn |
the AIFSN More... | |
uint32_t | m_backoff |
the current backoff More... | |
uint32_t | m_backoffSlots |
the number of backoff slots More... | |
Time | m_backoffStart |
the backoffStart variable is used to keep track of the time at which a backoff was started or the time at which the backoff counter was last updated. More... | |
TracedCallback< uint32_t > | m_backoffTrace |
backoff trace value More... | |
Ptr< ChannelAccessManager > | m_channelAccessManager |
the channel access manager More... | |
WifiMacHeader | m_currentHdr |
the current header More... | |
Ptr< const Packet > | m_currentPacket |
the current packet More... | |
MacLowTransmissionParameters | m_currentParams |
current transmission parameters More... | |
uint32_t | m_cw |
the current contention window More... | |
uint32_t | m_cwMax |
the maximum contention window More... | |
uint32_t | m_cwMin |
the minimum contention window More... | |
TracedValue< uint32_t > | m_cwTrace |
CW trace value. More... | |
uint8_t | m_fragmentNumber |
the fragment number More... | |
Ptr< MacLow > | m_low |
the MacLow 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... | |
Time | m_txopLimit |
the TXOP limit time More... | |
Friends | |
class | ChannelAccessManager |
< ChannelAccessManager associated class More... | |
class | MacLowTransmissionListener |
allow MacLowTransmissionListener class access More... | |
Additional Inherited Members | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
Handle packet fragmentation and retransmissions for data and management frames.
This class implements the packet fragmentation and retransmission policy for data and management frames. It uses the ns3::MacLow and ns3::ChannelAccessManager helper classes to respectively send packets and decide when to send them. Packets are stored in a ns3::WifiMacQueue until they can be sent.
The policy currently implemented uses a simple fragmentation threshold: any packet bigger than this threshold is fragmented in fragments whose size is smaller than the threshold.
The retransmission policy is also very simple: every packet is retransmitted until it is either successfully transmitted or it has been retransmitted up until the SSRC or SLRC thresholds.
The RTS/CTS policy is similar to the fragmentation policy: when a packet is bigger than a threshold, the RTS/CTS protocol is used.
ns3::Txop is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 280 bytes (on a 64-bit architecture).
typedef Callback<void, Ptr<const Packet> > ns3::Txop::TxDropped |
typedef Callback<void, const WifiMacHeader&> ns3::Txop::TxFailed |
typedef Callback<void, const WifiMacHeader&> ns3::Txop::TxOk |
ns3::Txop::Txop | ( | ) |
Definition at line 86 of file txop.cc.
References m_queue, m_rng, and NS_LOG_FUNCTION.
|
virtual |
Definition at line 102 of file txop.cc.
References NS_LOG_FUNCTION.
int64_t ns3::Txop::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 332 of file txop.cc.
References m_rng, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
Referenced by ns3::MeshHelper::AssignStreams(), ns3::WaveHelper::AssignStreams(), ns3::WifiHelper::AssignStreams(), and AssignWifiRandomStreams().
|
virtual |
Cancel the transmission.
Definition at line 760 of file txop.cc.
References NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ns3::MacLow::CancelAllEvents().
bool ns3::Txop::CanStartNextPolling | ( | void | ) | const |
Check if the next PCF transmission can fit in the remaining CFP duration.
Definition at line 855 of file txop.cc.
References GetLow(), ns3::ChannelAccessManager::IsBusy(), and m_channelAccessManager.
Referenced by ns3::ApWifiMac::SendNextCfFrame().
|
protectedvirtual |
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 overridden 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.
Reimplemented in ns3::QosTxop.
Definition at line 108 of file txop.cc.
References m_channelAccessManager, m_low, m_queue, m_rng, m_stationManager, m_txMiddle, and NS_LOG_FUNCTION.
Referenced by ns3::QosTxop::DoDispose().
|
protectedvirtual |
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.
Reimplemented in ns3::QosTxop.
Definition at line 372 of file txop.cc.
References GenerateBackoff(), GetCw(), m_cwTrace, NS_LOG_FUNCTION, and ResetCw().
|
virtual |
Event handler when a transmission that does not require an Ack has completed.
Reimplemented in ns3::QosTxop.
Definition at line 767 of file txop.cc.
References GenerateBackoff(), GetCw(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_currentHdr, m_currentPacket, m_cwTrace, m_txOkCallback, NS_LOG_DEBUG, NS_LOG_FUNCTION, ResetCw(), and StartAccessIfNeeded().
Referenced by ns3::MacLow::EndTxNoAck().
|
protectedvirtual |
Generate a new backoff now.
Definition at line 553 of file txop.cc.
References GetCw(), ns3::UniformRandomVariable::GetInteger(), m_backoff, m_backoffTrace, m_rng, NS_LOG_FUNCTION, and StartBackoffNow().
Referenced by ns3::QosTxop::AddBaResponseTimeout(), DoInitialize(), ns3::QosTxop::DoInitialize(), EndTxNoAck(), GotAck(), ns3::QosTxop::MissedAck(), MissedAck(), ns3::QosTxop::MissedBlockAck(), MissedCts(), ns3::QosTxop::NotifyInternalCollision(), NotifyInternalCollision(), ns3::QosTxop::NotifyMissedCts(), Queue(), and ns3::QosTxop::TerminateTxop().
uint8_t ns3::Txop::GetAifsn | ( | void | ) | const |
Return the number of slots that make up an AIFS.
Definition at line 297 of file txop.cc.
References m_aifsn.
Referenced by ns3::ChannelAccessManager::GetBackoffStartFor(), ns3::ApWifiMac::GetEdcaParameterSet(), GetTypeId(), ns3::ChannelAccessManager::NeedBackoffUponAccess(), and ns3::ChannelAccessManager::RequestAccess().
|
protected |
Return the current number of backoff slots.
Definition at line 233 of file txop.cc.
References m_backoffSlots.
Referenced by ns3::ChannelAccessManager::DoGrantDcfAccess(), ns3::ChannelAccessManager::GetBackoffEndFor(), and ns3::ChannelAccessManager::NeedBackoffUponAccess().
|
protected |
Return the time when the backoff procedure started.
Definition at line 239 of file txop.cc.
References m_backoffStart.
Referenced by ns3::ChannelAccessManager::GetBackoffStartFor(), and ns3::ChannelAccessManager::RequestAccess().
|
protected |
Definition at line 212 of file txop.cc.
References m_cw.
Referenced by DoInitialize(), ns3::QosTxop::DoInitialize(), EndTxNoAck(), GenerateBackoff(), GotAck(), ns3::QosTxop::MissedAck(), MissedAck(), ns3::QosTxop::MissedBlockAck(), MissedCts(), ns3::QosTxop::NotifyMissedCts(), SetMaxCw(), and SetMinCw().
|
protectedvirtual |
Calculate the offset for the current fragment.
Reimplemented in ns3::QosTxop.
Definition at line 434 of file txop.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetFragmentOffset(), m_currentHdr, m_currentPacket, m_fragmentNumber, m_stationManager, and NS_LOG_FUNCTION.
Referenced by GetFragmentPacket().
|
protectedvirtual |
Get the next fragment from the packet with appropriate Wifi header for the fragment.
hdr | Wi-Fi header. |
Reimplemented in ns3::QosTxop.
Definition at line 442 of file txop.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().
|
protectedvirtual |
Calculate the size of the current fragment.
Reimplemented in ns3::QosTxop.
Definition at line 410 of file txop.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStationManager::GetFragmentSize(), m_currentHdr, m_currentPacket, m_fragmentNumber, m_stationManager, and NS_LOG_FUNCTION.
Referenced by GetFragmentPacket().
Return the MacLow associated with this Txop.
Definition at line 366 of file txop.cc.
References m_low.
Referenced by CanStartNextPolling(), AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), PreservePacketsInAmpdus::DoRun(), HeAggregationTest::DoRunSubTest(), ns3::MpduAggregator::GetMaxAmpduSize(), ns3::MsduAggregator::GetMaxAmsduSize(), ns3::QosTxop::GetTxopFragmentSize(), ns3::ChannelAccessManager::NeedBackoffUponAccess(), ns3::QosTxop::NeedFragmentation(), NotifyAccessGranted(), ns3::QosTxop::SetupBlockAckIfNeeded(), StartNextFragment(), and ns3::QosTxop::StartNextPacket().
uint32_t ns3::Txop::GetMaxCw | ( | void | ) | const |
Return the maximum contention window size.
Definition at line 291 of file txop.cc.
References m_cwMax.
Referenced by ns3::ApWifiMac::GetEdcaParameterSet(), and GetTypeId().
uint32_t ns3::Txop::GetMinCw | ( | void | ) | const |
Return the minimum contention window size.
Definition at line 285 of file txop.cc.
References m_cwMin.
Referenced by ns3::ApWifiMac::GetEdcaParameterSet(), and GetTypeId().
|
protectedvirtual |
Calculate the size of the next fragment.
Reimplemented in ns3::QosTxop.
Definition at line 426 of file txop.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().
Time ns3::Txop::GetTxopLimit | ( | void | ) | const |
Return the TXOP limit.
Definition at line 303 of file txop.cc.
References m_txopLimit.
Referenced by TwoLevelAggregationTest::DoRun(), ns3::ApWifiMac::GetEdcaParameterSet(), ns3::QosTxop::GetTxopFragmentSize(), ns3::QosTxop::GetTxopRemaining(), GetTypeId(), ns3::QosTxop::IsTxopFragmentation(), ns3::QosTxop::NeedFragmentation(), ns3::QosTxop::NotifyAccessGranted(), ns3::MacLow::ReceiveOk(), ns3::MacLow::StartDataTxTimers(), ns3::QosTxop::StartNextPacket(), ns3::MacLow::StartTransmission(), ns3::QosTxop::TerminateTxop(), and ns3::ConstantWifiAckPolicySelector::UpdateTxParams().
|
virtual |
Return the remaining duration in the current TXOP.
Reimplemented in ns3::QosTxop.
Definition at line 885 of file txop.cc.
References NS_LOG_WARN, and ns3::Seconds().
Referenced by ns3::MacLow::ReceiveOk(), ns3::MacLow::StartDataTxTimers(), and ns3::MacLow::StartTransmission().
|
static |
Get the type ID.
Definition at line 44 of file txop.cc.
References GetAifsn(), GetMaxCw(), GetMinCw(), GetTxopLimit(), GetWifiMacQueue(), m_backoffTrace, m_cwTrace, ns3::MakePointerAccessor(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), ns3::MilliSeconds(), SetAifsn(), SetMaxCw(), SetMinCw(), ns3::TypeId::SetParent(), and SetTxopLimit().
Ptr< WifiMacQueue > ns3::Txop::GetWifiMacQueue | ( | ) | const |
Return the packet queue associated with this Txop.
Definition at line 179 of file txop.cc.
References m_queue, and NS_LOG_FUNCTION.
Referenced by AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), HeAggregationTest::DoRunSubTest(), and GetTypeId().
|
virtual |
Event handler when an Ack is received.
Reimplemented in ns3::QosTxop.
Definition at line 638 of file txop.cc.
References GenerateBackoff(), GetCw(), ns3::Packet::GetSize(), IsLastFragment(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_currentHdr, m_currentPacket, m_cwTrace, m_txOkCallback, NeedFragmentation(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ResetCw(), and RestartAccessIfNeeded().
Referenced by ns3::MacLow::ReceiveOk().
|
virtual |
Event handler when a BlockAck is received.
blockAck | BlockAck header. |
recipient | address of the recipient. |
rxSnr | SNR of the BlockAck itself in linear scale. |
dataSnr | reported data SNR from the peer in linear scale. |
dataTxVector | TXVECTOR used to send the Data. |
Reimplemented in ns3::QosTxop.
Definition at line 873 of file txop.cc.
References NS_LOG_WARN.
Referenced by ns3::MacLow::ReceiveOk().
void ns3::Txop::GotCfEnd | ( | void | ) |
Event handler when a CF-END frame is received.
Definition at line 698 of file txop.cc.
References m_currentPacket, NS_LOG_FUNCTION, RestartAccessIfNeeded(), and StartAccessIfNeeded().
Referenced by ns3::MacLow::ReceiveOk().
|
protectedvirtual |
Check if the Txop has frames to transmit.
Reimplemented in ns3::QosTxop.
Definition at line 309 of file txop.cc.
References m_currentPacket, m_queue, and NS_LOG_FUNCTION.
Referenced by ns3::ChannelAccessManager::NeedBackoffUponAccess().
|
virtual |
Definition at line 463 of file txop.cc.
References m_accessRequested.
Referenced by ns3::ChannelAccessManager::DoGrantDcfAccess(), ns3::ChannelAccessManager::RequestAccess(), ns3::QosTxop::RestartAccessIfNeeded(), RestartAccessIfNeeded(), ns3::QosTxop::StartAccessIfNeeded(), and StartAccessIfNeeded().
|
protectedvirtual |
Check if the current fragment is the last fragment.
Reimplemented in ns3::QosTxop.
Definition at line 418 of file txop.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().
|
virtual |
Check for QoS TXOP.
Reimplemented in ns3::QosTxop.
Definition at line 861 of file txop.cc.
Referenced by ns3::ChannelAccessManager::NeedBackoffUponAccess(), ns3::MacLow::ReceiveOk(), ns3::ChannelAccessManager::RequestAccess(), and ns3::MacLow::StartDataTxTimers().
|
virtual |
Event handler when an Ack is missed.
Reimplemented in ns3::QosTxop.
Definition at line 666 of file txop.cc.
References GenerateBackoff(), ns3::WifiMacHeader::GetAddr1(), GetCw(), ns3::Packet::GetSize(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_currentHdr, m_currentPacket, m_cwTrace, m_stationManager, m_txFailedCallback, NeedDataRetransmission(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::ReportDataFailed(), ns3::WifiRemoteStationManager::ReportFinalDataFailed(), ResetCw(), RestartAccessIfNeeded(), ns3::WifiMacHeader::SetRetry(), and UpdateFailedCw().
Referenced by ns3::MacLow::NormalAckTimeout(), ns3::MacLow::ReceiveError(), and ns3::MacLow::ReceiveOk().
|
virtual |
Event handler when a BlockAck timeout has occurred.
nMpdus | the number of MPDUs sent in the A-MPDU transmission that results in a BlockAck timeout. |
Reimplemented in ns3::QosTxop.
Definition at line 879 of file txop.cc.
References NS_LOG_WARN.
Referenced by ns3::MacLow::BlockAckTimeout().
void ns3::Txop::MissedCfPollResponse | ( | bool | expectedCfAck | ) |
Event handler when a response to a CF-POLL frame is missed.
expectedCfAck | flag to indicate whether a CF-Ack was expected in the response. |
Definition at line 712 of file txop.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::Packet::GetSize(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_currentHdr, m_currentPacket, m_stationManager, m_txFailedCallback, NeedDataRetransmission(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::ReportFinalDataFailed(), and ns3::WifiMacHeader::SetRetry().
Referenced by ns3::MacLow::CfPollTimeout(), and ns3::MacLow::ReceiveError().
|
virtual |
Event handler when a CTS timeout has occurred.
Definition at line 611 of file txop.cc.
References GenerateBackoff(), ns3::WifiMacHeader::GetAddr1(), GetCw(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_currentHdr, m_currentPacket, m_cwTrace, m_stationManager, m_txFailedCallback, NeedRtsRetransmission(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::ReportFinalRtsFailed(), ResetCw(), RestartAccessIfNeeded(), and UpdateFailedCw().
Referenced by ns3::MacLow::CtsTimeout().
|
protected |
Check if Data should be re-transmitted if Ack was missed.
packet | current packet being transmitted. |
hdr | current header being transmitted. |
Definition at line 388 of file txop.cc.
References ns3::WifiMacHeader::GetAddr1(), m_stationManager, ns3::WifiRemoteStationManager::NeedRetransmission(), and NS_LOG_FUNCTION.
Referenced by ns3::QosTxop::MissedAck(), MissedAck(), ns3::QosTxop::MissedBlockAck(), MissedCfPollResponse(), ns3::QosTxop::NotifyInternalCollision(), and SendCfFrame().
|
protectedvirtual |
Check if the current packet should be fragmented.
Reimplemented in ns3::QosTxop.
Definition at line 395 of file txop.cc.
References ns3::WifiMacHeader::GetAddr1(), m_currentHdr, m_currentPacket, m_stationManager, ns3::WifiRemoteStationManager::NeedFragmentation(), and NS_LOG_FUNCTION.
Referenced by GotAck(), and NotifyAccessGranted().
|
protected |
Check if RTS should be re-transmitted if CTS was missed.
packet | current packet being transmitted. |
hdr | current header being transmitted. |
Definition at line 381 of file txop.cc.
References ns3::WifiMacHeader::GetAddr1(), m_stationManager, ns3::WifiRemoteStationManager::NeedRetransmission(), and NS_LOG_FUNCTION.
Referenced by MissedCts(), ns3::QosTxop::NotifyInternalCollision(), and ns3::QosTxop::NotifyMissedCts().
|
protected |
Continue to the next fragment.
This method simply increments the internal variable that keep track of the current fragment number.
Definition at line 403 of file txop.cc.
References m_fragmentNumber, and NS_LOG_FUNCTION.
Referenced by StartNextFragment().
|
protectedvirtual |
Notify the Txop that access has been granted.
Reimplemented in ns3::QosTxop.
Definition at line 476 of file txop.cc.
References ns3::MacLowTransmissionParameters::DisableAck(), ns3::MacLowTransmissionParameters::DisableNextData(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLowTransmissionParameters::EnableNextData(), ns3::MacLowTransmissionParameters::EnableRts(), ns3::WifiMacHeader::GetAddr1(), GetFragmentPacket(), GetLow(), GetNextFragmentSize(), ns3::WifiMacHeader::GetSequenceControl(), ns3::Packet::GetSize(), ns3::WifiMacHeader::GetSize(), ns3::Mac48Address::IsGroup(), IsLastFragment(), m_accessRequested, m_currentHdr, m_currentPacket, m_currentParams, m_fragmentNumber, m_low, m_queue, m_stationManager, m_txMiddle, NeedFragmentation(), ns3::WifiRemoteStationManager::NeedRts(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiMacHeader::SetFragmentNumber(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetSequenceNumber(), ns3::WifiRemoteStationManager::UpdateFragmentationThreshold(), and ns3::WIFI_MAC_FCS_LENGTH.
Referenced by ns3::ChannelAccessManager::DoGrantDcfAccess(), and ns3::ChannelAccessManager::DoGrantPcfAccess().
|
protectedvirtual |
Notify that access request has been received.
Definition at line 469 of file txop.cc.
References m_accessRequested, and NS_LOG_FUNCTION.
Referenced by ns3::ChannelAccessManager::RequestAccess().
|
virtual |
When a channel switching occurs, enqueued packets are removed.
Definition at line 570 of file txop.cc.
References m_currentPacket, m_queue, and NS_LOG_FUNCTION.
Referenced by ns3::OcbWifiMac::CancleTx().
|
protectedvirtual |
Notify the Txop that internal collision has occurred.
Reimplemented in ns3::QosTxop.
Definition at line 562 of file txop.cc.
References GenerateBackoff(), NS_LOG_FUNCTION, and RestartAccessIfNeeded().
|
virtual |
When off operation occurs, the queue gets cleaned up.
Definition at line 589 of file txop.cc.
References m_currentPacket, m_queue, and NS_LOG_FUNCTION.
|
virtual |
When on operation occurs, channel access will be started.
Definition at line 604 of file txop.cc.
References NS_LOG_FUNCTION, and StartAccessIfNeeded().
|
virtual |
When sleep operation occurs, if there is a pending packet transmission, it will be reinserted to the front of the queue.
Definition at line 578 of file txop.cc.
References m_currentHdr, m_currentPacket, m_queue, and NS_LOG_FUNCTION.
|
virtual |
When wake up operation occurs, channel access will be restarted.
Definition at line 597 of file txop.cc.
References NS_LOG_FUNCTION, and RestartAccessIfNeeded().
|
virtual |
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 317 of file txop.cc.
References GenerateBackoff(), m_channelAccessManager, m_queue, ns3::ChannelAccessManager::NeedBackoffUponAccess(), NS_LOG_FUNCTION, ns3::Packet::RemovePacketTag(), and StartAccessIfNeeded().
Referenced by ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::StaWifiMac::Enqueue(), ns3::ApWifiMac::ForwardDown(), ns3::StaWifiMac::SendAssociationRequest(), ns3::ApWifiMac::SendAssocResp(), ns3::MeshWifiInterfaceMac::SendBeacon(), ns3::ApWifiMac::SendOneBeacon(), ns3::StaWifiMac::SendProbeRequest(), ns3::ApWifiMac::SendProbeResp(), and ns3::OcbWifiMac::SendVsc().
|
protected |
Update the value of the CW variable to take into account a transmission success or a transmission abort (stop transmission of a packet after the maximum number of retransmissions has been reached).
By default, this resets the CW variable to minCW.
Definition at line 218 of file txop.cc.
References m_cw, m_cwMin, and NS_LOG_FUNCTION.
Referenced by DoInitialize(), ns3::QosTxop::DoInitialize(), ns3::QosTxop::EndTxNoAck(), EndTxNoAck(), ns3::QosTxop::GotAck(), GotAck(), ns3::QosTxop::GotBlockAck(), ns3::QosTxop::MissedAck(), MissedAck(), ns3::QosTxop::MissedBlockAck(), MissedCts(), ns3::QosTxop::NotifyInternalCollision(), ns3::QosTxop::NotifyMissedCts(), SetMaxCw(), and SetMinCw().
|
protectedvirtual |
Restart access request if needed.
Reimplemented in ns3::QosTxop.
Definition at line 340 of file txop.cc.
References IsAccessRequested(), m_channelAccessManager, m_currentPacket, m_low, m_queue, NS_LOG_FUNCTION, and ns3::ChannelAccessManager::RequestAccess().
Referenced by GotAck(), GotCfEnd(), MissedAck(), MissedCts(), NotifyInternalCollision(), and NotifyWakeUp().
void ns3::Txop::SendCfFrame | ( | WifiMacType | frameType, |
Mac48Address | addr | ||
) |
Sends CF frame to STA with address addr.
frameType | the type of frame to be transmitted. |
addr | address of the recipient. |
Definition at line 783 of file txop.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::Packet::GetSize(), m_channelAccessManager, m_currentHdr, m_currentPacket, m_low, m_queue, m_stationManager, m_txMiddle, NeedDataRetransmission(), NS_ASSERT, NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::ReportFinalDataFailed(), ns3::ChannelAccessManager::RequestAccess(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetDsFrom(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::WifiMacHeader::SetDsTo(), ns3::WifiMacHeader::SetFragmentNumber(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetRetry(), ns3::WifiMacHeader::SetSequenceNumber(), ns3::WifiMacHeader::SetType(), ns3::WIFI_MAC_CTL_END, ns3::WIFI_MAC_DATA, ns3::WIFI_MAC_DATA_CFPOLL, ns3::WIFI_MAC_DATA_NULL, and ns3::WIFI_MAC_DATA_NULL_CFPOLL.
Referenced by ns3::ApWifiMac::SendCfEnd(), ns3::ApWifiMac::SendCfPoll(), and ns3::StaWifiMac::SendCfPollResponse().
void ns3::Txop::SetAifsn | ( | uint8_t | aifsn | ) |
Set the number of slots that make up an AIFS.
aifsn | the number of slots that make up an AIFS. |
Definition at line 270 of file txop.cc.
References m_aifsn, and NS_LOG_FUNCTION.
Referenced by ns3::ApWifiMac::ApWifiMac(), ns3::WifiMac::ConfigureDcf(), ns3::OcbWifiMac::ConfigureEdca(), ns3::MeshWifiInterfaceMac::FinishConfigureStandard(), GetTypeId(), and ns3::StaWifiMac::SetEdcaParameters().
void ns3::Txop::SetChannelAccessManager | ( | const Ptr< ChannelAccessManager > | manager | ) |
Set ChannelAccessManager this Txop is associated to.
manager | ChannelAccessManager to associate. |
Definition at line 120 of file txop.cc.
References ns3::ChannelAccessManager::Add(), m_channelAccessManager, and NS_LOG_FUNCTION.
Referenced by ns3::ApWifiMac::ApWifiMac(), and ns3::RegularWifiMac::RegularWifiMac().
Set MacLow associated with this Txop.
low | MacLow to associate. |
Definition at line 134 of file txop.cc.
References m_low, and NS_LOG_FUNCTION.
Referenced by ns3::ApWifiMac::ApWifiMac(), ns3::OcbWifiMac::EnableForWave(), ns3::RegularWifiMac::RegularWifiMac(), and ns3::RegularWifiMac::SetupEdcaQueue().
void ns3::Txop::SetMaxCw | ( | uint32_t | maxCw | ) |
Set the maximum contention window size.
maxCw | the maximum contention window size. |
Definition at line 199 of file txop.cc.
References GetCw(), m_cwMax, m_cwTrace, NS_LOG_FUNCTION, and ResetCw().
Referenced by ns3::ApWifiMac::ApWifiMac(), ns3::WifiMac::ConfigureDcf(), ns3::OcbWifiMac::ConfigureEdca(), ns3::MeshWifiInterfaceMac::FinishConfigureStandard(), GetTypeId(), and ns3::StaWifiMac::SetEdcaParameters().
void ns3::Txop::SetMinCw | ( | uint32_t | minCw | ) |
Set the minimum contention window size.
minCw | the minimum contention window size. |
Definition at line 186 of file txop.cc.
References GetCw(), m_cwMin, m_cwTrace, NS_LOG_FUNCTION, and ResetCw().
Referenced by ns3::ApWifiMac::ApWifiMac(), ns3::WifiMac::ConfigureDcf(), ns3::OcbWifiMac::ConfigureEdca(), ns3::MeshWifiInterfaceMac::FinishConfigureStandard(), GetTypeId(), and ns3::StaWifiMac::SetEdcaParameters().
void ns3::Txop::SetTxDroppedCallback | ( | TxDropped | callback | ) |
callback | the callback to invoke when a packet is dropped. |
Definition at line 162 of file txop.cc.
References m_queue, m_txDroppedCallback, ns3::MakeCallback(), NS_LOG_FUNCTION, and TxDroppedPacket().
Referenced by ns3::RegularWifiMac::RegularWifiMac().
void ns3::Txop::SetTxFailedCallback | ( | TxFailed | callback | ) |
callback | the callback to invoke when a packet transmission was completed unsuccessfully. |
Definition at line 155 of file txop.cc.
References m_txFailedCallback, and NS_LOG_FUNCTION.
Referenced by ns3::RegularWifiMac::RegularWifiMac().
void ns3::Txop::SetTxMiddle | ( | const Ptr< MacTxMiddle > | txMiddle | ) |
Set MacTxMiddle this Txop is associated to.
txMiddle | MacTxMiddle to associate. |
Definition at line 127 of file txop.cc.
References m_txMiddle, and NS_LOG_FUNCTION.
Referenced by ns3::ApWifiMac::ApWifiMac(), and ns3::RegularWifiMac::RegularWifiMac().
void ns3::Txop::SetTxOkCallback | ( | TxOk | callback | ) |
callback | the callback to invoke when a packet transmission was completed successfully. |
Definition at line 148 of file txop.cc.
References m_txOkCallback, and NS_LOG_FUNCTION.
Referenced by ns3::ApWifiMac::ApWifiMac(), and ns3::RegularWifiMac::RegularWifiMac().
void ns3::Txop::SetTxopLimit | ( | Time | txopLimit | ) |
Set the TXOP limit.
txopLimit | the TXOP limit. Value zero corresponds to default Txop. |
Definition at line 277 of file txop.cc.
References ns3::Time::GetMicroSeconds(), m_txopLimit, NS_ASSERT_MSG(), and NS_LOG_FUNCTION.
Referenced by ns3::WifiMac::ConfigureDcf(), GetTypeId(), Experiment::Run(), and ns3::StaWifiMac::SetEdcaParameters().
|
virtual |
Set WifiRemoteStationsManager this Txop is associated to.
remoteManager | WifiRemoteStationManager to associate. |
Reimplemented in ns3::QosTxop.
Definition at line 141 of file txop.cc.
References m_stationManager, and NS_LOG_FUNCTION.
Referenced by ns3::ApWifiMac::SetWifiRemoteStationManager(), ns3::RegularWifiMac::SetWifiRemoteStationManager(), and ns3::QosTxop::SetWifiRemoteStationManager().
|
protectedvirtual |
Request access from Txop if needed.
Reimplemented in ns3::QosTxop.
Definition at line 353 of file txop.cc.
References IsAccessRequested(), m_channelAccessManager, m_currentPacket, m_low, m_queue, NS_LOG_FUNCTION, and ns3::ChannelAccessManager::RequestAccess().
Referenced by EndTxNoAck(), GotCfEnd(), NotifyOn(), and Queue().
void ns3::Txop::StartBackoffNow | ( | uint32_t | nSlots | ) |
nSlots | the number of slots of the backoff. |
Start a backoff by initializing the backoff counter to the number of slots specified.
Definition at line 254 of file txop.cc.
References m_backoffSlots, m_backoffStart, ns3::Simulator::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by GenerateBackoff().
|
virtual |
Start transmission for the next fragment.
This is called for fragment only.
Definition at line 738 of file txop.cc.
References ns3::MacLowTransmissionParameters::DisableNextData(), ns3::MacLowTransmissionParameters::DisableRts(), ns3::MacLowTransmissionParameters::EnableAck(), ns3::MacLowTransmissionParameters::EnableNextData(), GetFragmentPacket(), GetLow(), GetNextFragmentSize(), IsLastFragment(), m_currentParams, NextFragment(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ns3::MacLow::WaitIfsAfterEndTxFragment().
|
virtual |
Start transmission for the next packet if allowed by the TxopLimit.
Reimplemented in ns3::QosTxop.
Definition at line 867 of file txop.cc.
References NS_LOG_WARN.
Referenced by ns3::MacLow::WaitIfsAfterEndTxPacket().
|
virtual |
Update backoff and restart access if needed.
Reimplemented in ns3::QosTxop.
Definition at line 892 of file txop.cc.
References NS_LOG_WARN.
Referenced by ns3::MacLow::ReceiveOk().
|
protected |
Pass the packet included in the wifi MAC queue item to the packet dropped callback.
item | the wifi MAC queue item. |
Definition at line 170 of file txop.cc.
References ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), and m_txDroppedCallback.
Referenced by SetTxDroppedCallback().
|
protected |
Update backoff slots that nSlots has passed.
nSlots | the number of slots to decrement |
backoffUpdateBound | the time at which backoff should start |
Definition at line 245 of file txop.cc.
References m_backoffSlots, m_backoffStart, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ns3::ChannelAccessManager::NeedBackoffUponAccess(), and ns3::ChannelAccessManager::RequestAccess().
|
protected |
Update the value of the CW variable to take into account a transmission failure.
By default, this triggers a doubling of CW (capped by maxCW).
Definition at line 225 of file txop.cc.
References m_cw, m_cwMax, min, and NS_LOG_FUNCTION.
Referenced by ns3::QosTxop::MissedAck(), MissedAck(), ns3::QosTxop::MissedBlockAck(), MissedCts(), ns3::QosTxop::NotifyInternalCollision(), and ns3::QosTxop::NotifyMissedCts().
|
friend |
< ChannelAccessManager associated class
|
friend |
|
protected |
flag whether channel access is already requested
Definition at line 519 of file txop.h.
Referenced by IsAccessRequested(), ns3::QosTxop::NotifyAccessGranted(), NotifyAccessGranted(), and NotifyAccessRequested().
|
protected |
|
protected |
|
protected |
the number of backoff slots
Definition at line 520 of file txop.h.
Referenced by GetBackoffSlots(), StartBackoffNow(), and UpdateBackoffSlotsNow().
|
protected |
the backoffStart variable is used to keep track of the time at which a backoff was started or the time at which the backoff counter was last updated.
Definition at line 526 of file txop.h.
Referenced by GetBackoffStart(), StartBackoffNow(), and UpdateBackoffSlotsNow().
|
protected |
backoff trace value
Definition at line 535 of file txop.h.
Referenced by GenerateBackoff(), and GetTypeId().
|
protected |
the channel access manager
Definition at line 505 of file txop.h.
Referenced by CanStartNextPolling(), DoDispose(), Queue(), ns3::QosTxop::RestartAccessIfNeeded(), RestartAccessIfNeeded(), SendCfFrame(), SetChannelAccessManager(), ns3::QosTxop::StartAccessIfNeeded(), and StartAccessIfNeeded().
|
protected |
the current header
Definition at line 532 of file txop.h.
Referenced by ns3::QosTxop::BaTxFailed(), ns3::QosTxop::BaTxOk(), AmpduAggregationTest::DoRun(), EndTxNoAck(), ns3::QosTxop::GetFragmentOffset(), GetFragmentOffset(), ns3::QosTxop::GetFragmentPacket(), GetFragmentPacket(), ns3::QosTxop::GetFragmentSize(), GetFragmentSize(), ns3::QosTxop::GetNextFragmentSize(), GetNextFragmentSize(), ns3::QosTxop::GetTxopFragmentSize(), ns3::QosTxop::GotAck(), GotAck(), ns3::QosTxop::GotAddBaResponse(), ns3::QosTxop::GotBlockAck(), ns3::QosTxop::IsLastFragment(), IsLastFragment(), ns3::QosTxop::IsTxopFragmentation(), ns3::QosTxop::MissedAck(), MissedAck(), ns3::QosTxop::MissedBlockAck(), MissedCfPollResponse(), MissedCts(), ns3::QosTxop::NeedBarRetransmission(), ns3::QosTxop::NeedFragmentation(), NeedFragmentation(), ns3::QosTxop::NotifyAccessGranted(), NotifyAccessGranted(), ns3::QosTxop::NotifyInternalCollision(), ns3::QosTxop::NotifyMissedCts(), NotifySleep(), ns3::QosTxop::RestartAccessIfNeeded(), ns3::QosTxop::SendAddBaRequest(), SendCfFrame(), ns3::QosTxop::SetupBlockAckIfNeeded(), ns3::QosTxop::StartNextPacket(), and ns3::QosTxop::UpdateCurrentPacket().
the current packet
Definition at line 531 of file txop.h.
Referenced by AmpduAggregationTest::DoRun(), ns3::QosTxop::EndTxNoAck(), EndTxNoAck(), ns3::QosTxop::GetFragmentOffset(), GetFragmentOffset(), ns3::QosTxop::GetFragmentPacket(), GetFragmentPacket(), ns3::QosTxop::GetFragmentSize(), GetFragmentSize(), ns3::QosTxop::GetNextFragmentSize(), GetNextFragmentSize(), ns3::QosTxop::GetNextTxopFragmentSize(), ns3::QosTxop::GetNTxopFragment(), ns3::QosTxop::GetTxopFragmentOffset(), ns3::QosTxop::GetTxopFragmentSize(), ns3::QosTxop::GotAck(), GotAck(), ns3::QosTxop::GotAddBaResponse(), ns3::QosTxop::GotBlockAck(), GotCfEnd(), ns3::QosTxop::HasFramesToTransmit(), HasFramesToTransmit(), ns3::QosTxop::IsLastFragment(), IsLastFragment(), ns3::QosTxop::IsTxopFragmentation(), ns3::QosTxop::MissedAck(), MissedAck(), ns3::QosTxop::MissedBlockAck(), MissedCfPollResponse(), MissedCts(), ns3::QosTxop::NeedBarRetransmission(), ns3::QosTxop::NeedFragmentation(), NeedFragmentation(), ns3::QosTxop::NotifyAccessGranted(), NotifyAccessGranted(), NotifyChannelSwitching(), ns3::QosTxop::NotifyInternalCollision(), ns3::QosTxop::NotifyMissedCts(), NotifyOff(), NotifySleep(), ns3::QosTxop::RestartAccessIfNeeded(), RestartAccessIfNeeded(), ns3::QosTxop::SendAddBaRequest(), SendCfFrame(), ns3::QosTxop::StartAccessIfNeeded(), StartAccessIfNeeded(), ns3::QosTxop::StartNextPacket(), and ns3::QosTxop::UpdateCurrentPacket().
|
protected |
current transmission parameters
Definition at line 533 of file txop.h.
Referenced by ns3::QosTxop::GetTxopFragmentSize(), ns3::QosTxop::GotAck(), ns3::QosTxop::NeedFragmentation(), ns3::QosTxop::NotifyAccessGranted(), NotifyAccessGranted(), ns3::QosTxop::SendAddBaRequest(), StartNextFragment(), and ns3::QosTxop::StartNextPacket().
|
protected |
the current contention window
Definition at line 517 of file txop.h.
Referenced by GetCw(), ResetCw(), and UpdateFailedCw().
|
protected |
the maximum contention window
Definition at line 516 of file txop.h.
Referenced by GetMaxCw(), SetMaxCw(), and UpdateFailedCw().
|
protected |
the minimum contention window
Definition at line 515 of file txop.h.
Referenced by GetMinCw(), ResetCw(), and SetMinCw().
|
protected |
CW trace value.
Definition at line 536 of file txop.h.
Referenced by DoInitialize(), ns3::QosTxop::DoInitialize(), EndTxNoAck(), GetTypeId(), GotAck(), ns3::QosTxop::MissedAck(), MissedAck(), ns3::QosTxop::MissedBlockAck(), MissedCts(), ns3::QosTxop::NotifyMissedCts(), SetMaxCw(), and SetMinCw().
|
protected |
the fragment number
Definition at line 534 of file txop.h.
Referenced by ns3::QosTxop::GetFragmentOffset(), GetFragmentOffset(), ns3::QosTxop::GetFragmentPacket(), GetFragmentPacket(), ns3::QosTxop::GetFragmentSize(), GetFragmentSize(), ns3::QosTxop::GetNextFragmentSize(), GetNextFragmentSize(), ns3::QosTxop::IsLastFragment(), IsLastFragment(), NextFragment(), ns3::QosTxop::NotifyAccessGranted(), NotifyAccessGranted(), and ns3::QosTxop::StartNextPacket().
the MacLow
Definition at line 511 of file txop.h.
Referenced by ns3::QosTxop::CompleteConfig(), ns3::QosTxop::DequeuePeekedFrame(), DoDispose(), GetLow(), ns3::QosTxop::GetTransmissionParameters(), ns3::QosTxop::GotAck(), ns3::QosTxop::NotifyAccessGranted(), NotifyAccessGranted(), ns3::QosTxop::PrepareBlockAckRequest(), RestartAccessIfNeeded(), ns3::QosTxop::SendAddBaRequest(), SendCfFrame(), ns3::QosTxop::SendDelbaFrame(), SetMacLow(), StartAccessIfNeeded(), and ns3::QosTxop::StartNextPacket().
|
protected |
the wifi MAC queue
Definition at line 509 of file txop.h.
Referenced by ns3::QosTxop::DequeuePeekedFrame(), DoDispose(), GetWifiMacQueue(), ns3::QosTxop::HasFramesToTransmit(), HasFramesToTransmit(), ns3::QosTxop::NotifyAccessGranted(), NotifyAccessGranted(), NotifyChannelSwitching(), ns3::QosTxop::NotifyInternalCollision(), NotifyOff(), NotifySleep(), ns3::QosTxop::PeekNextFrame(), ns3::QosTxop::PushFront(), ns3::QosTxop::QosTxop(), Queue(), ns3::QosTxop::RestartAccessIfNeeded(), RestartAccessIfNeeded(), SendCfFrame(), SetTxDroppedCallback(), ns3::QosTxop::SetupBlockAckIfNeeded(), ns3::QosTxop::StartAccessIfNeeded(), StartAccessIfNeeded(), and Txop().
|
protected |
the random stream
Definition at line 513 of file txop.h.
Referenced by AssignStreams(), DoDispose(), GenerateBackoff(), and Txop().
|
protected |
the wifi remote station manager
Definition at line 512 of file txop.h.
Referenced by DoDispose(), ns3::QosTxop::GetFragmentOffset(), GetFragmentOffset(), ns3::QosTxop::GetFragmentSize(), GetFragmentSize(), ns3::QosTxop::GetNextFragmentSize(), GetNextFragmentSize(), ns3::QosTxop::GetTransmissionParameters(), ns3::QosTxop::IsLastFragment(), IsLastFragment(), ns3::QosTxop::IsTxopFragmentation(), ns3::QosTxop::MissedAck(), MissedAck(), ns3::QosTxop::MissedBlockAck(), MissedCfPollResponse(), MissedCts(), NeedDataRetransmission(), ns3::QosTxop::NeedFragmentation(), NeedFragmentation(), NeedRtsRetransmission(), ns3::QosTxop::NotifyAccessGranted(), NotifyAccessGranted(), ns3::QosTxop::NotifyInternalCollision(), ns3::QosTxop::NotifyMissedCts(), ns3::QosTxop::RestartAccessIfNeeded(), ns3::QosTxop::SendAddBaRequest(), SendCfFrame(), ns3::QosTxop::SetupBlockAckIfNeeded(), ns3::QosTxop::SetWifiRemoteStationManager(), SetWifiRemoteStationManager(), ns3::QosTxop::StartAccessIfNeeded(), and ns3::QosTxop::StartNextPacket().
|
protected |
the packet dropped callback
Definition at line 508 of file txop.h.
Referenced by SetTxDroppedCallback(), and TxDroppedPacket().
|
protected |
the transmit failed callback
Definition at line 507 of file txop.h.
Referenced by ns3::QosTxop::BaTxFailed(), ns3::QosTxop::MissedAck(), MissedAck(), ns3::QosTxop::MissedBlockAck(), MissedCfPollResponse(), MissedCts(), ns3::QosTxop::NotifyInternalCollision(), ns3::QosTxop::NotifyMissedCts(), and SetTxFailedCallback().
|
protected |
the MacTxMiddle
Definition at line 510 of file txop.h.
Referenced by ns3::QosTxop::CompleteConfig(), ns3::QosTxop::DequeuePeekedFrame(), DoDispose(), ns3::QosTxop::GetNextSequenceNumberFor(), NotifyAccessGranted(), ns3::QosTxop::PeekNextFrame(), ns3::QosTxop::PeekNextSequenceNumberFor(), ns3::QosTxop::SendAddBaRequest(), SendCfFrame(), SetTxMiddle(), and ns3::QosTxop::SetupBlockAckIfNeeded().
|
protected |
the transmit OK callback
Definition at line 506 of file txop.h.
Referenced by ns3::QosTxop::BaTxOk(), EndTxNoAck(), ns3::QosTxop::GotAck(), GotAck(), ns3::QosTxop::GotBlockAck(), and SetTxOkCallback().
|
protected |
the TXOP limit time
Definition at line 529 of file txop.h.
Referenced by GetTxopLimit(), and SetTxopLimit().