A Discrete-Event Network Simulator
API
ns3::Txop Class Reference

Handle packet fragmentation and retransmissions for data and management frames. More...

#include "txop.h"

+ Inheritance diagram for ns3::Txop:
+ Collaboration diagram for ns3::Txop:

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< MacLowGetLow (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< WifiMacQueueGetWifiMacQueue () 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, WifiMode txMode, double dataSnr)
 Event handler when a Block ACK 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 Block ACK 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...
 
- Public Member Functions inherited from ns3::Object
 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...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
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 Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
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< PacketGetFragmentPacket (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 DCF 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 DCF that access has been granted. More...
 
virtual void NotifyAccessRequested (void)
 Notify that access request has been received. More...
 
virtual void NotifyInternalCollision (void)
 Notify the DCF 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 DCF manager 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...
 
- Protected Member Functions inherited from ns3::Object
 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...
 
- Protected Member Functions inherited from ns3::ObjectBase
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 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< ChannelAccessManagerm_channelAccessManager
 the channel access manager More...
 
WifiMacHeader m_currentHdr
 the current header More...
 
Ptr< const Packetm_currentPacket
 the current packet More...
 
MacLowTransmissionParameters m_currentParams
 current transmission parameters More...
 
uint32_t m_cw
 the current CW More...
 
uint32_t m_cwMax
 the CW maximum More...
 
uint32_t m_cwMin
 the CW minimum More...
 
TracedValue< uint32_t > m_cwTrace
 CW trace value. More...
 
uint8_t m_fragmentNumber
 the fragment number More...
 
Ptr< MacLowm_low
 the MacLow More...
 
Ptr< WifiMacQueuem_queue
 the wifi MAC queue More...
 
Ptr< UniformRandomVariablem_rng
 the random stream More...
 
Ptr< WifiRemoteStationManagerm_stationManager
 the wifi remote station manager More...
 
TxDropped m_txDroppedCallback
 the packet dropped callback More...
 
TxFailed m_txFailedCallback
 the transmit failed callback More...
 
Ptr< MacTxMiddlem_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 DcfListener
 allow DcfListener class access More...
 
class MacLowTransmissionListener
 allow MacLowTransmissionListener class access More...
 

Additional Inherited Members

Detailed Description

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.

Config Paths

ns3::Txop is accessible through the following paths with Config::Set and Config::Connect:

  • "/NodeList/[i]/DeviceList/[i]/$ns3::WifiNetDevice/Mac/$ns3::RegularWifiMac/Txop"

Attributes

  • MinCw: The minimum value of the contention window.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 0:4294967295
    • Initial value: 15
    • Flags: construct write read
  • MaxCw: The maximum value of the contention window.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 0:4294967295
    • Initial value: 1023
    • Flags: construct write read
  • Aifsn: The AIFSN: the default value conforms to non-QOS.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 0:255
    • Initial value: 2
    • Flags: construct write read
  • TxopLimit: The TXOP limit: the default value conforms to non-QoS.
    • Set with class: ns3::TimeValue
    • Underlying type: Time –9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +0.0ns
    • Flags: construct write read
  • Queue: The WifiMacQueue object

TraceSources

Size of this type is 280 bytes (on a 64-bit architecture).

Definition at line 65 of file txop.h.

Member Typedef Documentation

◆ TxDropped

typedef Callback<void, Ptr<const Packet> > ns3::Txop::TxDropped

typedef for a callback to invoke when a packet is dropped.

Definition at line 96 of file txop.h.

◆ TxFailed

typedef for a callback to invoke when a packet transmission was failed.

Definition at line 91 of file txop.h.

◆ TxOk

typedef Callback<void, const WifiMacHeader&> ns3::Txop::TxOk

typedef for a callback to invoke when a packet transmission was completed successfully.

Definition at line 86 of file txop.h.

Constructor & Destructor Documentation

◆ Txop()

ns3::Txop::Txop ( )

Definition at line 85 of file txop.cc.

References m_queue, m_rng, and NS_LOG_FUNCTION.

◆ ~Txop()

ns3::Txop::~Txop ( )
virtual

Definition at line 101 of file txop.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

◆ AssignStreams()

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.

Parameters
streamfirst stream index to use.
Returns
the number of stream indices assigned by this model.

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Cancel()

void ns3::Txop::Cancel ( void  )
virtual

Cancel the transmission.

Definition at line 764 of file txop.cc.

References NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by ns3::MacLow::CancelAllEvents().

+ Here is the caller graph for this function:

◆ CanStartNextPolling()

bool ns3::Txop::CanStartNextPolling ( void  ) const

Check if the next PCF transmission can fit in the remaining CFP duration.

Returns
true if the next PCF transmission can fit in the remaining CFP duration, false otherwise

Definition at line 859 of file txop.cc.

References GetLow(), ns3::ChannelAccessManager::IsBusy(), and m_channelAccessManager.

Referenced by ns3::ApWifiMac::SendNextCfFrame().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::Txop::DoDispose ( void  )
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 107 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().

+ Here is the caller graph for this function:

◆ DoInitialize()

void ns3::Txop::DoInitialize ( void  )
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().

+ Here is the call graph for this function:

◆ EndTxNoAck()

void ns3::Txop::EndTxNoAck ( void  )
virtual

Event handler when a transmission that does not require an ACK has completed.

Reimplemented in ns3::QosTxop.

Definition at line 771 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GenerateBackoff()

◆ GetAifsn()

uint8_t ns3::Txop::GetAifsn ( void  ) const

Return the number of slots that make up an AIFS.

Returns
the number of slots that make up an AIFS.

Definition at line 296 of file txop.cc.

References m_aifsn.

Referenced by ns3::ChannelAccessManager::GetBackoffStartFor(), ns3::ApWifiMac::GetEdcaParameterSet(), GetTypeId(), ns3::ChannelAccessManager::NeedBackoffUponAccess(), and ns3::ChannelAccessManager::RequestAccess().

+ Here is the caller graph for this function:

◆ GetBackoffSlots()

uint32_t ns3::Txop::GetBackoffSlots ( void  ) const
protected

◆ GetBackoffStart()

Time ns3::Txop::GetBackoffStart ( void  ) const
protected

Return the time when the backoff procedure started.

Returns
the time when the backoff procedure started

Definition at line 238 of file txop.cc.

References m_backoffStart.

Referenced by ns3::ChannelAccessManager::GetBackoffStartFor(), and ns3::ChannelAccessManager::RequestAccess().

+ Here is the caller graph for this function:

◆ GetCw()

uint32_t ns3::Txop::GetCw ( void  ) const
protected
Returns
the current value of the CW variable. The initial value is minCW.

Definition at line 211 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().

+ Here is the caller graph for this function:

◆ GetFragmentOffset()

uint32_t ns3::Txop::GetFragmentOffset ( void  ) const
protectedvirtual

Calculate the offset for the current fragment.

Returns
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetFragmentPacket()

Ptr< Packet > ns3::Txop::GetFragmentPacket ( WifiMacHeader hdr)
protectedvirtual

Get the next fragment from the packet with appropriate Wifi header for the fragment.

Parameters
hdrWi-Fi header.
Returns
the fragment with the current fragment number.

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetFragmentSize()

uint32_t ns3::Txop::GetFragmentSize ( void  ) const
protectedvirtual

Calculate the size of the current fragment.

Returns
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetLow()

◆ GetMaxCw()

uint32_t ns3::Txop::GetMaxCw ( void  ) const

Return the maximum contention window size.

Returns
the maximum contention window size.

Definition at line 290 of file txop.cc.

References m_cwMax.

Referenced by ns3::ApWifiMac::GetEdcaParameterSet(), and GetTypeId().

+ Here is the caller graph for this function:

◆ GetMinCw()

uint32_t ns3::Txop::GetMinCw ( void  ) const

Return the minimum contention window size.

Returns
the minimum contention window size.

Definition at line 284 of file txop.cc.

References m_cwMin.

Referenced by ns3::ApWifiMac::GetEdcaParameterSet(), and GetTypeId().

+ Here is the caller graph for this function:

◆ GetNextFragmentSize()

uint32_t ns3::Txop::GetNextFragmentSize ( void  ) const
protectedvirtual

Calculate the size of the next fragment.

Returns
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTxopLimit()

◆ GetTxopRemaining()

Time ns3::Txop::GetTxopRemaining ( void  ) const
virtual

Return the remaining duration in the current TXOP.

Returns
the remaining duration in the current TXOP.

Reimplemented in ns3::QosTxop.

Definition at line 889 of file txop.cc.

References NS_LOG_WARN, and ns3::Seconds().

Referenced by ns3::MacLow::ReceiveOk(), ns3::MacLow::StartDataTxTimers(), and ns3::MacLow::StartTransmission().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTypeId()

◆ GetWifiMacQueue()

Ptr< WifiMacQueue > ns3::Txop::GetWifiMacQueue ( ) const

Return the packet queue associated with this Txop.

Returns
WifiMacQueue

Definition at line 178 of file txop.cc.

References m_queue, and NS_LOG_FUNCTION.

Referenced by AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), HeAggregationTest::DoRunSubTest(), and GetTypeId().

