29 #include "ns3/cbr-application.h"
30 #include "ns3/cbr-helper.h"
31 #include "ns3/config.h"
33 #include "ns3/packet-sink-helper.h"
34 #include "ns3/packet-sink.h"
35 #include "ns3/satellite-env-variables.h"
36 #include "ns3/satellite-gw-mac.h"
37 #include "ns3/satellite-helper.h"
38 #include "ns3/satellite-ut-mac-state.h"
39 #include "ns3/simulator.h"
40 #include "ns3/singleton.h"
41 #include "ns3/string.h"
64 virtual void DoRun(
void);
65 void GetData(Ptr<CbrApplication> sender, Ptr<PacketSink> receiver);
71 std::vector<SatUtMacState::RcstState_t>
m_states;
76 : TestCase(
"This case tests logon mechanism, and that no data is sent by UT before entering "
94 Singleton<SatEnvVariables>::Get()->DoInitialize();
95 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-ncr",
"",
true);
98 Config::SetDefault(
"ns3::SatConf::SuperFrameConfForSeq0",
99 EnumValue(SatSuperframeConf::SUPER_FRAME_CONFIG_0));
100 Config::SetDefault(
"ns3::SatBeamHelper::RandomAccessModel",
101 EnumValue(SatEnums::RA_MODEL_SLOTTED_ALOHA));
102 Config::SetDefault(
"ns3::SatBeamHelper::RaInterferenceModel",
103 EnumValue(SatPhyRxCarrierConf::IF_PER_PACKET));
104 Config::SetDefault(
"ns3::SatBeamHelper::RaCollisionModel",
105 EnumValue(SatPhyRxCarrierConf::RA_COLLISION_CHECK_AGAINST_SINR));
106 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame0_RandomAccessFrame", BooleanValue(
true));
107 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame1_RandomAccessFrame", BooleanValue(
true));
108 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame1_LogonFrame", BooleanValue(
true));
110 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame0_GuardTimeSymbols", UintegerValue(4));
111 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame1_GuardTimeSymbols", UintegerValue(4));
112 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame2_GuardTimeSymbols", UintegerValue(4));
113 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame3_GuardTimeSymbols", UintegerValue(4));
114 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame4_GuardTimeSymbols", UintegerValue(4));
115 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame5_GuardTimeSymbols", UintegerValue(4));
116 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame6_GuardTimeSymbols", UintegerValue(4));
117 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame7_GuardTimeSymbols", UintegerValue(4));
118 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame8_GuardTimeSymbols", UintegerValue(4));
119 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame9_GuardTimeSymbols", UintegerValue(4));
121 Config::SetDefault(
"ns3::SatUtMac::WindowInitLogon", TimeValue(Seconds(20)));
122 Config::SetDefault(
"ns3::SatUtMac::MaxWaitingTimeLogonResponse", TimeValue(Seconds(1)));
125 Config::SetDefault(
"ns3::SatMac::NcrVersion2", BooleanValue(
false));
126 Config::SetDefault(
"ns3::SatGwMac::NcrBroadcastPeriod", TimeValue(MilliSeconds(100)));
127 Config::SetDefault(
"ns3::SatGwMac::UseCmt", BooleanValue(
true));
128 Config::SetDefault(
"ns3::SatUtMacState::NcrSyncTimeout", TimeValue(Seconds(1)));
129 Config::SetDefault(
"ns3::SatUtMacState::NcrRecoveryTimeout", TimeValue(Seconds(10)));
130 Config::SetDefault(
"ns3::SatNcc::UtTimeout", TimeValue(Seconds(10)));
132 Config::SetDefault(
"ns3::SatBeamScheduler::ControlSlotsEnabled", BooleanValue(
true));
133 Config::SetDefault(
"ns3::SatBeamScheduler::ControlSlotInterval", TimeValue(MilliSeconds(500)));
135 Config::SetDefault(
"ns3::SatUtMac::ClockDrift", IntegerValue(100));
136 Config::SetDefault(
"ns3::SatGwMac::CmtPeriodMin", TimeValue(MilliSeconds(550)));
139 m_helper = CreateObject<SatHelper>();
140 m_helper->CreatePredefinedScenario(SatHelper::SIMPLE);
142 NodeContainer gwUsers =
m_helper->GetGwUsers();
147 CbrHelper cbr(
"ns3::UdpSocketFactory",
148 Address(InetSocketAddress(
m_helper->GetUserAddress(gwUsers.Get(0)), port)));
149 cbr.SetAttribute(
"Interval", StringValue(
"100ms"));
150 ApplicationContainer utApps = cbr.Install(
m_helper->GetUtUsers());
151 utApps.Start(Seconds(1.0));
152 utApps.Stop(Seconds(59.0));
155 PacketSinkHelper sink(
156 "ns3::UdpSocketFactory",
157 Address(InetSocketAddress(
m_helper->GetUserAddress(gwUsers.Get(0)), port)));
158 ApplicationContainer gwApps = sink.Install(gwUsers);
159 gwApps.Start(Seconds(1.0));
160 gwApps.Stop(Seconds(60.0));
162 Ptr<PacketSink> receiver = DynamicCast<PacketSink>(gwApps.Get(0));
163 Ptr<CbrApplication> sender = DynamicCast<CbrApplication>(utApps.Get(0));
167 Simulator::Stop(Seconds(60));
170 Simulator::Destroy();
172 Singleton<SatEnvVariables>::Get()->DoDispose();
174 uint32_t indexSwitchTdmaSync = 0;
175 for (uint32_t i = 0; i <
m_states.size(); i++)
177 if (
m_states[i] == SatUtMacState::TDMA_SYNC)
179 indexSwitchTdmaSync = i;
185 NS_TEST_ASSERT_MSG_NE(indexSwitchTdmaSync,
187 "UT should switch to TDMA_SYNC before the end of simulation");
190 NS_TEST_ASSERT_MSG_NE(
m_totalSent[indexSwitchTdmaSync - 1], 0,
"Data sent before logon");
193 "Nothing received before logon");
196 for (uint32_t i = indexSwitchTdmaSync + 1; i <
m_totalReceived.size() - 1; i++)
200 "Receiver should always receive data after logon");
204 NS_TEST_ASSERT_MSG_EQ(receiver->GetTotalRx(), sender->GetSent(),
"Packets were lost !");
213 DynamicCast<SatUtMac>(
214 DynamicCast<SatNetDevice>(
m_helper->UtNodes().Get(0)->GetDevice(2))->GetMac())
238 virtual void DoRun(
void);
239 void GetData(Ptr<CbrApplication> sender, Ptr<PacketSink> receiver);
252 : TestCase(
"This case tests ncr recovery mechanism.")
269 Singleton<SatEnvVariables>::Get()->DoInitialize();
270 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-ncr",
"",
true);
274 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
277 Config::SetDefault(
"ns3::SatConf::SuperFrameConfForSeq0",
278 EnumValue(SatSuperframeConf::SUPER_FRAME_CONFIG_0));
279 Config::SetDefault(
"ns3::SatBeamHelper::RandomAccessModel",
280 EnumValue(SatEnums::RA_MODEL_SLOTTED_ALOHA));
281 Config::SetDefault(
"ns3::SatBeamHelper::RaInterferenceModel",
282 EnumValue(SatPhyRxCarrierConf::IF_PER_PACKET));
283 Config::SetDefault(
"ns3::SatBeamHelper::RaCollisionModel",
284 EnumValue(SatPhyRxCarrierConf::RA_COLLISION_CHECK_AGAINST_SINR));
285 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame0_RandomAccessFrame", BooleanValue(
true));
286 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame1_RandomAccessFrame", BooleanValue(
true));
287 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame1_LogonFrame", BooleanValue(
true));
289 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame0_GuardTimeSymbols", UintegerValue(4));
290 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame1_GuardTimeSymbols", UintegerValue(4));
291 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame2_GuardTimeSymbols", UintegerValue(4));
292 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame3_GuardTimeSymbols", UintegerValue(4));
293 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame4_GuardTimeSymbols", UintegerValue(4));
294 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame5_GuardTimeSymbols", UintegerValue(4));
295 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame6_GuardTimeSymbols", UintegerValue(4));
296 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame7_GuardTimeSymbols", UintegerValue(4));
297 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame8_GuardTimeSymbols", UintegerValue(4));
298 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame9_GuardTimeSymbols", UintegerValue(4));
300 Config::SetDefault(
"ns3::SatUtMac::WindowInitLogon", TimeValue(Seconds(20)));
301 Config::SetDefault(
"ns3::SatUtMac::MaxWaitingTimeLogonResponse", TimeValue(Seconds(1)));
304 Config::SetDefault(
"ns3::SatMac::NcrVersion2", BooleanValue(
false));
305 Config::SetDefault(
"ns3::SatGwMac::NcrBroadcastPeriod", TimeValue(MilliSeconds(100)));
306 Config::SetDefault(
"ns3::SatGwMac::UseCmt", BooleanValue(
true));
307 Config::SetDefault(
"ns3::SatUtMacState::NcrSyncTimeout", TimeValue(Seconds(1)));
308 Config::SetDefault(
"ns3::SatUtMacState::NcrRecoveryTimeout", TimeValue(Seconds(10)));
309 Config::SetDefault(
"ns3::SatNcc::UtTimeout", TimeValue(Seconds(10)));
311 Config::SetDefault(
"ns3::SatBeamScheduler::ControlSlotsEnabled", BooleanValue(
true));
312 Config::SetDefault(
"ns3::SatBeamScheduler::ControlSlotInterval", TimeValue(MilliSeconds(500)));
314 Config::SetDefault(
"ns3::SatUtMac::ClockDrift", IntegerValue(100));
315 Config::SetDefault(
"ns3::SatGwMac::CmtPeriodMin", TimeValue(MilliSeconds(550)));
318 m_helper = CreateObject<SatHelper>();
319 m_helper->CreatePredefinedScenario(SatHelper::SIMPLE);
321 NodeContainer gwUsers =
m_helper->GetGwUsers();
326 CbrHelper cbr(
"ns3::UdpSocketFactory",
327 Address(InetSocketAddress(
m_helper->GetUserAddress(gwUsers.Get(0)), port)));
328 cbr.SetAttribute(
"Interval", StringValue(
"100ms"));
329 ApplicationContainer utApps = cbr.Install(
m_helper->GetUtUsers());
330 utApps.Start(Seconds(1.0));
331 utApps.Stop(Seconds(59.0));
334 PacketSinkHelper sink(
335 "ns3::UdpSocketFactory",
336 Address(InetSocketAddress(
m_helper->GetUserAddress(gwUsers.Get(0)), port)));
337 ApplicationContainer gwApps = sink.Install(gwUsers);
338 gwApps.Start(Seconds(1.0));
339 gwApps.Stop(Seconds(60.0));
341 Ptr<PacketSink> receiver = DynamicCast<PacketSink>(gwApps.Get(0));
342 Ptr<CbrApplication> sender = DynamicCast<CbrApplication>(utApps.Get(0));
350 Simulator::Stop(Seconds(60));
353 Simulator::Destroy();
355 Singleton<SatEnvVariables>::Get()->DoDispose();
357 uint32_t indexSwitchTdmaSync = 0;
358 for (uint32_t i = 0; i <
m_states.size(); i++)
360 if (
m_states[i] == SatUtMacState::TDMA_SYNC)
362 indexSwitchTdmaSync = i;
368 NS_TEST_ASSERT_MSG_NE(indexSwitchTdmaSync,
370 "UT should switch to TDMA_SYNC before the end of simulation");
373 for (uint32_t i = indexSwitchTdmaSync; i <
m_states.size() - 1; i++)
376 SatUtMacState::OFF_STANDBY,
377 "UT should not switch to OFF_STANDBY after NCR_RECOVERY");
379 SatUtMacState::READY_FOR_LOGON,
380 "UT should not switch to READY_FOR_LOGON after NCR_RECOVERY");
384 for (uint32_t i = 31; i < 39; i++)
387 SatUtMacState::NCR_RECOVERY,
388 "UT should be in NCR_RECOVERY after loss of NCR");
393 for (uint32_t i = 31; i < 39; i++)
396 receivedBeforeNcrRecovery,
397 "Receiver should not receive anything between 31s and 38s");
405 "Receiver should always receive data after logon");
409 NS_TEST_ASSERT_MSG_EQ(receiver->GetTotalRx(), sender->GetSent(),
"Packets were lost !");
418 DynamicCast<SatUtMac>(
419 DynamicCast<SatNetDevice>(
m_helper->UtNodes().Get(0)->GetDevice(2))->GetMac())
430 DynamicCast<SatGwMac>(
431 DynamicCast<SatNetDevice>(
m_helper->GwNodes().Get(0)->GetDevice(1))->GetMac())
432 ->SetAttribute(
"NcrBroadcastPeriod", TimeValue(MilliSeconds(100)));
436 DynamicCast<SatGwMac>(
437 DynamicCast<SatNetDevice>(
m_helper->GwNodes().Get(0)->GetDevice(1))->GetMac())
438 ->SetAttribute(
"NcrBroadcastPeriod", TimeValue(Seconds(9)));
462 virtual void DoRun(
void);
463 void GetData(Ptr<CbrApplication> sender, Ptr<PacketSink> receiver);
478 : TestCase(
"This case tests ncr recovery timeout mechanism and logoff.")
496 Singleton<SatEnvVariables>::Get()->DoInitialize();
497 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-ncr",
"",
true);
501 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
503 Config::SetDefault(
"ns3::SatConf::ReturnLinkRegenerationMode", EnumValue(
m_regenerationMode));
506 Config::SetDefault(
"ns3::SatConf::SuperFrameConfForSeq0",
507 EnumValue(SatSuperframeConf::SUPER_FRAME_CONFIG_0));
508 Config::SetDefault(
"ns3::SatBeamHelper::RandomAccessModel",
509 EnumValue(SatEnums::RA_MODEL_SLOTTED_ALOHA));
510 Config::SetDefault(
"ns3::SatBeamHelper::RaInterferenceModel",
511 EnumValue(SatPhyRxCarrierConf::IF_PER_PACKET));
512 Config::SetDefault(
"ns3::SatBeamHelper::RaCollisionModel",
513 EnumValue(SatPhyRxCarrierConf::RA_COLLISION_CHECK_AGAINST_SINR));
514 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame0_RandomAccessFrame", BooleanValue(
true));
515 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame1_RandomAccessFrame", BooleanValue(
true));
516 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame1_LogonFrame", BooleanValue(
true));
518 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame0_GuardTimeSymbols", UintegerValue(4));
519 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame1_GuardTimeSymbols", UintegerValue(4));
520 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame2_GuardTimeSymbols", UintegerValue(4));
521 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame3_GuardTimeSymbols", UintegerValue(4));
522 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame4_GuardTimeSymbols", UintegerValue(4));
523 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame5_GuardTimeSymbols", UintegerValue(4));
524 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame6_GuardTimeSymbols", UintegerValue(4));
525 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame7_GuardTimeSymbols", UintegerValue(4));
526 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame8_GuardTimeSymbols", UintegerValue(4));
527 Config::SetDefault(
"ns3::SatSuperframeConf0::Frame9_GuardTimeSymbols", UintegerValue(4));
529 Config::SetDefault(
"ns3::SatUtMac::WindowInitLogon", TimeValue(Seconds(20)));
530 Config::SetDefault(
"ns3::SatUtMac::MaxWaitingTimeLogonResponse", TimeValue(Seconds(1)));
533 Config::SetDefault(
"ns3::SatMac::NcrVersion2", BooleanValue(
false));
534 Config::SetDefault(
"ns3::SatGwMac::NcrBroadcastPeriod", TimeValue(MilliSeconds(100)));
535 Config::SetDefault(
"ns3::SatGwMac::UseCmt", BooleanValue(
true));
536 Config::SetDefault(
"ns3::SatUtMacState::NcrSyncTimeout", TimeValue(Seconds(1)));
537 Config::SetDefault(
"ns3::SatUtMacState::NcrRecoveryTimeout", TimeValue(Seconds(10)));
538 Config::SetDefault(
"ns3::SatNcc::UtTimeout", TimeValue(Seconds(10)));
540 Config::SetDefault(
"ns3::SatBeamScheduler::ControlSlotsEnabled", BooleanValue(
true));
541 Config::SetDefault(
"ns3::SatBeamScheduler::ControlSlotInterval", TimeValue(MilliSeconds(500)));
543 Config::SetDefault(
"ns3::SatUtMac::ClockDrift", IntegerValue(100));
544 Config::SetDefault(
"ns3::SatGwMac::CmtPeriodMin", TimeValue(MilliSeconds(550)));
547 m_helper = CreateObject<SatHelper>();
548 m_helper->CreatePredefinedScenario(SatHelper::SIMPLE);
550 NodeContainer gwUsers =
m_helper->GetGwUsers();
555 CbrHelper cbr(
"ns3::UdpSocketFactory",
556 Address(InetSocketAddress(
m_helper->GetUserAddress(gwUsers.Get(0)), port)));
557 cbr.SetAttribute(
"Interval", StringValue(
"100ms"));
558 ApplicationContainer utApps = cbr.Install(
m_helper->GetUtUsers());
559 utApps.Start(Seconds(1.0));
560 utApps.Stop(Seconds(119.0));
563 PacketSinkHelper sink(
564 "ns3::UdpSocketFactory",
565 Address(InetSocketAddress(
m_helper->GetUserAddress(gwUsers.Get(0)), port)));
566 ApplicationContainer gwApps = sink.Install(gwUsers);
567 gwApps.Start(Seconds(1.0));
568 gwApps.Stop(Seconds(120.0));
570 Ptr<PacketSink> receiver = DynamicCast<PacketSink>(gwApps.Get(0));
571 Ptr<CbrApplication> sender = DynamicCast<CbrApplication>(utApps.Get(0));
579 Simulator::Stop(Seconds(120));
582 Simulator::Destroy();
584 Singleton<SatEnvVariables>::Get()->DoDispose();
586 uint32_t indexSwitchTdmaSync = 0;
587 uint32_t indexSwitchNcrRecovery = 0;
588 uint32_t indexSwitchTdmaSyncSecondTime = 0;
589 for (uint32_t i = 0; i <
m_states.size(); i++)
591 if (
m_states[i] == SatUtMacState::TDMA_SYNC && indexSwitchTdmaSync == 0)
593 indexSwitchTdmaSync = i;
595 if (
m_states[i] == SatUtMacState::NCR_RECOVERY && indexSwitchNcrRecovery == 0)
597 indexSwitchNcrRecovery = i;
599 if (indexSwitchTdmaSync & indexSwitchNcrRecovery)
605 for (uint32_t i = indexSwitchNcrRecovery; i <
m_states.size(); i++)
607 if (
m_states[i] == SatUtMacState::TDMA_SYNC)
609 indexSwitchTdmaSyncSecondTime = i;
615 NS_TEST_ASSERT_MSG_NE(indexSwitchTdmaSync,
617 "UT should switch to TDMA_SYNC before the end of simulation");
618 NS_TEST_ASSERT_MSG_NE(indexSwitchNcrRecovery,
620 "UT should switch to NCR_RECOVERY before the end of simulation");
621 NS_TEST_ASSERT_MSG_NE(
622 indexSwitchTdmaSyncSecondTime,
624 "UT should switch to TDMA_SYNC after NCR_RECOVERY and before the end of simulation");
627 for (uint32_t i = 31; i < 41; i++)
630 SatUtMacState::NCR_RECOVERY,
631 "UT should be in NCR_RECOVERY after loss of NCR");
635 bool stateFound =
false;
636 for (uint32_t i = indexSwitchNcrRecovery; i <
m_states.size() - 1; i++)
638 if (
m_states[i] == SatUtMacState::OFF_STANDBY ||
639 m_states[i] == SatUtMacState::READY_FOR_LOGON)
644 NS_TEST_ASSERT_MSG_EQ(stateFound,
646 "UT should switch to OFF_STANDBY or READY_FOR_LOGON after NCR_RECOVERY");
648 uint32_t receivedBeforeNcrRecovery =
m_totalReceived[indexSwitchNcrRecovery + 1];
650 for (uint32_t i = 31; i < 56; i++)
653 receivedBeforeNcrRecovery,
654 "Receiver should not receive anything between 31s and 50s");
658 for (uint32_t i = indexSwitchTdmaSyncSecondTime + 2; i <
m_totalReceived.size() - 1; i++)
662 "Receiver should always receive data after second logon");
666 NS_TEST_ASSERT_MSG_EQ(receiver->GetTotalRx(), sender->GetSent(),
"Packets were lost !");
675 DynamicCast<SatUtMac>(
676 DynamicCast<SatNetDevice>(
m_helper->UtNodes().Get(0)->GetDevice(2))->GetMac())
687 DynamicCast<SatGwMac>(
688 DynamicCast<SatNetDevice>(
m_helper->GwNodes().Get(0)->GetDevice(1))->GetMac())
689 ->SetAttribute(
"NcrBroadcastPeriod", TimeValue(MilliSeconds(100)));
693 DynamicCast<SatGwMac>(
694 DynamicCast<SatNetDevice>(
m_helper->GwNodes().Get(0)->GetDevice(1))->GetMac())
695 ->SetAttribute(
"NcrBroadcastPeriod", TimeValue(Seconds(30)));
710 : TestSuite(
"sat-ncr-test", SYSTEM)
714 AddTestCase(
new SatNcrTest3(SatEnums::TRANSPARENT), TestCase::QUICK);
715 AddTestCase(
new SatNcrTest3(SatEnums::REGENERATION_PHY), TestCase::QUICK);
716 AddTestCase(
new SatNcrTest3(SatEnums::REGENERATION_LINK), TestCase::QUICK);
717 AddTestCase(
new SatNcrTest3(SatEnums::REGENERATION_NETWORK), TestCase::QUICK);
'NCR, test 1' test case implementation.
void GetData(Ptr< CbrApplication > sender, Ptr< PacketSink > receiver)
std::vector< int > m_totalSent
std::vector< int > m_totalReceived
std::vector< SatUtMacState::RcstState_t > m_states
Ptr< SatHelper > m_helper
'NCR, test 2' test case implementation.
Ptr< SatHelper > m_helper
void GetData(Ptr< CbrApplication > sender, Ptr< PacketSink > receiver)
std::vector< SatUtMacState::RcstState_t > m_states
std::vector< int > m_totalReceived
void ChangeTxStatus(bool enable)
std::vector< int > m_totalSent
Ptr< SatChannel > m_channel
'NCR, test 3' test case implementation.
SatNcrTest3(SatEnums::RegenerationMode_t regenerationMode)
std::vector< SatUtMacState::RcstState_t > m_states
void GetData(Ptr< CbrApplication > sender, Ptr< PacketSink > receiver)
Ptr< SatHelper > m_helper
std::vector< int > m_totalReceived
void ChangeTxStatus(bool enable)
Ptr< SatChannel > m_channel
std::vector< int > m_totalSent
SatEnums::RegenerationMode_t m_regenerationMode
RegenerationMode_t
The regeneration mode used in satellites.
ErrorModel
Error model enum.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
static SatNcrTestSuite satNcrTestSuite