Public Member Functions | |
Dcf (DcaTxop *txop) | |
virtual bool | IsEdca (void) const |
![]() | |
DcfState () | |
virtual | ~DcfState () |
uint32_t | GetAifsn (void) const |
Return the number of slots that make up an AIFS. More... | |
uint32_t | GetCw (void) const |
uint32_t | GetCwMax (void) const |
Return the maximum congestion window size. More... | |
uint32_t | GetCwMin (void) const |
Return the minimum congestion window size. More... | |
Time | GetTxopLimit (void) const |
Return the TXOP limit. More... | |
bool | IsAccessRequested (void) const |
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... | |
void | SetAifsn (uint32_t aifsn) |
void | SetCwMax (uint32_t maxCw) |
Set the maximum congestion window size. More... | |
void | SetCwMin (uint32_t minCw) |
Set the minimum congestion window size. More... | |
void | SetTxopLimit (Time txopLimit) |
Set the TXOP limit. More... | |
void | StartBackoffNow (uint32_t nSlots) |
void | UpdateFailedCw (void) |
Update the value of the CW variable to take into account a transmission failure. More... | |
Private Member Functions | |
virtual void | DoNotifyAccessGranted (void) |
Called by DcfManager to notify a DcfState subclass that access to the medium is granted and can start immediately. More... | |
virtual void | DoNotifyChannelSwitching (void) |
Called by DcfManager to notify a DcfState subclass that a channel switching occured. More... | |
virtual void | DoNotifyCollision (void) |
Called by DcfManager to notify a DcfState subclass that a normal collision occured, that is, that the medium was busy when access was requested. More... | |
virtual void | DoNotifyInternalCollision (void) |
Called by DcfManager to notify a DcfState subclass that an 'internal' collision occured, that is, that the backoff timer of a higher priority DcfState expired at the same time and that access was granted to this higher priority DcfState. More... | |
virtual void | DoNotifySleep (void) |
Called by DcfManager to notify a DcfState subclass that the device has begun to sleep. More... | |
virtual void | DoNotifyWakeUp (void) |
Called by DcfManager to notify a DcfState subclass that the device has begun to wake up. More... | |
Private Attributes | |
DcaTxop * | m_txop |
Definition at line 44 of file dca-txop.cc.
|
inline |
Definition at line 47 of file dca-txop.cc.
|
inlineprivatevirtual |
Called by DcfManager to notify a DcfState subclass that access to the medium is granted and can start immediately.
Implements ns3::DcfState.
Definition at line 56 of file dca-txop.cc.
References m_txop, and ns3::DcaTxop::NotifyAccessGranted().
|
inlineprivatevirtual |
Called by DcfManager to notify a DcfState subclass that a channel switching occured.
The subclass is expected to flush the queue of packets.
Implements ns3::DcfState.
Definition at line 68 of file dca-txop.cc.
References m_txop, and ns3::DcaTxop::NotifyChannelSwitching().
|
inlineprivatevirtual |
Called by DcfManager to notify a DcfState subclass that a normal collision occured, that is, that the medium was busy when access was requested.
This may also be called if the request for access occurred within the DIFS or AIFS between two frames.
The subclass is expected to start a new backoff by calling DcfState::StartBackoffNow and DcfManager::RequestAccess is access is still needed.
Implements ns3::DcfState.
Definition at line 64 of file dca-txop.cc.
References m_txop, and ns3::DcaTxop::NotifyCollision().
|
inlineprivatevirtual |
Called by DcfManager to notify a DcfState subclass that an 'internal' collision occured, that is, that the backoff timer of a higher priority DcfState expired at the same time and that access was granted to this higher priority DcfState.
The subclass is expected to start a new backoff by calling DcfState::StartBackoffNow and DcfManager::RequestAccess is access is still needed.
Implements ns3::DcfState.
Definition at line 60 of file dca-txop.cc.
References m_txop, and ns3::DcaTxop::NotifyInternalCollision().
|
inlineprivatevirtual |
Called by DcfManager to notify a DcfState subclass that the device has begun to sleep.
The subclass is expected to re-insert the pending packet into the queue
Implements ns3::DcfState.
Definition at line 72 of file dca-txop.cc.
References m_txop, and ns3::DcaTxop::NotifySleep().
|
inlineprivatevirtual |
Called by DcfManager to notify a DcfState subclass that the device has begun to wake up.
The subclass is expected to restart a new backoff by calling DcfState::StartBackoffNow and DcfManager::RequestAccess is access is still needed.
Implements ns3::DcfState.
Definition at line 76 of file dca-txop.cc.
References m_txop, and ns3::DcaTxop::NotifyWakeUp().
|
inlinevirtual |
This method, which must be overridden in derived classes, indicates whether DCF or EDCAF rules should be used for this channel access function. This affects the behavior of DcfManager when dealing with this instance.
Implements ns3::DcfState.
Definition at line 51 of file dca-txop.cc.
|
private |
Definition at line 81 of file dca-txop.cc.
Referenced by DoNotifyAccessGranted(), DoNotifyChannelSwitching(), DoNotifyCollision(), DoNotifyInternalCollision(), DoNotifySleep(), and DoNotifyWakeUp().