+ Here is the caller graph for this function:

◆ GotAck()

void ns3::Txop::GotAck ( void  )
virtual

Event handler when an ACK is received.

Reimplemented in ns3::QosTxop.

Definition at line 642 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GotBlockAck()

void ns3::Txop::GotBlockAck ( const CtrlBAckResponseHeader blockAck,
Mac48Address  recipient,
double  rxSnr,
WifiMode  txMode,
double  dataSnr 
)
virtual

Event handler when a Block ACK is received.

Parameters
blockAckblock ack.
recipientaddress of the recipient.
rxSnrSNR of the block ack itself.
txModewifi mode.
dataSnrreported data SNR from the peer.

Reimplemented in ns3::QosTxop.

Definition at line 877 of file txop.cc.

References NS_LOG_WARN.

Referenced by ns3::MacLow::ReceiveOk().

+ Here is the caller graph for this function:

◆ GotCfEnd()

void ns3::Txop::GotCfEnd ( void  )

Event handler when a CF-END frame is received.

Definition at line 702 of file txop.cc.

References m_currentPacket, NS_LOG_FUNCTION, RestartAccessIfNeeded(), and StartAccessIfNeeded().

Referenced by ns3::MacLow::ReceiveOk().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ HasFramesToTransmit()

bool ns3::Txop::HasFramesToTransmit ( void  )
protectedvirtual

