22 #include "ns3/qos-utils.h"
23 #include "ns3/ctrl-headers.h"
67 virtual void DoRun (
void);
68 std::list<uint16_t> m_expectedBuffer;
71 PacketBufferingCaseA::PacketBufferingCaseA ()
72 :
TestCase (
"Check correct order of buffering when startSequence < endSeq")
74 m_expectedBuffer.push_back (64016);
75 m_expectedBuffer.push_back (0);
76 m_expectedBuffer.push_back (16);
77 m_expectedBuffer.push_back (56000);
78 m_expectedBuffer.push_back (63984);
81 PacketBufferingCaseA::~PacketBufferingCaseA ()
88 std::list<uint16_t> m_buffer;
89 std::list<uint16_t>::iterator i,j;
90 m_buffer.push_back (0);
91 m_buffer.push_back (16);
92 m_buffer.push_back (56000);
94 uint16_t endSeq = 4000;
96 uint16_t receivedSeq = 4001 * 16;
103 m_buffer.insert (i, receivedSeq);
106 receivedSeq = 3999 * 16;
113 m_buffer.insert (i, receivedSeq);
116 for (i = m_buffer.begin (), j = m_expectedBuffer.begin (); i != m_buffer.end (); i++, j++)
118 NS_TEST_EXPECT_MSG_EQ (*i, *j,
"error in buffer order");
151 virtual void DoRun (
void);
152 std::list<uint16_t> m_expectedBuffer;
155 PacketBufferingCaseB::PacketBufferingCaseB ()
156 :
TestCase (
"Check correct order of buffering when startSequence > endSeq")
158 m_expectedBuffer.push_back (240);
159 m_expectedBuffer.push_back (241);
160 m_expectedBuffer.push_back (256);
161 m_expectedBuffer.push_back (64000);
162 m_expectedBuffer.push_back (64800);
163 m_expectedBuffer.push_back (16);
166 PacketBufferingCaseB::~PacketBufferingCaseB ()
173 std::list<uint16_t> m_buffer;
174 std::list<uint16_t>::iterator i,j;
175 m_buffer.push_back (256);
176 m_buffer.push_back (64000);
177 m_buffer.push_back (16);
179 uint16_t endSeq = 10;
181 uint16_t receivedSeq = 15 * 16;
188 m_buffer.insert (i, receivedSeq);
191 receivedSeq = 15 * 16 + 1;
198 m_buffer.insert (i, receivedSeq);
201 receivedSeq = 4050 * 16;
208 m_buffer.insert (i, receivedSeq);
211 for (i = m_buffer.begin (), j = m_expectedBuffer.begin (); i != m_buffer.end (); i++, j++)
213 NS_TEST_EXPECT_MSG_EQ (*i, *j,
"error in buffer order");
223 virtual void DoRun ();
227 CtrlBAckResponseHeaderTest::CtrlBAckResponseHeaderTest ()
228 :
TestCase (
"Check the correctness of block ack compressed bitmap")
235 m_blockAckHdr.SetType (COMPRESSED_BLOCK_ACK);
239 m_blockAckHdr.SetStartingSequence (179);
240 for (uint32_t i = 179; i < 220; i++)
242 m_blockAckHdr.SetReceivedPacket (i);
244 for (uint32_t i = 225; i <= 242; i++)
246 m_blockAckHdr.SetReceivedPacket (i);
248 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.GetCompressedBitmap (), 0xffffc1ffffffffffLL,
"error in compressed bitmap");
249 m_blockAckHdr.SetReceivedPacket (1500);
250 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.GetCompressedBitmap (), 0xffffc1ffffffffffLL,
"error in compressed bitmap");
251 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.IsPacketReceived (220),
false,
"error in compressed bitmap");
252 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.IsPacketReceived (225),
true,
"error in compressed bitmap");
253 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.IsPacketReceived (1500),
false,
"error in compressed bitmap");
255 m_blockAckHdr.ResetBitmap ();
259 m_blockAckHdr.SetStartingSequence (4090);
260 for (uint32_t i = 4090; i != 10; i = (i + 1) % 4096)
262 m_blockAckHdr.SetReceivedPacket (i);
264 for (uint32_t i = 22; i < 25; i++)
266 m_blockAckHdr.SetReceivedPacket (i);
268 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.GetCompressedBitmap (), 0x00000000007000ffffLL,
"error in compressed bitmap");
269 m_blockAckHdr.SetReceivedPacket (80);
270 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.GetCompressedBitmap (), 0x00000000007000ffffLL,
"error in compressed bitmap");
271 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.IsPacketReceived (4090),
true,
"error in compressed bitmap");
272 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.IsPacketReceived (4095),
true,
"error in compressed bitmap");
273 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.IsPacketReceived (10),
false,
"error in compressed bitmap");
274 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.IsPacketReceived (35),
false,
"error in compressed bitmap");
275 NS_TEST_EXPECT_MSG_EQ (m_blockAckHdr.IsPacketReceived (80),
false,
"error in compressed bitmap");
284 BlockAckTestSuite::BlockAckTestSuite ()
#define NS_LOG_COMPONENT_DEFINE(name)
virtual void DoRun(void)
Implementation to actually run this test case.
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual test case to this test suite.
uint32_t QosUtilsMapSeqControlToUniqueInteger(uint16_t seqControl, uint16_t endSequence)
virtual void DoRun(void)
Implementation to actually run this test case.