A Discrete-Event Network Simulator
API
DcfStateTest Class Reference
+ Inheritance diagram for DcfStateTest:
+ Collaboration diagram for DcfStateTest:

Classes

struct  ExpectedCollision
 

Public Member Functions

 DcfStateTest (DcfManagerTest *test, uint32_t i)
 
bool IsEdca (void) const
 
void QueueTx (uint64_t txTime, uint64_t expectedGrantTime)
 
- Public Member Functions inherited from ns3::DcfState
 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 ExpectedCollisionExpectedCollisions
 
typedef std::pair< uint64_t, uint64_t > ExpectedGrant
 
typedef std::list< ExpectedGrantExpectedGrants
 

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
 
DcfManagerTestm_test
 

Friends

class DcfManagerTest
 

Detailed Description

Definition at line 29 of file dcf-manager-test.cc.

Member Typedef Documentation

Definition at line 53 of file dcf-manager-test.cc.

typedef std::pair<uint64_t,uint64_t> DcfStateTest::ExpectedGrant
private

Definition at line 46 of file dcf-manager-test.cc.

Definition at line 47 of file dcf-manager-test.cc.

Constructor & Destructor Documentation

DcfStateTest::DcfStateTest ( DcfManagerTest test,
uint32_t  i 
)

Definition at line 111 of file dcf-manager-test.cc.

Referenced by DcfManagerTest::AddDcfState().

+ Here is the caller graph for this function:

Member Function Documentation

void DcfStateTest::DoNotifyAccessGranted ( void  )
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().

+ Here is the call graph for this function:

void DcfStateTest::DoNotifyChannelSwitching ( void  )
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().

+ Here is the call graph for this function:

void DcfStateTest::DoNotifyCollision ( void  )
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().

+ Here is the call graph for this function:

void DcfStateTest::DoNotifyInternalCollision ( void  )
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().

+ Here is the call graph for this function:

void DcfStateTest::DoNotifySleep ( void  )
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.

void DcfStateTest::DoNotifyWakeUp ( void  )
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.

bool DcfStateTest::IsEdca ( void  ) const
virtual
Returns
whether this DCF state is an EDCA state

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

+ Here is the caller graph for this function:

Friends And Related Function Documentation

friend class DcfManagerTest
friend

Definition at line 38 of file dcf-manager-test.cc.

Member Data Documentation

ExpectedCollisions DcfStateTest::m_expectedCollision
private
ExpectedCollisions DcfStateTest::m_expectedInternalCollision
private
uint32_t DcfStateTest::m_i
private
DcfManagerTest* DcfStateTest::m_test
private

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