Check if the DCF has frames to transmit.

Returns
true if the DCF has frames to transmit.

Reimplemented in ns3::QosTxop.

Definition at line 308 of file txop.cc.

References m_currentPacket, m_queue, and NS_LOG_FUNCTION.

Referenced by ns3::ChannelAccessManager::NeedBackoffUponAccess().

+ Here is the caller graph for this function:

◆ IsAccessRequested()

bool ns3::Txop::IsAccessRequested ( void  ) const
virtual
Returns
true if access has been requested for this function and has not been granted already, false otherwise.

Definition at line 463 of file txop.cc.

References m_accessRequested.

Referenced by ns3::ChannelAccessManager::DoGrantDcfAccess(), ns3::ChannelAccessManager::DoRestartAccessTimeoutIfNeeded(), ns3::ChannelAccessManager::RequestAccess(), ns3::QosTxop::RestartAccessIfNeeded(), RestartAccessIfNeeded(), ns3::QosTxop::StartAccessIfNeeded(), and StartAccessIfNeeded().

+ Here is the caller graph for this function:

◆ IsLastFragment()

bool ns3::Txop::IsLastFragment ( void  ) const
protectedvirtual

Check if the current fragment is the last fragment.

Returns
true if the current fragment is the last fragment, false otherwise.

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsQosTxop()

bool ns3::Txop::IsQosTxop ( void  ) const
virtual

Check for QoS TXOP.

Returns
true if QoS TXOP.

Reimplemented in ns3::QosTxop.

Definition at line 865 of file txop.cc.

Referenced by ns3::ChannelAccessManager::NeedBackoffUponAccess(), ns3::MacLow::ReceiveOk(), ns3::ChannelAccessManager::RequestAccess(), ns3::MacLow::StartDataTxTimers(), and ns3::ChannelAccessManager::UpdateBackoff().

+ Here is the caller graph for this function:

◆ MissedAck()

◆ MissedBlockAck()

void ns3::Txop::MissedBlockAck ( uint8_t  nMpdus)
virtual

Event handler when a Block ACK timeout has occurred.

Parameters
nMpdusthe number of MPDUs sent in the A-MPDU transmission that results in a Block ACK timeout.

Reimplemented in ns3::QosTxop.

Definition at line 883 of file txop.cc.

References NS_LOG_WARN.

Referenced by ns3::MacLow::BlockAckTimeout().

+ Here is the caller graph for this function:

◆ MissedCfPollResponse()

void ns3::Txop::MissedCfPollResponse ( bool  expectedCfAck)

Event handler when a response to a CF-POLL frame is missed.

Parameters
expectedCfAckflag to indicate whether a CF-ACK was expected in the response.

