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