23 #include "ns3/qos-utils.h"
24 #include "ns3/ctrl-headers.h"
73 virtual void DoRun (
void);
78 :
TestCase (
"Check correct order of buffering when startSequence < endSeq")
94 std::list<uint16_t> m_buffer;
95 std::list<uint16_t>::iterator i,j;
96 m_buffer.push_back (0);
97 m_buffer.push_back (16);
98 m_buffer.push_back (56000);
100 uint16_t endSeq = 4000;
102 uint16_t receivedSeq = 4001 * 16;
105 for (i = m_buffer.begin (); i != m_buffer.end (); i++)
113 m_buffer.insert (i, receivedSeq);
115 receivedSeq = 3999 * 16;
118 for (i = m_buffer.begin (); i != m_buffer.end (); i++)
126 m_buffer.insert (i, receivedSeq);
128 for (i = m_buffer.begin (), j =
m_expectedBuffer.begin (); i != m_buffer.end (); i++, j++)
170 virtual void DoRun (
void);
175 :
TestCase (
"Check correct order of buffering when startSequence > endSeq")
192 std::list<uint16_t> m_buffer;
193 std::list<uint16_t>::iterator i,j;
194 m_buffer.push_back (256);
195 m_buffer.push_back (64000);
196 m_buffer.push_back (16);
198 uint16_t endSeq = 10;
200 uint16_t receivedSeq = 15 * 16;
203 for (i = m_buffer.begin (); i != m_buffer.end (); i++)
211 m_buffer.insert (i, receivedSeq);
213 receivedSeq = 15 * 16 + 1;
216 for (i = m_buffer.begin (); i != m_buffer.end (); i++)
224 m_buffer.insert (i, receivedSeq);
226 receivedSeq = 4050 * 16;
229 for (i = m_buffer.begin (); i != m_buffer.end (); i++)
237 m_buffer.insert (i, receivedSeq);
239 for (i = m_buffer.begin (), j =
m_expectedBuffer.begin (); i != m_buffer.end (); i++, j++)
257 virtual void DoRun ();
262 :
TestCase (
"Check the correctness of block ack compressed bitmap")
274 for (uint16_t i = 179; i < 220; i++)
278 for (uint16_t i = 225; i <= 242; i++)
294 for (uint16_t i = 4090; i != 10; i = (i + 1) % 4096)
298 for (uint16_t i = 22; i < 25; i++)
std::list< uint16_t > m_expectedBuffer
expected test buffer
#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, TestDuration duration=QUICK)
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.
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
the test suite
std::list< uint16_t > m_expectedBuffer
expected test buffer