Definition at line 716 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MissedCts()

void ns3::Txop::MissedCts ( void  )
virtual

◆ NeedDataRetransmission()

bool ns3::Txop::NeedDataRetransmission ( Ptr< const Packet packet,
const WifiMacHeader hdr 
)
protected

Check if DATA should be re-transmitted if ACK was missed.

Parameters
packetcurrent packet being transmitted.
hdrcurrent header being transmitted.
Returns
true if DATA should be re-transmitted, false otherwise.

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NeedFragmentation()

bool ns3::Txop::NeedFragmentation ( void  ) const
protectedvirtual

Check if the current packet should be fragmented.

Returns
true if the current packet should be fragmented, false otherwise

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NeedRtsRetransmission()

bool ns3::Txop::NeedRtsRetransmission ( Ptr< const Packet packet,
const WifiMacHeader hdr 
)
protected

Check if RTS should be re-transmitted if CTS was missed.

Parameters
packetcurrent packet being transmitted.
hdrcurrent header being transmitted.
Returns
true if RTS should be re-transmitted, false otherwise.

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NextFragment()

void ns3::Txop::NextFragment ( void  )
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().

+ Here is the caller graph for this function:

◆ NotifyAccessGranted()

◆ NotifyAccessRequested()

void ns3::Txop::NotifyAccessRequested ( void  )
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().

+ Here is the caller graph for this function:

◆ NotifyChannelSwitching()

void ns3::Txop::NotifyChannelSwitching ( void  )
virtual

When a channel switching occurs, enqueued packets are removed.

Definition at line 574 of file txop.cc.

References m_currentPacket, m_queue, and NS_LOG_FUNCTION.

Referenced by ns3::OcbWifiMac::CancleTx(), and ns3::ChannelAccessManager::NotifySwitchingStartNow().

+ Here is the caller graph for this function:

◆ NotifyInternalCollision()

void ns3::Txop::NotifyInternalCollision ( void  )
protectedvirtual

Notify the DCF that internal collision has occurred.

Reimplemented in ns3::QosTxop.

Definition at line 566 of file txop.cc.

References GenerateBackoff(), NS_LOG_FUNCTION, and RestartAccessIfNeeded().

+ Here is the call graph for this function:

◆ NotifyOff()

void ns3::Txop::NotifyOff ( void  )
virtual

When off operation occurs, the queue gets cleaned up.

Definition at line 593 of file txop.cc.

References m_currentPacket, m_queue, and NS_LOG_FUNCTION.

Referenced by ns3::ChannelAccessManager::NotifyOffNow().

+ Here is the caller graph for this function:

◆ NotifyOn()

void ns3::Txop::NotifyOn ( void  )
virtual

When on operation occurs, channel access will be started.

Definition at line 608 of file txop.cc.

References NS_LOG_FUNCTION, and StartAccessIfNeeded().

Referenced by ns3::ChannelAccessManager::NotifyOnNow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifySleep()

void ns3::Txop::NotifySleep ( void  )
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 582 of file txop.cc.

References m_currentHdr, m_currentPacket, m_queue, and NS_LOG_FUNCTION.

Referenced by ns3::ChannelAccessManager::NotifySleepNow().

+ Here is the caller graph for this function:

◆ NotifyWakeUp()

void ns3::Txop::NotifyWakeUp ( void  )
virtual

When wake up operation occurs, channel access will be restarted.

Definition at line 601 of file txop.cc.

References NS_LOG_FUNCTION, and RestartAccessIfNeeded().

Referenced by ns3::ChannelAccessManager::NotifyWakeupNow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Queue()

◆ ResetCw()

void ns3::Txop::ResetCw ( void  )
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 217 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(), ns3::ChannelAccessManager::NotifyOnNow(), ns3::ChannelAccessManager::NotifySwitchingStartNow(), ns3::ChannelAccessManager::NotifyWakeupNow(), SetMaxCw(), and SetMinCw().

+ Here is the caller graph for this function:

◆ RestartAccessIfNeeded()

void ns3::Txop::RestartAccessIfNeeded ( void  )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendCfFrame()

◆ SetAifsn()

void ns3::Txop::SetAifsn ( uint8_t  aifsn)

Set the number of slots that make up an AIFS.

Parameters
aifsnthe number of slots that make up an AIFS.

Definition at line 269 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().

+ Here is the caller graph for this function:

◆ SetChannelAccessManager()

void ns3::Txop::SetChannelAccessManager ( const Ptr< ChannelAccessManager manager)

