A Discrete-Event Network Simulator
API
DcfManagerTest Class Reference

Dcf Manager Test. More...

+ Inheritance diagram for DcfManagerTest:
+ Collaboration diagram for DcfManagerTest:

Public Member Functions

 DcfManagerTest ()
 
virtual void DoRun (void)
 Implementation to actually run this TestCase. More...
 
void NotifyAccessGranted (uint32_t i)
 Notify access granted function. More...
 
void NotifyChannelSwitching (uint32_t i)
 Notify channel switching function. More...
 
void NotifyCollision (uint32_t i)
 Notify collision function. More...
 
void NotifyInternalCollision (uint32_t i)
 Notify internal collision function. More...
 
- Public Member Functions inherited from ns3::TestCase
virtual ~TestCase ()
 Destructor. More...
 
std::string GetName (void) const
 

Private Types

typedef std::vector< Ptr< DcaTxopTest > > Dca
 the DCA TXOP tests typedef More...
 
typedef std::vector< Ptr< DcfStateTest > > DcfStates
 the DCF test states typedef More...
 

Private Member Functions

void AddAccessRequest (uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t from)
 Add access function. More...
 
void AddAccessRequestWithAckTimeout (uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t from)
 Add access request with ack timeout. More...
 
void AddAccessRequestWithSuccessfullAck (uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t ackDelay, uint32_t from)
 Add access request with successful ack. More...
 
void AddAckTimeoutReset (uint64_t at)
 Add ack timeout reset function. More...
 
void AddCcaBusyEvt (uint64_t at, uint64_t duration)
 Add CCA busy event function. More...
 
void AddDcfState (uint32_t aifsn)
 Add DCF state function. More...
 
void AddNavReset (uint64_t at, uint64_t duration)
 Add NAV reset function. More...
 
void AddNavStart (uint64_t at, uint64_t duration)
 Add NAV start function. More...
 
void AddRxErrorEvt (uint64_t at, uint64_t duration)
 Add receive error event function. More...
 
void AddRxInsideSifsEvt (uint64_t at, uint64_t duration)
 Add receive inside SIFS event function. More...
 
void AddRxOkEvt (uint64_t at, uint64_t duration)
 Add expect collision function. More...
 
void AddRxStartEvt (uint64_t at, uint64_t duration)
 Add receive start event function. More...
 
void AddSwitchingEvt (uint64_t at, uint64_t duration)
 Add switching event function. More...
 
void AddTxEvt (uint64_t at, uint64_t duration)
 Add transmit event function. More...
 
void DoAccessRequest (uint64_t txTime, uint64_t expectedGrantTime, Ptr< DcfStateTest > state)
 Add access request with successful ack. More...
 
void EndTest (void)
 End test function. More...
 
void ExpectCollision (uint64_t time, uint32_t nSlots, uint32_t from)
 Expect internal collision function. More...
 
void ExpectInternalCollision (uint64_t time, uint32_t nSlots, uint32_t from)
 Expect internal collision function. More...
 
void StartTest (uint64_t slotTime, uint64_t sifs, uint64_t eifsNoDifsNoSifs, uint32_t ackTimeoutValue=20)
 Start test function. More...
 

Private Attributes

uint32_t m_ackTimeoutValue
 the ack timeout value More...
 
Dca m_dca
 the DCA More...
 
Ptr< DcfManagerm_dcfManager
 the DCF manager More...
 
DcfStates m_dcfStates
 the DCF states More...
 

Additional Inherited Members

- Public Types inherited from ns3::TestCase
enum  TestDuration { QUICK = 1, EXTENSIVE = 2, TAKES_FOREVER = 3 }
 How long the test takes to execute. More...
 
- Protected Member Functions inherited from ns3::TestCase
 TestCase (std::string name)
 Constructor. More...
 
void AddTestCase (TestCase *testCase, TestDuration duration=QUICK)
 Add an individual child TestCase to this test suite. More...
 
TestCaseGetParent () const
 Get the parent of this TestCsse. More...
 
bool IsStatusFailure (void) const
 Check if any tests failed. More...
 
bool IsStatusSuccess (void) const
 Check if all tests passed. More...
 
void SetDataDir (std::string directory)
 Set the data directory where reference trace files can be found. More...
 
void ReportTestFailure (std::string cond, std::string actual, std::string limit, std::string message, std::string file, int32_t line)
 Log the failure of this TestCase. More...
 
bool MustAssertOnFailure (void) const
 Check if this run should assert on failure. More...
 
bool MustContinueOnFailure (void) const
 Check if this run should continue on failure. More...
 
std::string CreateDataDirFilename (std::string filename)
 Construct the full path to a file in the data directory. More...
 
