Classes | |
struct | ExpectedCollision |
Public Member Functions | |
DcfStateTest (DcfManagerTest *test, uint32_t i) | |
bool | IsEdca (void) const |
void | QueueTx (uint64_t txTime, uint64_t expectedGrantTime) |
![]() | |
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 Types | |
typedef std::list< struct ExpectedCollision > | ExpectedCollisions |
typedef std::pair< uint64_t, uint64_t > | ExpectedGrant |
typedef std::list< ExpectedGrant > | ExpectedGrants |
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 | |
ExpectedCollisions | m_expectedCollision |
ExpectedGrants | m_expectedGrants |
ExpectedCollisions | m_expectedInternalCollision |
uint32_t | m_i |
DcfManagerTest * | m_test |
Friends | |
class | DcfManagerTest |
Definition at line 29 of file dcf-manager-test.cc.
|
private |
Definition at line 53 of file dcf-manager-test.cc.
|
private |
Definition at line 46 of file dcf-manager-test.cc.
|
private |
Definition at line 47 of file dcf-manager-test.cc.
DcfStateTest::DcfStateTest | ( | DcfManagerTest * | test, |
uint32_t | i | ||
) |
Definition at line 111 of file dcf-manager-test.cc.
Referenced by DcfManagerTest::AddDcfState().
|
privatevirtual |
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 130 of file dcf-manager-test.cc.
References m_i, m_test, and DcfManagerTest::NotifyAccessGranted().
|
privatevirtual |
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 148 of file dcf-manager-test.cc.
References m_i, m_test, and DcfManagerTest::NotifyChannelSwitching().
|
privatevirtual |
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 142 of file dcf-manager-test.cc.
References m_i, m_test, and DcfManagerTest::NotifyCollision().
|
privatevirtual |
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 136 of file dcf-manager-test.cc.
References m_i, m_test, and DcfManagerTest::NotifyInternalCollision().
|
privatevirtual |
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 154 of file dcf-manager-test.cc.
|
privatevirtual |
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 159 of file dcf-manager-test.cc.
|
virtual |
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 118 of file dcf-manager-test.cc.
void DcfStateTest::QueueTx | ( | uint64_t | txTime, |
uint64_t | expectedGrantTime | ||
) |
Definition at line 124 of file dcf-manager-test.cc.
References m_expectedGrants.
Referenced by DcfManagerTest::DoAccessRequest().
|
friend |
Definition at line 38 of file dcf-manager-test.cc.
|
private |
Definition at line 56 of file dcf-manager-test.cc.
Referenced by DcfManagerTest::EndTest(), DcfManagerTest::ExpectCollision(), and DcfManagerTest::NotifyCollision().
|
private |
Definition at line 57 of file dcf-manager-test.cc.
Referenced by DcfManagerTest::EndTest(), DcfManagerTest::NotifyAccessGranted(), DcfManagerTest::NotifyChannelSwitching(), and QueueTx().
|
private |
Definition at line 55 of file dcf-manager-test.cc.
Referenced by DcfManagerTest::EndTest(), DcfManagerTest::ExpectInternalCollision(), and DcfManagerTest::NotifyInternalCollision().
|
private |
Definition at line 59 of file dcf-manager-test.cc.
Referenced by DoNotifyAccessGranted(), DoNotifyChannelSwitching(), DoNotifyCollision(), and DoNotifyInternalCollision().
|
private |
Definition at line 58 of file dcf-manager-test.cc.
Referenced by DoNotifyAccessGranted(), DoNotifyChannelSwitching(), DoNotifyCollision(), and DoNotifyInternalCollision().