27 #include "../model/satellite-queue.h"
28 #include "../model/satellite-return-link-encapsulator.h"
29 #include "../utils/satellite-env-variables.h"
31 #include "ns3/callback.h"
33 #include "ns3/packet.h"
35 #include "ns3/random-variable-stream.h"
36 #include "ns3/singleton.h"
68 void Receive(Ptr<Packet> p, Mac48Address source, Mac48Address dest);
71 virtual void DoRun(
void);
85 : TestCase(
"Test RLE.")
97 Singleton<SatEnvVariables>::Get()->DoInitialize();
98 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-rle",
"",
true);
100 Mac48Address source = Mac48Address::Allocate();
101 Mac48Address dest = Mac48Address::Allocate();
104 Ptr<SatQueue> queue = CreateObject<SatQueue>(rcIndex);
105 Ptr<SatReturnLinkEncapsulator> rle =
106 CreateObject<SatReturnLinkEncapsulator>(source, dest, source, dest, rcIndex);
107 rle->SetQueue(queue);
113 Ptr<UniformRandomVariable> unif = CreateObject<UniformRandomVariable>();
116 uint32_t numPackets(100);
119 for (uint32_t i = 0; i < numPackets; ++i)
121 uint32_t packetSize = unif->GetInteger(3, 1500);
122 Ptr<Packet> packet = Create<Packet>(packetSize);
124 rle->EnquePdu(packet, dest);
131 uint32_t nextMinTxO(0);
132 uint32_t bytesLeft(1);
133 while (bytesLeft > 0)
135 Ptr<Packet> p = rle->NotifyTxOpportunity(unif->GetInteger(3, 1500), bytesLeft, nextMinTxO);
144 "All sent packets are not received");
146 Simulator::Destroy();
148 Singleton<SatEnvVariables>::Get()->DoDispose();
154 uint32_t rcvdPacketSize = p->GetSize();
164 "Wrong size packet received");
178 : TestSuite(
"sat-rle-test", Type::UNIT)
Return Link Encapsulation (RLE) test case implementation.
std::vector< uint32_t > m_sentPacketSizes
Sent packet sizes.
void Receive(Ptr< Packet > p, Mac48Address source, Mac48Address dest)
Receive packet and check that it is of correct size.
virtual ~SatRleTestCase()
std::vector< uint32_t > m_rcvdPacketSizes
Received packet sizes.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
static SatRleTraceSuite SatRleTestSuite