std::string CreateTempDirFilename (std::string filename)
 Construct the full path to a file in a temporary directory. More...
 

Detailed Description

Dcf Manager Test.

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

Member Typedef Documentation

typedef std::vector<Ptr<DcaTxopTest> > DcfManagerTest::Dca
private

the DCA TXOP tests typedef

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

typedef std::vector<Ptr<DcfStateTest> > DcfManagerTest::DcfStates
private

the DCF test states typedef

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

Constructor & Destructor Documentation

DcfManagerTest::DcfManagerTest ( )

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

Member Function Documentation

void DcfManagerTest::AddAccessRequest ( uint64_t  at,
uint64_t  txTime,
uint64_t  expectedGrantTime,
uint32_t  from 
)
private

Add access function.

Parameters
atthe event time
txTimethe transmit time
expectedGrantTimethe expected grant time
from

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

References AddAccessRequestWithSuccessfullAck().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddAccessRequestWithAckTimeout ( uint64_t  at,
uint64_t  txTime,
uint64_t  expectedGrantTime,
uint32_t  from 
)
private

Add access request with ack timeout.

Parameters
attime to schedule DoAccessRequest event
txTimeDoAccessRequest txTime
expectedGrantTimeDoAccessRequest expectedGrantTime
fromDoAccessRequest DcfStateTest

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

References DoAccessRequest(), m_dcfStates, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddAccessRequestWithSuccessfullAck ( uint64_t  at,
uint64_t  txTime,
uint64_t  expectedGrantTime,
uint32_t  ackDelay,
uint32_t  from 
)
private

Add access request with successful ack.

Parameters
attime to schedule DoAccessRequest event
txTimeDoAccessRequest txTime
expectedGrantTimeDoAccessRequest expectedGrantTime
ackDelayis delay of the ack after txEnd
fromDoAccessRequest DcfStateTest

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

References AddAckTimeoutReset(), DoAccessRequest(), m_ackTimeoutValue, m_dcfStates, ns3::MicroSeconds(), ns3::Now(), and NS_ASSERT.

Referenced by AddAccessRequest(), and DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddAckTimeoutReset ( uint64_t  at)
private

Add ack timeout reset function.

Parameters
atthe event time

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

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by AddAccessRequestWithSuccessfullAck().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddCcaBusyEvt ( uint64_t  at,
uint64_t  duration 
)
private

Add CCA busy event function.

Parameters
atthe event time
durationthe duration

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

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddDcfState ( uint32_t  aifsn)
private

Add DCF state function.

Parameters
aifsnthe AIFSN

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

References ns3::DcfManager::Add(), m_dca, m_dcfManager, m_dcfStates, and ns3::DcfState::SetAifsn().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddNavReset ( uint64_t  at,
uint64_t  duration 
)
private

Add NAV reset function.

Parameters
atthe event time
durationthe duration

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

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddNavStart ( uint64_t  at,
uint64_t  duration 
)
private

Add NAV start function.

Parameters
atthe event time
durationthe duration

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

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddRxErrorEvt ( uint64_t  at,
uint64_t  duration 
)
private

Add receive error event function.

Parameters
atthe event time
durationthe duration

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

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddRxInsideSifsEvt ( uint64_t  at,
uint64_t  duration 
)
private

Add receive inside SIFS event function.

Parameters
atthe event time
durationthe duration

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

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddRxOkEvt ( uint64_t  at,
uint64_t  duration 
)
private

Add expect collision function.

Parameters
at
durationthe duration

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

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddRxStartEvt ( uint64_t  at,
uint64_t  duration 
)
private

Add receive start event function.

Parameters
atthe event time
durationthe duration

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

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddSwitchingEvt ( uint64_t  at,
uint64_t  duration 
)
private

Add switching event function.

Parameters
atthe event time
durationthe duration

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

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddTxEvt ( uint64_t  at,
uint64_t  duration 
)
private

Add transmit event function.

Parameters
atthe event time
durationthe duration

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

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::DoAccessRequest ( uint64_t  txTime,
uint64_t  expectedGrantTime,
Ptr< DcfStateTest state 
)
private

Add access request with successful ack.

Parameters
txTimeDoAccessRequest txTime
expectedGrantTimeDoAccessRequest expectedGrantTime
stateDcfStateTest

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

References m_dcfManager, DcfStateTest::QueueTx(), and ns3::DcfManager::RequestAccess().

Referenced by AddAccessRequestWithAckTimeout(), and AddAccessRequestWithSuccessfullAck().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::DoRun ( void  )
virtual

Implementation to actually run this TestCase.

Subclasses should override this method to conduct their tests.

Implements ns3::TestCase.

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

