59 NS_LOG_INFO(
"creating LenaTestCqaFfMacSchedulerSuite");
61 bool errorModel =
false;
87 TestCase::Duration::EXTENSIVE);
89 TestCase::Duration::EXTENSIVE);
91 TestCase::Duration::EXTENSIVE);
114 TestCase::Duration::EXTENSIVE);
116 TestCase::Duration::EXTENSIVE);
118 TestCase::Duration::EXTENSIVE);
141 TestCase::Duration::EXTENSIVE);
143 TestCase::Duration::EXTENSIVE);
145 TestCase::Duration::EXTENSIVE);
167 TestCase::Duration::EXTENSIVE);
169 TestCase::Duration::EXTENSIVE);
171 TestCase::Duration::EXTENSIVE);
178 TestCase::Duration::QUICK);
187 std::vector<double> dist1;
189 dist1.push_back(4800);
190 dist1.push_back(6000);
191 dist1.push_back(10000);
192 std::vector<uint16_t> packetSize1;
193 packetSize1.push_back(100);
194 packetSize1.push_back(100);
195 packetSize1.push_back(100);
196 packetSize1.push_back(100);
197 std::vector<uint32_t> estThrCqaDl1;
198 estThrCqaDl1.push_back(132000);
199 estThrCqaDl1.push_back(132000);
200 estThrCqaDl1.push_back(132000);
201 estThrCqaDl1.push_back(132000);
203 TestCase::Duration::QUICK);
212 std::vector<double> dist2;
214 dist2.push_back(4800);
215 dist2.push_back(6000);
216 dist2.push_back(10000);
217 std::vector<uint16_t> packetSize2;
218 packetSize2.push_back(200);
219 packetSize2.push_back(200);
220 packetSize2.push_back(200);
221 packetSize2.push_back(200);
222 std::vector<uint32_t> estThrCqaDl2;
223 estThrCqaDl2.push_back(230000);
224 estThrCqaDl2.push_back(230000);
225 estThrCqaDl2.push_back(230000);
226 estThrCqaDl2.push_back(230000);
228 TestCase::Duration::QUICK);
237 std::vector<double> dist3;
239 dist3.push_back(4800);
240 dist3.push_back(6000);
241 std::vector<uint16_t> packetSize3;
242 packetSize3.push_back(100);
243 packetSize3.push_back(200);
244 packetSize3.push_back(300);
245 std::vector<uint32_t> estThrCqaDl3;
246 estThrCqaDl3.push_back(132000);
247 estThrCqaDl3.push_back(232000);
248 estThrCqaDl3.push_back(332000);
250 TestCase::Duration::QUICK);
314 lteHelper->SetEpcHelper(epcHelper);
322 remoteHostContainer.
Create(1);
325 internet.Install(remoteHostContainer);
334 ipv4h.
SetBase(
"1.0.0.0",
"255.0.0.0");
342 remoteHostStaticRouting->AddNetworkRouteTo(
Ipv4Address(
"7.0.0.0"),
Ipv4Mask(
"255.0.0.0"), 1);
355 lteHelper->SetAttribute(
"PathlossModel",
StringValue(
"ns3::FriisSpectrumPropagationLossModel"));
365 mobility.SetMobilityModel(
"ns3::ConstantPositionMobilityModel");
366 mobility.Install(enbNodes);
367 mobility.SetMobilityModel(
"ns3::ConstantPositionMobilityModel");
368 mobility.Install(ueNodes);
373 lteHelper->SetSchedulerType(
"ns3::CqaFfMacScheduler");
375 enbDevs = lteHelper->InstallEnbDevice(enbNodes);
376 ueDevs = lteHelper->InstallUeDevice(ueNodes);
380 enbPhy->SetAttribute(
"TxPower",
DoubleValue(30.0));
381 enbPhy->SetAttribute(
"NoiseFigure",
DoubleValue(5.0));
384 for (
int i = 0; i <
m_nUser; i++)
388 mm->SetPosition(Vector(
m_dist, 0.0, 0.0));
392 uePhy->SetAttribute(
"NoiseFigure",
DoubleValue(9.0));
396 internet.Install(ueNodes);
407 ueStaticRouting->SetDefaultRoute(epcHelper->GetUeDefaultGatewayAddress(), 1);
411 lteHelper->Attach(ueDevs, enbDevs.
Get(0));
426 lteHelper->ActivateDedicatedEpsBearer(ueDevice, bearer,
EpcTft::Default());
430 uint16_t dlPort = 1234;
431 uint16_t ulPort = 2000;
442 serverApps.Add(ulPacketSinkHelper.
Install(remoteHost));
456 clientApps.Add(dlClient.
Install(remoteHost));
457 clientApps.Add(ulClient.
Install(ueNodes.
Get(u)));
460 serverApps.Start(
Seconds(0.030));
461 clientApps.Start(
Seconds(0.030));
463 double statsStartTime = 0.300;
464 double statsDuration = 0.6;
465 double tolerance = 0.1;
468 lteHelper->EnableRlcTraces();
469 lteHelper->EnableMacTraces();
477 std::vector<uint64_t> dlDataRxed;
478 for (
int i = 0; i <
m_nUser; i++)
484 uint64_t
data = rlcStats->GetDlRxData(imsi, lcId);
485 dlDataRxed.push_back(
data);
486 NS_LOG_INFO(
"\tUser " << i <<
" imsi " << imsi <<
" bytes rxed " << (
double)dlDataRxed.at(i)
487 <<
" thr " << (
double)dlDataRxed.at(i) / statsDuration <<
" ref "
491 for (
int i = 0; i <
m_nUser; i++)
496 " Unfair Throughput!");
504 std::vector<uint64_t> ulDataRxed;
505 for (
int i = 0; i <
m_nUser; i++)
511 ulDataRxed.push_back(rlcStats->GetUlRxData(imsi, lcId));
512 NS_LOG_INFO(
"\tUser " << i <<
" imsi " << imsi <<
" bytes rxed " << (
double)ulDataRxed.at(i)
513 <<
" thr " << (
double)ulDataRxed.at(i) / statsDuration <<
" ref "
517 for (
int i = 0; i <
m_nUser; i++)
522 " Unfair Throughput!");
582 lteHelper->SetEpcHelper(epcHelper);
588 remoteHostContainer.
Create(1);
591 internet.Install(remoteHostContainer);
600 ipv4h.
SetBase(
"1.0.0.0",
"255.0.0.0");
608 remoteHostStaticRouting->AddNetworkRouteTo(
Ipv4Address(
"7.0.0.0"),
Ipv4Mask(
"255.0.0.0"), 1);
613 lteHelper->SetAttribute(
"PathlossModel",
StringValue(
"ns3::FriisSpectrumPropagationLossModel"));
623 mobility.SetMobilityModel(
"ns3::ConstantPositionMobilityModel");
624 mobility.Install(enbNodes);
625 mobility.SetMobilityModel(
"ns3::ConstantPositionMobilityModel");
626 mobility.Install(ueNodes);
631 lteHelper->SetSchedulerType(
"ns3::CqaFfMacScheduler");
633 enbDevs = lteHelper->InstallEnbDevice(enbNodes);
634 ueDevs = lteHelper->InstallUeDevice(ueNodes);
638 enbPhy->SetAttribute(
"TxPower",
DoubleValue(30.0));
639 enbPhy->SetAttribute(
"NoiseFigure",
DoubleValue(5.0));
642 for (
int i = 0; i <
m_nUser; i++)
646 mm->SetPosition(Vector(
m_dist.at(i), 0.0, 0.0));
650 uePhy->SetAttribute(
"NoiseFigure",
DoubleValue(9.0));
654 internet.Install(ueNodes);
665 ueStaticRouting->SetDefaultRoute(epcHelper->GetUeDefaultGatewayAddress(), 1);
669 lteHelper->Attach(ueDevs, enbDevs.
Get(0));
685 lteHelper->ActivateDedicatedEpsBearer(ueDevice, bearer,
EpcTft::Default());
689 uint16_t dlPort = 1234;
690 uint16_t ulPort = 2000;
701 serverApps.Add(ulPacketSinkHelper.
Install(remoteHost));
715 clientApps.Add(dlClient.
Install(remoteHost));
716 clientApps.Add(ulClient.
Install(ueNodes.
Get(u)));
719 serverApps.Start(
Seconds(0.030));
720 clientApps.Start(
Seconds(0.030));
722 double statsStartTime = 0.04;
723 double statsDuration = 0.5;
724 double tolerance = 0.1;
727 lteHelper->EnableRlcTraces();
740 std::vector<uint64_t> dlDataRxed;
741 for (
int i = 0; i <
m_nUser; i++)
747 dlDataRxed.push_back(rlcStats->GetDlRxData(imsi, lcId));
748 NS_LOG_INFO(
"\tUser " << i <<
" dist " <<
m_dist.at(i) <<
" imsi " << imsi <<
" bytes rxed "
749 << (
double)dlDataRxed.at(i) <<
" thr "
750 << (
double)dlDataRxed.at(i) / statsDuration <<
" ref "
754 for (
int i = 0; i <
m_nUser; i++)
759 " Unfair Throughput!");