Set ChannelAccessManager this Txop is associated to.

Parameters
managerChannelAccessManager.

Definition at line 119 of file txop.cc.

References ns3::ChannelAccessManager::Add(), m_channelAccessManager, and NS_LOG_FUNCTION.

Referenced by ns3::ApWifiMac::ApWifiMac(), and ns3::RegularWifiMac::RegularWifiMac().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetMacLow()

void ns3::Txop::SetMacLow ( const Ptr< MacLow low)

Set MacLow associated with this Txop.

Parameters
lowMacLow.

Definition at line 133 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().

+ Here is the caller graph for this function:

◆ SetMaxCw()

void ns3::Txop::SetMaxCw ( uint32_t  maxCw)

Set the maximum contention window size.

Parameters
maxCwthe maximum contention window size.

Definition at line 198 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetMinCw()

void ns3::Txop::SetMinCw ( uint32_t  minCw)

Set the minimum contention window size.

Parameters
minCwthe minimum contention window size.

Definition at line 185 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetTxDroppedCallback()

void ns3::Txop::SetTxDroppedCallback ( TxDropped  callback)
Parameters
callbackthe callback to invoke when a packet is dropped.

Definition at line 161 of file txop.cc.

References m_queue, m_txDroppedCallback, ns3::MakeCallback(), NS_LOG_FUNCTION, and TxDroppedPacket().

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetTxFailedCallback()

void ns3::Txop::SetTxFailedCallback ( TxFailed  callback)
Parameters
callbackthe callback to invoke when a packet transmission was completed unsuccessfully.

Definition at line 154 of file txop.cc.

References m_txFailedCallback, and NS_LOG_FUNCTION.

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

+ Here is the caller graph for this function:

◆ SetTxMiddle()

void ns3::Txop::SetTxMiddle ( const Ptr< MacTxMiddle txMiddle)

Set MacTxMiddle this Txop is associated to.

Parameters
txMiddleMacTxMiddle.

Definition at line 126 of file txop.cc.

References m_txMiddle, and NS_LOG_FUNCTION.

Referenced by ns3::ApWifiMac::ApWifiMac(), and ns3::RegularWifiMac::RegularWifiMac().

+ Here is the caller graph for this function:

◆ SetTxOkCallback()

void ns3::Txop::SetTxOkCallback ( TxOk  callback)
Parameters
callbackthe callback to invoke when a packet transmission was completed successfully.

Definition at line 147 of file txop.cc.

References m_txOkCallback, and NS_LOG_FUNCTION.

Referenced by ns3::ApWifiMac::ApWifiMac(), and ns3::RegularWifiMac::RegularWifiMac().

+ Here is the caller graph for this function:

◆ SetTxopLimit()

void ns3::Txop::SetTxopLimit ( Time  txopLimit)

Set the TXOP limit.

Parameters
txopLimitthe TXOP limit. Value zero corresponds to default DCF.

Definition at line 276 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetWifiRemoteStationManager()

void ns3::Txop::SetWifiRemoteStationManager ( const Ptr< WifiRemoteStationManager remoteManager)
virtual

Set WifiRemoteStationsManager this Txop is associated to.

Parameters
remoteManagerWifiRemoteStationManager.

Reimplemented in ns3::QosTxop.

Definition at line 140 of file txop.cc.

References m_stationManager, and NS_LOG_FUNCTION.

Referenced by ns3::ApWifiMac::SetWifiRemoteStationManager(), ns3::QosTxop::SetWifiRemoteStationManager(), and ns3::RegularWifiMac::SetWifiRemoteStationManager().

+ Here is the caller graph for this function:

◆ StartAccessIfNeeded()

void ns3::Txop::StartAccessIfNeeded ( void  )
protectedvirtual

Request access from DCF manager 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StartBackoffNow()

void ns3::Txop::StartBackoffNow ( uint32_t  nSlots)
Parameters
nSlotsthe number of slots of the backoff.

Start a backoff by initializing the backoff counter to the number of slots specified.

Definition at line 253 of file txop.cc.

References m_backoffSlots, m_backoffStart, ns3::Simulator::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by GenerateBackoff().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StartNextFragment()

void ns3::Txop::StartNextFragment ( void  )
virtual

Start transmission for the next fragment.

This is called for fragment only.

Definition at line 742 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StartNextPacket()

void ns3::Txop::StartNextPacket ( void  )
virtual

