22#include "ns3/mac-messages.h" 
   23#include "ns3/packet.h" 
   25#include "ns3/simulator.h" 
   27#include "ns3/wimax-connection.h" 
   28#include "ns3/wimax-mac-header.h" 
   45    void DoRun() 
override;
 
   49    : 
TestCase(
"Test the packet fragmentation and defragmentation.")
 
   77    hdr.
SetCid(connectionTx->GetCid());
 
   80    connectionTx->Enqueue(packet, packetType, hdr);
 
   82    uint32_t availableByteForFragment = 280;
 
   83    for (
int i = 0; i < 4; i++)
 
   86        if (connectionTx->GetQueue()->GetFirstPacketRequiredByte(packetType) >
 
   87            availableByteForFragment)
 
   89            fragment = connectionTx->Dequeue(packetType, availableByteForFragment);
 
   93            fragment = connectionTx->Dequeue(packetType);
 
   98        fragment->RemoveHeader(gnrcMacHdr);
 
   99        uint8_t type = gnrcMacHdr.
GetType();
 
  107        fragment->RemoveHeader(fragSubhdr);
 
  114                              "The fragment in not the middle one");
 
  120            connectionRx->FragmentEnqueue(fragment);
 
  126            connectionRx->FragmentEnqueue(fragment);
 
  130            for (
auto iter = fragmentsQueue.begin(); iter != fragmentsQueue.end(); ++iter)
 
  133                fullPacket->AddAtEnd(*iter);
 
  135            connectionRx->ClearFragmentsQueue();
 
Test the wimax packet fragmentation.
Ns3WimaxFragmentationTestCase()
~Ns3WimaxFragmentationTestCase() override
void DoRun() override
Implementation to actually run this TestCase.
Ns3 Wimax Fragmentation Test Suite.
Ns3WimaxFragmentationTestSuite()
Mac Management messages Section 6.3.2.3 MAC Management messages page 42, Table 14 page 43.
Smart pointer class similar to boost::intrusive_ptr.
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
Class to represent WiMAX connections.
std::list< Ptr< const Packet > > FragmentsQueue
Definition of Fragments Queue data type.
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static Ns3WimaxFragmentationTestSuite ns3WimaxFragmentationTestSuite
the test suite