Test 1.4 (RR scheduler) finished and works
This commit is contained in:
@@ -50,6 +50,7 @@ LenaTestRrFfMacSchedulerSuite::LenaTestRrFfMacSchedulerSuite ()
|
||||
{
|
||||
SetVerbose (true);
|
||||
NS_LOG_INFO ("creating LenaRrFfMacSchedulerTestCase");
|
||||
|
||||
// DISTANCE 0 -> MCS 28 -> Itbs 26 (from table 7.1.7.2.1-1 of 36.213)
|
||||
// 1 user -> 24 PRB at Itbs 26 -> 2196 -> 2196000 bytes/sec
|
||||
// 3 users -> 8 PRB at Itbs 26 -> 749 -> 749000 bytes/sec
|
||||
@@ -57,15 +58,68 @@ LenaTestRrFfMacSchedulerSuite::LenaTestRrFfMacSchedulerSuite ()
|
||||
// 9 user -> 2 PRB at Itbs 26 -> 185 -> 185000 bytes/sec
|
||||
// 12 users -> 2 PRB at Itbs 26 -> 185 -> 185000 bytes/sec
|
||||
// 15 users -> 2 PRB at Itbs 26 * 0.8 -> 148 -> 148000 bytes/sec
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,0,2196000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,0,749000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,0,373000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,0,185000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,0,185000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,0,148000));
|
||||
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,1,2196000));
|
||||
// DISTANCE 6000 -> MCS 24 -> Itbs 22 (from table 7.1.7.2.1-1 of 36.213)
|
||||
// 1 user -> 24 PRB at Itbs 22 -> 1572 -> 1572000 bytes/sec
|
||||
// 3 users -> 8 PRB at Itbs 22 -> 533 -> 533000 bytes/sec
|
||||
// 6 users -> 4 PRB at Itbs 22 -> 269 -> 269000 bytes/sec
|
||||
// 9 user -> 2 PRB at Itbs 22 -> 133 -> 133000 bytes/sec
|
||||
// 12 users -> 2 PRB at Itbs 22 -> 133 -> 133000 bytes/sec
|
||||
// 15 users -> 2 PRB at Itbs 22 * 0.8 -> 106.4 -> 106400 bytes/sec
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,6000,1572000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,6000,533000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,6000,269000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,6000,133000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,6000,133000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,6000,106400));
|
||||
|
||||
// AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,0,2196000));
|
||||
// AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,0,749000));
|
||||
// AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,0,373000));
|
||||
// AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,0,185000));
|
||||
// AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,0,185000));
|
||||
// AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,0,148000));
|
||||
// DISTANCE 9000 -> MCS 10 -> Itbs 9 (from table 7.1.7.2.1-1 of 36.213)
|
||||
// 1 user -> 24 PRB at Itbs 9 -> 469 -> 469000 bytes/sec
|
||||
// 3 users -> 8 PRB at Itbs 9 -> 157 -> 157000 bytes/sec
|
||||
// 6 users -> 4 PRB at Itbs 9 -> 77 -> 77000 bytes/sec
|
||||
// 9 user -> 2 PRB at Itbs 9 -> 37 -> 37000 bytes/sec
|
||||
// 12 users -> 2 PRB at Itbs 9 -> 37 -> 37000 bytes/sec
|
||||
// 15 users -> 2 PRB at Itbs 9 * 0.8 -> 29.6 -> 29600 bytes/sec
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,9000,469000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,9000,157000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,9000,77000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,9000,37000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,9000,37000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,9000,29600));
|
||||
|
||||
// DISTANCE 15000 -> MCS 4 -> Itbs 4 (from table 7.1.7.2.1-1 of 36.213)
|
||||
// 1 user -> 24 PRB at Itbs 4 -> 217 -> 217000 bytes/sec
|
||||
// 3 users -> 8 PRB at Itbs 4 -> 69 -> 69000 bytes/sec
|
||||
// 6 users -> 4 PRB at Itbs 4 -> 32 -> 32000 bytes/sec
|
||||
// 9 user -> 2 PRB at Itbs 4 -> 15 -> 15000 bytes/sec
|
||||
// 12 users -> 2 PRB at Itbs 4 -> 15 -> 15000 bytes/sec
|
||||
// 15 users -> 2 PRB at Itbs 4 * 0.8 -> 12 -> 12000 bytes/sec
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,15000,217000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,15000,69000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,15000,32000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,15000,15000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,15000,15000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,15000,12000));
|
||||
|
||||
// DISTANCE 20000 -> MCS 2 -> Itbs 2 (from table 7.1.7.2.1-1 of 36.213)
|
||||
// 1 user -> 24 PRB at Itbs 2 -> 133 -> 133000 bytes/sec
|
||||
// 3 users -> 8 PRB at Itbs 2 -> 41 -> 41000 bytes/sec
|
||||
// 6 users -> 4 PRB at Itbs 2 -> 22 -> 22000 bytes/sec
|
||||
// 9 user -> 2 PRB at Itbs 2 -> 9 -> 9000 bytes/sec
|
||||
// 12 users -> 2 PRB at Itbs 2 -> 9 -> 9000 bytes/sec
|
||||
// 15 users -> 2 PRB at Itbs 2 * 0.8 -> 7.2 -> 7200 bytes/sec
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,20000,133000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,20000,41000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,20000,22000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,20000,9000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,20000,9000));
|
||||
AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,20000,7200));
|
||||
|
||||
}
|
||||
|
||||
@@ -91,7 +145,7 @@ LenaRrFfMacSchedulerTestCase::DoRun (void)
|
||||
// LogComponentEnable ("LteUeRrc", LOG_LEVEL_ALL);
|
||||
// LogComponentEnable ("LteEnbMac", LOG_LEVEL_ALL);
|
||||
// LogComponentEnable ("LteUeMac", LOG_LEVEL_ALL);
|
||||
LogComponentEnable ("LteRlc", LOG_LEVEL_ALL);
|
||||
// LogComponentEnable ("LteRlc", LOG_LEVEL_ALL);
|
||||
//
|
||||
// LogComponentEnable ("LtePhy", LOG_LEVEL_ALL);
|
||||
// LogComponentEnable ("LteEnbPhy", LOG_LEVEL_ALL);
|
||||
@@ -112,9 +166,9 @@ LenaRrFfMacSchedulerTestCase::DoRun (void)
|
||||
// LogComponentEnable ("LteUeNetDevice", LOG_LEVEL_ALL);
|
||||
// LogComponentEnable ("LteEnbNetDevice", LOG_LEVEL_ALL);
|
||||
|
||||
LogComponentEnable ("RrFfMacScheduler", LOG_LEVEL_ALL);
|
||||
// LogComponentEnable ("RrFfMacScheduler", LOG_LEVEL_ALL);
|
||||
LogComponentEnable ("LenaTestRrFfMacCheduler", LOG_LEVEL_ALL);
|
||||
//LogComponentEnable ("LteAmc", LOG_LEVEL_ALL);
|
||||
// LogComponentEnable ("LteAmc", LOG_LEVEL_ALL);
|
||||
// LogComponentEnable ("RlcStatsCalculator", LOG_LEVEL_ALL);
|
||||
|
||||
|
||||
@@ -126,23 +180,6 @@ LenaRrFfMacSchedulerTestCase::DoRun (void)
|
||||
|
||||
Ptr<LenaHelper> lena = CreateObject<LenaHelper> ();
|
||||
|
||||
// Define the propagation model
|
||||
/**
|
||||
* Propagation Loss
|
||||
*
|
||||
* ( 4 * PI * distance * frequency ) 2
|
||||
* Loss = ( ------------------------------- )
|
||||
* ( c )
|
||||
*
|
||||
* where: c is speed of light in vacuum = 3e8 (m/s)
|
||||
* distance in (m)
|
||||
* frequency in (Hz)
|
||||
*/
|
||||
double myLoss = ( ( 4 * M_PI * m_dist * 1.92e9 ) / 3e8 );
|
||||
myLoss = myLoss * myLoss;
|
||||
lena->SetAttribute ("PropagationModel", StringValue ("ns3::ConstantSpectrumPropagationLossModel"));
|
||||
lena->SetPropagationModelAttribute ("Loss", DoubleValue (myLoss));
|
||||
|
||||
// Create Nodes: eNodeB and UE
|
||||
NodeContainer enbNodes;
|
||||
NodeContainer ueNodes;
|
||||
@@ -182,8 +219,7 @@ LenaRrFfMacSchedulerTestCase::DoRun (void)
|
||||
double simulationTime = 0.4;
|
||||
double tolerance = 0.1;
|
||||
Simulator::Stop (Seconds (simulationTime));
|
||||
|
||||
// Config::SetDefault ("ns3::RlcStatsCalculator::EpochDuration", TimeValue(Seconds(simulationTime)));
|
||||
|
||||
Ptr<RlcStatsCalculator> rlcStats = lena->GetRlcStats ();
|
||||
rlcStats->SetAttribute("EpochDuration", TimeValue(Seconds(simulationTime)));
|
||||
|
||||
@@ -193,7 +229,7 @@ LenaRrFfMacSchedulerTestCase::DoRun (void)
|
||||
/**
|
||||
* Check that the assignation is done in a RR fashion
|
||||
*/
|
||||
NS_LOG_INFO("Test with " << m_nUser << " user(s) at distance " << m_dist << " loss " << myLoss);
|
||||
NS_LOG_INFO("Test with " << m_nUser << " user(s) at distance " << m_dist);
|
||||
std::vector <uint64_t> dlDataRxed;
|
||||
for (int i = 0; i < m_nUser; i++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user