References AddAccessRequest(), AddAccessRequestWithAckTimeout(), AddAccessRequestWithSuccessfullAck(), AddCcaBusyEvt(), AddDcfState(), AddNavReset(), AddNavStart(), AddRxErrorEvt(), AddRxInsideSifsEvt(), AddRxOkEvt(), AddRxStartEvt(), AddSwitchingEvt(), AddTxEvt(), EndTest(), ExpectCollision(), ExpectInternalCollision(), and StartTest().

+ Here is the call graph for this function:

void DcfManagerTest::EndTest ( void  )
private

End test function.

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

References ns3::Object::Dispose(), m_dca, m_dcfManager, m_dcfStates, DcfStateTest::m_expectedCollision, DcfStateTest::m_expectedGrants, DcfStateTest::m_expectedInternalCollision, and NS_TEST_EXPECT_MSG_EQ.

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::ExpectCollision ( uint64_t  time,
uint32_t  nSlots,
uint32_t  from 
)
private

Expect internal collision function.

Parameters
timethe expectedtime
nSlotsthe number of slots
fromthe expected from

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

References DcfStateTest::ExpectedCollision::at, m_dcfStates, DcfStateTest::m_expectedCollision, and DcfStateTest::ExpectedCollision::nSlots.

Referenced by DoRun().

+ Here is the caller graph for this function:

void DcfManagerTest::ExpectInternalCollision ( uint64_t  time,
uint32_t  nSlots,
uint32_t  from 
)
private

Expect internal collision function.

Parameters
timethe expectedtime
nSlotsthe number of slots
fromthe expected from

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

References DcfStateTest::ExpectedCollision::at, m_dcfStates, DcfStateTest::m_expectedInternalCollision, and DcfStateTest::ExpectedCollision::nSlots.

Referenced by DoRun().

+ Here is the caller graph for this function:

void DcfManagerTest::NotifyAccessGranted ( uint32_t  i)

Notify access granted function.

Parameters
ithe DCF state

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

References m_ackTimeoutValue, m_dcfManager, m_dcfStates, DcfStateTest::m_expectedGrants, ns3::MicroSeconds(), ns3::DcfManager::NotifyAckTimeoutStartNow(), ns3::DcfManager::NotifyTxStartNow(), ns3::Now(), and NS_TEST_EXPECT_MSG_EQ.

Referenced by DcaTxopTest::NotifyAccessGranted().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::NotifyChannelSwitching ( uint32_t  i)

Notify channel switching function.

Parameters
ithe DCF state

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

References m_dcfStates, DcfStateTest::m_expectedGrants, ns3::MicroSeconds(), ns3::Now(), and NS_TEST_EXPECT_MSG_EQ.

Referenced by DcaTxopTest::NotifyChannelSwitching().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::NotifyCollision ( uint32_t  i)

Notify collision function.

Parameters
ithe DCF state

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

References DcfStateTest::ExpectedCollision::at, m_dcfStates, DcfStateTest::m_expectedCollision, ns3::MicroSeconds(), ns3::Now(), NS_TEST_EXPECT_MSG_EQ, DcfStateTest::ExpectedCollision::nSlots, and ns3::DcfState::StartBackoffNow().

Referenced by DcaTxopTest::NotifyCollision().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::NotifyInternalCollision ( uint32_t  i)

Notify internal collision function.

Parameters
ithe DCF state

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

References DcfStateTest::ExpectedCollision::at, m_dcfStates, DcfStateTest::m_expectedInternalCollision, ns3::MicroSeconds(), ns3::Now(), NS_TEST_EXPECT_MSG_EQ, DcfStateTest::ExpectedCollision::nSlots, and ns3::DcfState::StartBackoffNow().

Referenced by DcaTxopTest::NotifyInternalCollision().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::StartTest ( uint64_t  slotTime,
uint64_t  sifs,
uint64_t  eifsNoDifsNoSifs,
uint32_t  ackTimeoutValue = 20 
)
private

Start test function.

Parameters
slotTimethe slot time
sifsthe SIFS
eifsNoDifsNoSifsthe EIFS no DIFS no SIFS
ackTimeoutValuethe ack timeout value

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

References m_ackTimeoutValue, m_dcfManager, ns3::MicroSeconds(), ns3::DcfManager::SetEifsNoDifs(), ns3::DcfManager::SetSifs(), and ns3::DcfManager::SetSlot().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

uint32_t DcfManagerTest::m_ackTimeoutValue
private

the ack timeout value

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

Referenced by AddAccessRequestWithSuccessfullAck(), NotifyAccessGranted(), and StartTest().

Dca DcfManagerTest::m_dca
private

the DCA

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

Referenced by AddDcfState(), and EndTest().


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