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