31 #include "ns3/cbr-application.h"
32 #include "ns3/cbr-helper.h"
33 #include "ns3/config.h"
36 #include "ns3/packet-sink-helper.h"
37 #include "ns3/packet-sink.h"
38 #include "ns3/satellite-env-variables.h"
39 #include "ns3/satellite-helper.h"
40 #include "ns3/satellite-topology.h"
41 #include "ns3/simulator.h"
42 #include "ns3/singleton.h"
43 #include "ns3/string.h"
71 virtual void DoRun(
void);
76 : TestCase(
"'Forward Link Unicast, Simple' case tests successful transmission of a single UDP "
77 "packet from GW connected user to UT connected user in simple scenario.")
94 Singleton<SatEnvVariables>::Get()->DoInitialize();
95 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-simple-unicast",
103 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
104 Config::SetDefault(
"ns3::SatGwHelper::RtnLinkErrorModel", EnumValue(em));
107 Ptr<SatHelper> helper = CreateObject<SatHelper>(
108 Singleton<SatEnvVariables>::Get()->LocateDataDirectory() +
"/scenarios/geo-33E");
109 helper->CreatePredefinedScenario(SatHelper::SIMPLE);
111 NodeContainer utUsers = Singleton<SatTopology>::Get()->GetUtUserNodes();
118 CbrHelper cbr(
"ns3::UdpSocketFactory",
119 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
120 cbr.SetAttribute(
"Interval", StringValue(
"1s"));
122 ApplicationContainer gwApps = cbr.Install(Singleton<SatTopology>::Get()->GetGwUserNodes());
123 gwApps.Start(Seconds(1.0));
124 gwApps.Stop(Seconds(2.1));
127 PacketSinkHelper sink(
"ns3::UdpSocketFactory",
128 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
130 ApplicationContainer utApps = sink.Install(utUsers);
131 utApps.Start(Seconds(1.0));
132 utApps.Stop(Seconds(3.0));
134 Simulator::Stop(Seconds(11));
137 Simulator::Destroy();
139 Ptr<PacketSink> receiver = DynamicCast<PacketSink>(utApps.Get(0));
140 Ptr<CbrApplication> sender = DynamicCast<CbrApplication>(gwApps.Get(0));
145 NS_TEST_ASSERT_MSG_NE(sender->GetSent(), (uint32_t)0,
"Nothing sent!");
146 NS_TEST_ASSERT_MSG_EQ(receiver->GetTotalRx(), sender->GetSent(),
"Packets were lost!");
148 Singleton<SatEnvVariables>::Get()->DoDispose();
176 virtual void DoRun(
void);
181 : TestCase(
"'Forward Link Unicast, Larger' case tests successful transmission of a single UDP "
182 "packet from GW connected user to UT connected users in larger scenario.")
199 Singleton<SatEnvVariables>::Get()->DoInitialize();
200 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-simple-unicast",
208 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
209 Config::SetDefault(
"ns3::SatGwHelper::RtnLinkErrorModel", EnumValue(em));
212 Ptr<SatHelper> helper = CreateObject<SatHelper>(
213 Singleton<SatEnvVariables>::Get()->LocateDataDirectory() +
"/scenarios/geo-33E");
214 helper->CreatePredefinedScenario(SatHelper::LARGER);
216 NodeContainer utUsers = Singleton<SatTopology>::Get()->GetUtUserNodes();
227 CbrHelper cbr(
"ns3::UdpSocketFactory",
228 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
229 cbr.SetAttribute(
"Interval", StringValue(
"1s"));
230 ApplicationContainer gwApps = cbr.Install(Singleton<SatTopology>::Get()->GetGwUserNodes());
235 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(4)), port))));
236 gwApps.Add(cbr.Install(Singleton<SatTopology>::Get()->GetGwUserNodes()));
238 gwApps.Start(Seconds(1.0));
239 gwApps.Stop(Seconds(2.1));
244 PacketSinkHelper sink(
"ns3::UdpSocketFactory",
245 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
246 ApplicationContainer utApps = sink.Install(utUsers.Get(0));
251 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(4)), port))));
252 utApps.Add(sink.Install(utUsers.Get(4)));
254 utApps.Start(Seconds(1.0));
255 utApps.Stop(Seconds(3.0));
257 Simulator::Stop(Seconds(11));
260 Simulator::Destroy();
262 Ptr<PacketSink> receiver1 = DynamicCast<PacketSink>(utApps.Get(0));
263 Ptr<CbrApplication> sender1 = DynamicCast<CbrApplication>(gwApps.Get(0));
265 Ptr<PacketSink> receiver2 = DynamicCast<PacketSink>(utApps.Get(1));
266 Ptr<CbrApplication> sender2 = DynamicCast<CbrApplication>(gwApps.Get(1));
272 NS_TEST_ASSERT_MSG_NE(sender1->GetSent(), (uint32_t)0,
"Nothing sent by sender 1!");
273 NS_TEST_ASSERT_MSG_EQ(receiver1->GetTotalRx(),
275 "Packets were lost between sender 1 and receiver 1!");
277 NS_TEST_ASSERT_MSG_NE(sender2->GetSent(), (uint32_t)0,
"Nothing sent !");
278 NS_TEST_ASSERT_MSG_EQ(receiver2->GetTotalRx(),
280 "Packets were lost between sender 2 and receiver 2!");
282 Singleton<SatEnvVariables>::Get()->DoDispose();
310 virtual void DoRun(
void);
315 : TestCase(
"'Forward Link Unicast, Full' case tests successful transmission of a single UDP "
316 "packet from GW connected user to UT connected users in full scenario.")
333 Singleton<SatEnvVariables>::Get()->DoInitialize();
334 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-simple-unicast",
342 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
343 Config::SetDefault(
"ns3::SatGwHelper::RtnLinkErrorModel", EnumValue(em));
346 Ptr<SatHelper> helper = CreateObject<SatHelper>(
347 Singleton<SatEnvVariables>::Get()->LocateDataDirectory() +
"/scenarios/geo-33E");
348 helper->CreatePredefinedScenario(SatHelper::FULL);
350 NodeContainer utUsers = Singleton<SatTopology>::Get()->GetUtUserNodes();
351 NodeContainer gwUsers = Singleton<SatTopology>::Get()->GetGwUserNodes();
360 Time cbrInterval = Seconds(0.5);
361 CbrHelper cbr(
"ns3::UdpSocketFactory",
362 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
363 cbr.SetAttribute(
"Interval", TimeValue(cbrInterval));
365 PacketSinkHelper sink(
"ns3::UdpSocketFactory",
366 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
369 uint32_t maxReceivers = utUsers.GetN();
370 Time cbrStartDelay = Seconds(0.01);
371 Time cbrStopDelay = Seconds(0.1);
373 Seconds(maxReceivers * cbrStartDelay.GetSeconds()) + cbrInterval + cbrInterval + Seconds(5);
375 ApplicationContainer gwApps;
376 ApplicationContainer utApps;
379 for (uint32_t i = 0; i < maxReceivers; i++)
383 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(i)), port))));
386 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(i)), port))));
388 gwApps.Add(cbr.Install(gwUsers.Get(4)));
389 utApps.Add(sink.Install(utUsers.Get(i)));
391 cbrStartDelay += Seconds(0.01);
393 gwApps.Get(i)->SetStartTime(cbrStartDelay);
394 gwApps.Get(i)->SetStopTime(cbrStartDelay + cbrInterval + cbrStopDelay);
397 utApps.Start(Seconds(0.00001));
398 utApps.Stop(stopTime);
400 Simulator::Stop(stopTime);
403 Simulator::Destroy();
409 for (uint32_t i = 0; i < maxReceivers; i++)
411 Ptr<PacketSink> receiver = DynamicCast<PacketSink>(utApps.Get(i));
412 Ptr<CbrApplication> sender = DynamicCast<CbrApplication>(gwApps.Get(i));
414 NS_TEST_ASSERT_MSG_NE(sender->GetSent(), (uint32_t)0,
"Nothing sent by sender" << i <<
"!");
415 NS_TEST_ASSERT_MSG_EQ(receiver->GetTotalRx(),
417 "Packets were lost between sender and receiver" << i <<
"!");
420 Singleton<SatEnvVariables>::Get()->DoDispose();
447 virtual void DoRun(
void);
452 : TestCase(
"'Return Link Unicast, Simple' case tests successful transmission of a single UDP "
453 "packet from UT connected user to GW connected user in simple scenario.")
470 Singleton<SatEnvVariables>::Get()->DoInitialize();
471 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-simple-unicast",
479 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
480 Config::SetDefault(
"ns3::SatGwHelper::RtnLinkErrorModel", EnumValue(em));
483 Ptr<SatHelper> helper = CreateObject<SatHelper>(
484 Singleton<SatEnvVariables>::Get()->LocateDataDirectory() +
"/scenarios/geo-33E");
485 helper->CreatePredefinedScenario(SatHelper::SIMPLE);
489 NodeContainer gwUsers = Singleton<SatTopology>::Get()->GetGwUserNodes();
494 CbrHelper cbr(
"ns3::UdpSocketFactory",
495 Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(0)), port)));
496 cbr.SetAttribute(
"Interval", StringValue(
"1s"));
498 ApplicationContainer utApps = cbr.Install(Singleton<SatTopology>::Get()->GetUtUserNodes());
499 utApps.Start(Seconds(1.0));
500 utApps.Stop(Seconds(2.1));
503 PacketSinkHelper sink(
"ns3::UdpSocketFactory",
504 Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(0)), port)));
506 ApplicationContainer gwApps = sink.Install(gwUsers);
507 gwApps.Start(Seconds(1.0));
508 gwApps.Stop(Seconds(3.0));
510 Simulator::Stop(Seconds(11));
513 Simulator::Destroy();
515 Ptr<PacketSink> receiver = DynamicCast<PacketSink>(gwApps.Get(0));
516 Ptr<CbrApplication> sender = DynamicCast<CbrApplication>(utApps.Get(0));
521 NS_TEST_ASSERT_MSG_NE(sender->GetSent(), (uint32_t)0,
"Nothing sent !");
522 NS_TEST_ASSERT_MSG_EQ(receiver->GetTotalRx(), sender->GetSent(),
"Packets were lost !");
524 Singleton<SatEnvVariables>::Get()->DoDispose();
552 virtual void DoRun(
void);
557 : TestCase(
"'Return Link Unicast, Larger' case tests successful transmission of a single UDP "
558 "packet from UT connected user to GW connected user in larger scenario.")
575 Singleton<SatEnvVariables>::Get()->DoInitialize();
576 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-simple-unicast",
584 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
585 Config::SetDefault(
"ns3::SatGwHelper::RtnLinkErrorModel", EnumValue(em));
588 Ptr<SatHelper> helper = CreateObject<SatHelper>(
589 Singleton<SatEnvVariables>::Get()->LocateDataDirectory() +
"/scenarios/geo-33E");
590 helper->CreatePredefinedScenario(SatHelper::LARGER);
594 NodeContainer gwUsers = Singleton<SatTopology>::Get()->GetGwUserNodes();
595 NodeContainer utUsers = Singleton<SatTopology>::Get()->GetUtUserNodes();
604 CbrHelper cbr(
"ns3::UdpSocketFactory",
605 Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(0)), port)));
606 cbr.SetAttribute(
"Interval", StringValue(
"1s"));
607 ApplicationContainer utApps = cbr.Install(utUsers.Get(0));
610 utApps.Add(cbr.Install(utUsers.Get(4)));
612 utApps.Start(Seconds(1.0));
613 utApps.Stop(Seconds(2.1));
616 PacketSinkHelper sink(
"ns3::UdpSocketFactory",
617 Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(0)), port)));
619 ApplicationContainer gwApps = sink.Install(gwUsers);
620 gwApps.Start(Seconds(1.0));
621 gwApps.Stop(Seconds(3.0));
623 Simulator::Stop(Seconds(11));
626 Simulator::Destroy();
628 Ptr<PacketSink> receiver = DynamicCast<PacketSink>(gwApps.Get(0));
629 Ptr<CbrApplication> sender1 = DynamicCast<CbrApplication>(utApps.Get(0));
630 Ptr<CbrApplication> sender2 = DynamicCast<CbrApplication>(utApps.Get(1));
635 NS_TEST_ASSERT_MSG_NE(sender1->GetSent(), (uint32_t)0,
"Nothing sent by sender 1!");
636 NS_TEST_ASSERT_MSG_NE(sender2->GetSent(), (uint32_t)0,
"Nothing sent by sender 2!");
637 NS_TEST_ASSERT_MSG_EQ(receiver->GetTotalRx(),
638 sender1->GetSent() + sender2->GetSent(),
639 "Packets were lost!");
641 Singleton<SatEnvVariables>::Get()->DoDispose();
668 virtual void DoRun(
void);
673 : TestCase(
"'Return Link Unicast, Full' case tests successful transmission of a single UDP "
674 "packet from UT connected user to GW connected user in full scenario.")
691 Singleton<SatEnvVariables>::Get()->DoInitialize();
692 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-simple-unicast",
700 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
701 Config::SetDefault(
"ns3::SatGwHelper::RtnLinkErrorModel", EnumValue(em));
704 Ptr<SatHelper> helper = CreateObject<SatHelper>(
705 Singleton<SatEnvVariables>::Get()->LocateDataDirectory() +
"/scenarios/geo-33E");
706 helper->CreatePredefinedScenario(SatHelper::FULL);
710 NodeContainer gwUsers = Singleton<SatTopology>::Get()->GetGwUserNodes();
711 NodeContainer utUsers = Singleton<SatTopology>::Get()->GetUtUserNodes();
719 PacketSinkHelper sink(
"ns3::UdpSocketFactory",
720 Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(3)), port)));
724 Time cbrInterval = Seconds(0.01);
725 CbrHelper cbr(
"ns3::UdpSocketFactory",
726 Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(3)), port)));
727 cbr.SetAttribute(
"Interval", TimeValue(cbrInterval));
730 uint32_t maxReceivers = utUsers.GetN();
731 Time cbrStartDelay = Seconds(1.0);
732 Time cbrStopDelay = Seconds(0.005);
733 Time stopTime = Seconds(maxReceivers * 0.04) + cbrStartDelay + cbrInterval + cbrStopDelay;
735 ApplicationContainer utApps;
738 for (uint32_t i = 0; i < maxReceivers; i++)
740 utApps.Add(cbr.Install(utUsers.Get(i)));
742 cbrStartDelay += Seconds(0.03);
744 utApps.Get(i)->SetStartTime(cbrStartDelay);
745 utApps.Get(i)->SetStopTime(cbrStartDelay + cbrInterval + cbrStopDelay);
748 ApplicationContainer gwApps = sink.Install(gwUsers.Get(3));
749 gwApps.Start(Seconds(0.001));
750 gwApps.Stop(stopTime);
752 Simulator::Stop(stopTime);
755 Simulator::Destroy();
761 uint32_t totalTxBytes = 0;
762 Ptr<PacketSink> receiver = DynamicCast<PacketSink>(gwApps.Get(0));
764 for (uint32_t i = 0; i < maxReceivers; i++)
766 Ptr<CbrApplication> sender = DynamicCast<CbrApplication>(utApps.Get(i));
768 NS_TEST_ASSERT_MSG_NE(sender->GetSent(), (uint32_t)0,
"Nothing sent by sender " << i + 1);
769 totalTxBytes += sender->GetSent();
772 NS_TEST_ASSERT_MSG_EQ(receiver->GetTotalRx(), totalTxBytes,
"Packets were lost!");
774 Singleton<SatEnvVariables>::Get()->DoDispose();
802 virtual void DoRun(
void);
808 "'Two-way Unicast, Simple' case tests successful transmission of a single TCP packet "
809 "from GW connected and UT connected users to each other's in simple scenario.")
826 Singleton<SatEnvVariables>::Get()->DoInitialize();
827 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-simple-unicast",
835 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
836 Config::SetDefault(
"ns3::SatGwHelper::RtnLinkErrorModel", EnumValue(em));
839 Ptr<SatHelper> helper = CreateObject<SatHelper>(
840 Singleton<SatEnvVariables>::Get()->LocateDataDirectory() +
"/scenarios/geo-33E");
841 helper->CreatePredefinedScenario(SatHelper::SIMPLE);
843 NodeContainer utUsers = Singleton<SatTopology>::Get()->GetUtUserNodes();
844 NodeContainer gwUsers = Singleton<SatTopology>::Get()->GetGwUserNodes();
851 CbrHelper cbr(
"ns3::TcpSocketFactory",
852 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
854 cbr.SetAttribute(
"Interval", StringValue(
"1s"));
857 ApplicationContainer gwCbrApp = cbr.Install(gwUsers);
858 gwCbrApp.Start(Seconds(1.0));
859 gwCbrApp.Stop(Seconds(2.9));
862 PacketSinkHelper sink(
"ns3::TcpSocketFactory",
863 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
865 ApplicationContainer utSinkApp = sink.Install(utUsers);
866 utSinkApp.Start(Seconds(1.0));
867 utSinkApp.Stop(Seconds(9.0));
872 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(0)), port))));
875 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(0)), port))));
877 ApplicationContainer gwSinkApp = sink.Install(gwUsers);
878 gwSinkApp.Start(Seconds(1.0));
879 gwSinkApp.Stop(Seconds(9.0));
881 ApplicationContainer utCbrApp = cbr.Install(utUsers);
882 utCbrApp.Start(Seconds(1.0));
883 utCbrApp.Stop(Seconds(2.9));
885 Simulator::Stop(Seconds(15));
888 Simulator::Destroy();
890 Ptr<PacketSink> utReceiver = DynamicCast<PacketSink>(utSinkApp.Get(0));
891 Ptr<CbrApplication> gwSender = DynamicCast<CbrApplication>(gwCbrApp.Get(0));
893 Ptr<PacketSink> gwReceiver = DynamicCast<PacketSink>(gwSinkApp.Get(0));
894 Ptr<CbrApplication> utSender = DynamicCast<CbrApplication>(utCbrApp.Get(0));
899 NS_TEST_ASSERT_MSG_NE(gwSender->GetSent(), (uint32_t)0,
"Nothing sent by GW app!");
900 NS_TEST_ASSERT_MSG_EQ(utReceiver->GetTotalRx(),
902 "Packets were lost to UT!");
904 NS_TEST_ASSERT_MSG_NE(utSender->GetSent(), (uint32_t)0,
"Nothing sent by UT app!");
905 NS_TEST_ASSERT_MSG_EQ(gwReceiver->GetTotalRx(),
907 "Packets were lost to GW!");
909 Singleton<SatEnvVariables>::Get()->DoDispose();
937 virtual void DoRun(
void);
943 "'Two-way Unicast, Larger' case tests successful transmission of a single TCP packet "
944 "from GW connected and UT connected users to each other's in larger scenario.")
961 Singleton<SatEnvVariables>::Get()->DoInitialize();
962 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-simple-unicast",
970 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
971 Config::SetDefault(
"ns3::SatGwHelper::RtnLinkErrorModel", EnumValue(em));
974 Ptr<SatHelper> helper = CreateObject<SatHelper>(
975 Singleton<SatEnvVariables>::Get()->LocateDataDirectory() +
"/scenarios/geo-33E");
976 helper->CreatePredefinedScenario(SatHelper::LARGER);
978 NodeContainer utUsers = Singleton<SatTopology>::Get()->GetUtUserNodes();
979 NodeContainer gwUsers = Singleton<SatTopology>::Get()->GetGwUserNodes();
986 CbrHelper cbr(
"ns3::TcpSocketFactory",
987 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
989 cbr.SetAttribute(
"Interval", StringValue(
"1s"));
992 ApplicationContainer gwCbrApps = cbr.Install(gwUsers);
996 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(4)), port))));
997 gwCbrApps.Add(cbr.Install(gwUsers));
999 gwCbrApps.Start(Seconds(1.0));
1000 gwCbrApps.Stop(Seconds(2.9));
1003 PacketSinkHelper sink(
"ns3::TcpSocketFactory",
1004 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
1006 ApplicationContainer utSinkApps = sink.Install(utUsers.Get(0));
1010 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(4)), port))));
1011 utSinkApps.Add(sink.Install(utUsers.Get(4)));
1013 utSinkApps.Start(Seconds(1.0));
1014 utSinkApps.Stop(Seconds(9.0));
1019 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(0)), port))));
1022 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(0)), port))));
1025 ApplicationContainer gwSinkApp = sink.Install(gwUsers);
1026 gwSinkApp.Start(Seconds(1.0));
1027 gwSinkApp.Stop(Seconds(9.0));
1030 ApplicationContainer utCbrApps = cbr.Install(utUsers.Get(4));
1031 utCbrApps.Add(cbr.Install(utUsers.Get(0)));
1032 utCbrApps.Start(Seconds(1.0));
1033 utCbrApps.Stop(Seconds(2.9));
1035 Simulator::Stop(Seconds(15));
1038 Simulator::Destroy();
1040 Ptr<PacketSink> utReceiver1 = DynamicCast<PacketSink>(utSinkApps.Get(0));
1041 Ptr<PacketSink> utReceiver2 = DynamicCast<PacketSink>(utSinkApps.Get(1));
1042 Ptr<CbrApplication> gwSender1 = DynamicCast<CbrApplication>(gwCbrApps.Get(0));
1043 Ptr<CbrApplication> gwSender2 = DynamicCast<CbrApplication>(gwCbrApps.Get(1));
1045 Ptr<PacketSink> gwReceiver = DynamicCast<PacketSink>(gwSinkApp.Get(0));
1046 Ptr<CbrApplication> utSender1 = DynamicCast<CbrApplication>(utCbrApps.Get(0));
1047 Ptr<CbrApplication> utSender2 = DynamicCast<CbrApplication>(utCbrApps.Get(1));
1052 NS_TEST_ASSERT_MSG_NE(gwSender1->GetSent(), (uint32_t)0,
"Nothing sent by GW app 1!");
1053 NS_TEST_ASSERT_MSG_EQ(utReceiver1->GetTotalRx(),
1054 gwSender1->GetSent(),
1055 "Packets were lost to UT1!");
1057 NS_TEST_ASSERT_MSG_NE(gwSender2->GetSent(), (uint32_t)0,
"Nothing sent by GW app 2!");
1058 NS_TEST_ASSERT_MSG_EQ(utReceiver2->GetTotalRx(),
1059 gwSender2->GetSent(),
1060 "Packets were lost to UT2!");
1062 NS_TEST_ASSERT_MSG_NE(utSender1->GetSent(), (uint32_t)0,
"Nothing sent by UT app 1!");
1063 NS_TEST_ASSERT_MSG_NE(utSender2->GetSent(), (uint32_t)0,
"Nothing sent by UT app 2!");
1064 NS_TEST_ASSERT_MSG_EQ(gwReceiver->GetTotalRx(),
1065 utSender1->GetSent() + utSender2->GetSent(),
1066 "Packets were lost to GW!");
1068 Singleton<SatEnvVariables>::Get()->DoDispose();
1083 : TestSuite(
"sat-simple-unicast", Type::SYSTEM)
'Forward Link Unicast, Simple' test case implementation, id: simple_unicast-1 / TN4.
virtual ~SimpleUnicast1()
'Forward Link Unicast, Larger' test case implementation, id: simple_unicast-2 / TN4.
virtual ~SimpleUnicast2()
'Forward Link Unicast, Full' test case implementation, id: simple_unicast-3 / TN4.
virtual ~SimpleUnicast3()
'Return Link Unicast, Simple' test case implementation, id: simple_unicast-4 / TN4.
virtual ~SimpleUnicast4()
'Return Link Unicast, Larger' test case implementation, id: simple_unicast-5 / TN4.
virtual ~SimpleUnicast5()
'Return Link Unicast, Full' test case implementation, id: simple_unicast-6 / TN4.
virtual ~SimpleUnicast6()
'Forward Link Unicast, Simple' test case implementation, id: simple_unicast-1 / TN4.
virtual ~SimpleUnicast7()
'Forward Link Unicast, Simple' test case implementation, id: simple_unicast-1 / TN4.
virtual ~SimpleUnicast8()
ErrorModel
Error model enum.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
static SimpleUnicastTestSuite simpleUnicastTestSuite