22 #include "ns3/simulator.h"
23 #include "ns3/dcf-manager.h"
33 void QueueTx (uint64_t txTime, uint64_t expectedGrantTime);
62 virtual void DoRun (
void);
72 void StartTest (uint64_t slotTime, uint64_t sifs, uint64_t eifsNoDifsNoSifs, uint32_t ackTimeoutValue = 20);
77 void AddRxOkEvt (uint64_t at, uint64_t duration);
80 void AddTxEvt (uint64_t at, uint64_t duration);
85 uint64_t expectedGrantTime, uint32_t from);
87 uint64_t expectedGrantTime, uint32_t from);
94 uint64_t expectedGrantTime, uint32_t ackDelay, uint32_t from);
162 MicroSeconds (duration));
256 MicroSeconds (duration));
265 MicroSeconds (duration));
272 MicroSeconds (duration));
282 MicroSeconds (duration));
289 MicroSeconds (duration));
299 uint64_t expectedGrantTime, uint32_t from)
305 uint64_t expectedGrantTime, uint32_t from)
313 uint64_t expectedGrantTime, uint32_t ackDelay, uint32_t from)
324 state->
QueueTx (txTime, expectedGrantTime);
332 MicroSeconds (duration));
339 MicroSeconds (duration));
346 MicroSeconds (duration));
void AddNavStart(uint64_t at, uint64_t duration)
virtual void DoNotifyCollision(void)
void AddSwitchingEvt(uint64_t at, uint64_t duration)
void RequestAccess(DcfState *state)
#define NS_ASSERT(condition)
void DoAccessRequest(uint64_t txTime, uint64_t expectedGrantTime, DcfStateTest *state)
void AddAckTimeoutReset(uint64_t at)
void SetAifsn(uint32_t aifsn)
static EventId Schedule(Time const &time, MEM mem_ptr, OBJ obj)
ExpectedCollisions m_expectedCollision
std::list< ExpectedGrant > ExpectedGrants
std::pair< uint64_t, uint64_t > ExpectedGrant
ExpectedCollisions m_expectedInternalCollision
void AddAccessRequestWithAckTimeout(uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t from)
static DcfTestSuite g_dcfTestSuite
void NotifyNavResetNow(Time duration)
std::vector< DcfStateTest * > DcfStates
void NotifyRxEndOkNow(void)
void AddRxInsideSifsEvt(uint64_t at, uint64_t duration)
void NotifyTxStartNow(Time duration)
void NotifyAckTimeoutStartNow(Time duration)
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
Manage a set of ns3::DcfStateHandle a set of independent ns3::DcfState, each of which represents a si...
void AddAccessRequestWithSuccessfullAck(uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t ackDelay, uint32_t from)
keep track of the state needed for a single DCF function.Multiple instances of a DcfState can be regi...
void AddCcaBusyEvt(uint64_t at, uint64_t duration)
void ExpectCollision(uint64_t time, uint32_t from, uint32_t nSlots)
void AddTxEvt(uint64_t at, uint64_t duration)
void NotifyCollision(uint32_t i)
static void Destroy(void)
void AddRxStartEvt(uint64_t at, uint64_t duration)
DcfStateTest(DcfManagerTest *test, uint32_t i)
void QueueTx(uint64_t txTime, uint64_t expectedGrantTime)
void StartBackoffNow(uint32_t nSlots)
uint32_t m_ackTimeoutValue
virtual void DoRun(void)
Implementation to actually run this TestCase.
void NotifyRxEndErrorNow(void)
virtual void DoNotifyInternalCollision(void)
void StartTest(uint64_t slotTime, uint64_t sifs, uint64_t eifsNoDifsNoSifs, uint32_t ackTimeoutValue=20)
std::list< struct ExpectedCollision > ExpectedCollisions
void SetEifsNoDifs(Time eifsNoDifs)
virtual void DoNotifyChannelSwitching(void)
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual child TestCase case to this TestCase.
void ExpectInternalCollision(uint64_t time, uint32_t from, uint32_t nSlots)
void AddRxOkEvt(uint64_t at, uint64_t duration)
void NotifyMaybeCcaBusyStartNow(Time duration)
void AddDcfState(uint32_t aifsn)
void NotifyAccessGranted(uint32_t i)
void SetSlot(Time slotTime)
void NotifyAckTimeoutResetNow()
void NotifyInternalCollision(uint32_t i)
void NotifyNavStartNow(Time duration)
Time Now(void)
create an ns3::Time instance which contains the current simulation time.
void NotifyChannelSwitching(uint32_t i)
void NotifyRxStartNow(Time duration)
void AddAccessRequest(uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t from)
ExpectedGrants m_expectedGrants
virtual void DoNotifyAccessGranted(void)
void NotifySwitchingStartNow(Time duration)
void AddNavReset(uint64_t at, uint64_t duration)
void AddRxErrorEvt(uint64_t at, uint64_t duration)
DcfManager * m_dcfManager