Start transmission for the next packet if allowed by the TxopLimit.

Reimplemented in ns3::QosTxop.

Definition at line 871 of file txop.cc.

References NS_LOG_WARN.

Referenced by ns3::MacLow::WaitIfsAfterEndTxPacket().

+ Here is the caller graph for this function:

◆ TerminateTxop()

void ns3::Txop::TerminateTxop ( void  )
virtual

Update backoff and restart access if needed.

Reimplemented in ns3::QosTxop.

Definition at line 896 of file txop.cc.

References NS_LOG_WARN.

Referenced by ns3::MacLow::ReceiveOk().

+ Here is the caller graph for this function:

◆ TxDroppedPacket()

void ns3::Txop::TxDroppedPacket ( Ptr< const WifiMacQueueItem item)
protected

Pass the packet included in the wifi MAC queue item to the packet dropped callback.

Parameters
itemthe wifi MAC queue item.

Definition at line 169 of file txop.cc.

References ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), and m_txDroppedCallback.

Referenced by SetTxDroppedCallback().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ UpdateBackoffSlotsNow()

void ns3::Txop::UpdateBackoffSlotsNow ( uint32_t  nSlots,
Time  backoffUpdateBound 
)
protected

◆ UpdateFailedCw()

void ns3::Txop::UpdateFailedCw ( void  )
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 224 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().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ ChannelAccessManager

friend class ChannelAccessManager
friend

< ChannelAccessManager associated class

Definition at line 355 of file txop.h.

◆ DcfListener

friend class DcfListener
friend

allow DcfListener class access

Definition at line 69 of file txop.h.

◆ MacLowTransmissionListener

friend class MacLowTransmissionListener
friend

allow MacLowTransmissionListener class access

Definition at line 71 of file txop.h.

Member Data Documentation

◆ m_accessRequested

◆ m_aifsn

uint8_t ns3::Txop::m_aifsn
protected

the AIFSN

Definition at line 528 of file txop.h.

Referenced by GetAifsn(), and SetAifsn().

◆ m_backoff

uint32_t ns3::Txop::m_backoff
protected

the current backoff

Definition at line 518 of file txop.h.

Referenced by GenerateBackoff().

◆ m_backoffSlots

uint32_t ns3::Txop::m_backoffSlots
protected

the backoff slots

Definition at line 520 of file txop.h.

Referenced by GetBackoffSlots(), StartBackoffNow(), and UpdateBackoffSlotsNow().

◆ m_backoffStart

Time ns3::Txop::m_backoffStart
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().

◆ m_backoffTrace

TracedCallback<uint32_t> ns3::Txop::m_backoffTrace
protected

backoff trace value

Definition at line 535 of file txop.h.

Referenced by GenerateBackoff(), and GetTypeId().

◆ m_channelAccessManager

◆ m_currentHdr

◆ m_currentPacket

◆ m_currentParams

◆ m_cw

uint32_t ns3::Txop::m_cw
protected

the current CW

Definition at line 517 of file txop.h.

Referenced by GetCw(), ResetCw(), and UpdateFailedCw().

◆ m_cwMax

uint32_t ns3::Txop::m_cwMax
protected

the CW maximum

Definition at line 516 of file txop.h.

Referenced by GetMaxCw(), SetMaxCw(), and UpdateFailedCw().

◆ m_cwMin

uint32_t ns3::Txop::m_cwMin
protected

the CW minimum

Definition at line 515 of file txop.h.

Referenced by GetMinCw(), ResetCw(), and SetMinCw().

◆ m_cwTrace

◆ m_fragmentNumber

◆ m_low

◆ m_queue

◆ m_rng

Ptr<UniformRandomVariable> ns3::Txop::m_rng
protected

the random stream

Definition at line 513 of file txop.h.

Referenced by AssignStreams(), DoDispose(), GenerateBackoff(), and Txop().

◆ m_stationManager

◆ m_txDroppedCallback

TxDropped ns3::Txop::m_txDroppedCallback
protected

the packet dropped callback

Definition at line 508 of file txop.h.

Referenced by SetTxDroppedCallback(), and TxDroppedPacket().

◆ m_txFailedCallback

◆ m_txMiddle

◆ m_txOkCallback

TxOk ns3::Txop::m_txOkCallback
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().

◆ m_txopLimit

Time ns3::Txop::m_txopLimit
protected

the txop limit time

Definition at line 529 of file txop.h.

Referenced by GetTxopLimit(), and SetTxopLimit().


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