23 #include "ns3/qos-utils.h" 
   24 #include "ns3/ctrl-headers.h" 
   69   virtual void DoRun (
void);
 
   74   : 
TestCase (
"Check correct order of buffering when startSequence < endSeq")
 
   90   std::list<uint16_t> m_buffer;
 
   91   std::list<uint16_t>::iterator i,j;
 
   92   m_buffer.push_back (0);
 
   93   m_buffer.push_back (16);
 
   94   m_buffer.push_back (56000);
 
   96   uint16_t endSeq = 4000;
 
   98   uint16_t receivedSeq = 4001 * 16;
 
  101   for (i = m_buffer.begin (); i != m_buffer.end (); i++)
 
  109   m_buffer.insert (i, receivedSeq);
 
  111   receivedSeq = 3999 * 16;
 
  114   for (i = m_buffer.begin (); i != m_buffer.end (); i++)
 
  122   m_buffer.insert (i, receivedSeq);
 
  124   for (i = m_buffer.begin (), j = 
m_expectedBuffer.begin (); i != m_buffer.end (); i++, j++)
 
  160   virtual void DoRun (
void);
 
  165   : 
TestCase (
"Check correct order of buffering when startSequence > endSeq")
 
  182   std::list<uint16_t> m_buffer;
 
  183   std::list<uint16_t>::iterator i,j;
 
  184   m_buffer.push_back (256);
 
  185   m_buffer.push_back (64000);
 
  186   m_buffer.push_back (16);
 
  188   uint16_t endSeq = 10;
 
  190   uint16_t receivedSeq = 15 * 16;
 
  193   for (i = m_buffer.begin (); i != m_buffer.end (); i++)
 
  201   m_buffer.insert (i, receivedSeq);
 
  203   receivedSeq = 15 * 16 + 1;
 
  206   for (i = m_buffer.begin (); i != m_buffer.end (); i++)
 
  214   m_buffer.insert (i, receivedSeq);
 
  216   receivedSeq = 4050 * 16;
 
  219   for (i = m_buffer.begin (); i != m_buffer.end (); i++)
 
  227   m_buffer.insert (i, receivedSeq);
 
  229   for (i = m_buffer.begin (), j = 
m_expectedBuffer.begin (); i != m_buffer.end (); i++, j++)
 
  242   virtual void DoRun ();
 
  247   : 
TestCase (
"Check the correctness of block ack compressed bitmap")
 
  259   for (uint32_t i = 179; i < 220; i++)
 
  263   for (uint32_t i = 225; i <= 242; i++)
 
  279   for (uint32_t i = 4090; i != 10; i = (i + 1) % 4096)
 
  283   for (uint32_t i = 22; i < 25; i++)
 
std::list< uint16_t > m_expectedBuffer
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not. 
void AddTestCase(TestCase *testCase, enum TestDuration duration)
Add an individual child TestCase to this test suite. 
virtual ~PacketBufferingCaseA()
virtual ~PacketBufferingCaseB()
virtual void DoRun(void)
Implementation to actually run this TestCase. 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
This simple test verifies the correctness of buffering for packets received under block ack...
uint32_t QosUtilsMapSeqControlToUniqueInteger(uint16_t seqControl, uint16_t endSequence)
Next function is useful to correctly sort buffered packets under block ack. 
virtual void DoRun(void)
Implementation to actually run this TestCase. 
static BlockAckTestSuite g_blockAckTestSuite
std::list< uint16_t > m_expectedBuffer