--- a/src/lte/test/lte-test-cqa-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-cqa-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -160,13 +160,18 @@
AddTestCase (new LenaCqaFfMacSchedulerTestCase1 (6,10000,129166,67000,200,1,errorModel), TestCase::EXTENSIVE);
//AddTestCase (new LenaCqaFfMacSchedulerTestCase1 (12,10000,64583,32667,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
+
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaCqaFfMacSchedulerTestCase1 (1,100000,0,0,200,1,errorModel), TestCase::QUICK);
+
// Test Case 2: homogeneous flow test in CQA (different distance)
// Traffic1 info
// UDP traffic: payload size = 100 bytes, interval = 1 ms
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> 132000 byte/rate
// Maximum throughput = 4 / ( 1/2196000 + 1/1191000 + 1/1383000 + 1/775000 ) = 1209046 byte/s
// 132000 * 4 = 528000 < 1209046 -> estimated throughput in downlink = 132000 byte/sec
- std::vector<uint16_t> dist1;
+ std::vector<double> dist1;
dist1.push_back (0); // User 0 distance --> MCS 28
dist1.push_back (4800); // User 1 distance --> MCS 22
dist1.push_back (6000); // User 2 distance --> MCS 20
@@ -188,7 +193,7 @@
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> 232000 byte/rate
// Maximum throughput = 4 / ( 1/2196000 + 1/1191000 + 1/1383000 + 1/775000 ) = 1209046 byte/s
// 232000 * 4 = 928000 < 1209046 -> estimated throughput in downlink = 928000 / 4 = 230000 byte/sec
- std::vector<uint16_t> dist2;
+ std::vector<double> dist2;
dist2.push_back (0); // User 0 distance --> MCS 28
dist2.push_back (4800); // User 1 distance --> MCS 22
dist2.push_back (6000); // User 2 distance --> MCS 20
@@ -210,7 +215,7 @@
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> [132000, 232000, 332000] byte/rate
// Maximum throughput = 3 / ( 1/2196000 + 1/1191000 + 1/1383000) = 1486569 byte/s
// 132000 + 232000 + 332000 = 696000 < 1486569 -> estimated throughput in downlink = [132000, 232000, 332000] byte/sec
- std::vector<uint16_t> dist3;
+ std::vector<double> dist3;
dist3.push_back (0); // User 0 distance --> MCS 28
dist3.push_back (4800); // User 1 distance --> MCS 22
dist3.push_back (6000); // User 2 distance --> MCS 20
@@ -232,7 +237,7 @@
std::string
-LenaCqaFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaCqaFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
@@ -240,7 +245,7 @@
}
-LenaCqaFfMacSchedulerTestCase1::LenaCqaFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
+LenaCqaFfMacSchedulerTestCase1::LenaCqaFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
@@ -476,11 +481,11 @@
std::string
-LenaCqaFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<uint16_t> dist)
+LenaCqaFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<double> dist)
{
std::ostringstream oss;
oss << "distances (m) = [ " ;
- for (std::vector<uint16_t>::iterator it = dist.begin (); it != dist.end (); ++it)
+ for (std::vector<double>::iterator it = dist.begin (); it != dist.end (); ++it)
{
oss << *it << " ";
}
@@ -489,7 +494,7 @@
}
-LenaCqaFfMacSchedulerTestCase2::LenaCqaFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estThrCqaDl, std::vector<uint16_t> packetSize, uint16_t interval,bool errorModelEnabled)
+LenaCqaFfMacSchedulerTestCase2::LenaCqaFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estThrCqaDl, std::vector<uint16_t> packetSize, uint16_t interval,bool errorModelEnabled)
: TestCase (BuildNameString (dist.size (), dist)),
m_nUser (dist.size ()),
m_dist (dist),
--- a/src/lte/test/lte-test-cqa-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-cqa-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -40,14 +40,14 @@
class LenaCqaFfMacSchedulerTestCase1 : public TestCase
{
public:
- LenaCqaFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled);
+ LenaCqaFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled);
virtual ~LenaCqaFfMacSchedulerTestCase1 ();
private:
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
virtual void DoRun (void);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
uint16_t m_packetSize; // byte
uint16_t m_interval; // ms
double m_thrRefDl;
@@ -59,14 +59,14 @@
class LenaCqaFfMacSchedulerTestCase2 : public TestCase
{
public:
- LenaCqaFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estThrCqaDl, std::vector<uint16_t> packetSize, uint16_t interval, bool errorModelEnabled);
+ LenaCqaFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estThrCqaDl, std::vector<uint16_t> packetSize, uint16_t interval, bool errorModelEnabled);
virtual ~LenaCqaFfMacSchedulerTestCase2 ();
private:
- static std::string BuildNameString (uint16_t nUser, std::vector<uint16_t> dist);
+ static std::string BuildNameString (uint16_t nUser, std::vector<double> dist);
virtual void DoRun (void);
uint16_t m_nUser;
- std::vector<uint16_t> m_dist;
+ std::vector<double> m_dist;
std::vector<uint16_t> m_packetSize; // byte
uint16_t m_interval; // ms
std::vector<uint32_t> m_estThrCqaDl;
--- a/src/lte/test/lte-test-fdbet-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-fdbet-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -145,9 +145,13 @@
AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,20000,67000,22000,errorModel), TestCase::EXTENSIVE);
AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,20000,32000,12000,errorModel), TestCase::EXTENSIVE);
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,100000,0,0,errorModel), TestCase::QUICK);
+
// Test Case 2: fairness check
- std::vector<uint16_t> dist;
+ std::vector<double> dist;
dist.push_back (0); // User 0 distance --> MCS 28
dist.push_back (4800); // User 1 distance --> MCS 22
dist.push_back (6000); // User 2 distance --> MCS 14
@@ -175,14 +179,14 @@
std::string
-LenaFdBetFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaFdBetFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
return oss.str ();
}
-LenaFdBetFfMacSchedulerTestCase1::LenaFdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaFdBetFfMacSchedulerTestCase1::LenaFdBetFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
@@ -334,11 +338,11 @@
std::string
-LenaFdBetFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<uint16_t> dist)
+LenaFdBetFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<double> dist)
{
std::ostringstream oss;
oss << "distances (m) = [ " ;
- for (std::vector<uint16_t>::iterator it = dist.begin (); it != dist.end (); ++it)
+ for (std::vector<double>::iterator it = dist.begin (); it != dist.end (); ++it)
{
oss << *it << " ";
}
@@ -347,7 +351,7 @@
}
-LenaFdBetFfMacSchedulerTestCase2::LenaFdBetFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estAchievableRateDl, std::vector<uint32_t> estThrFdBetUl, bool errorModelEnabled)
+LenaFdBetFfMacSchedulerTestCase2::LenaFdBetFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estAchievableRateDl, std::vector<uint32_t> estThrFdBetUl, bool errorModelEnabled)
: TestCase (BuildNameString (dist.size (), dist)),
m_nUser (dist.size ()),
m_dist (dist),
--- a/src/lte/test/lte-test-fdbet-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-fdbet-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -42,14 +42,14 @@
class LenaFdBetFfMacSchedulerTestCase1 : public TestCase
{
public:
- LenaFdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
+ LenaFdBetFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
virtual ~LenaFdBetFfMacSchedulerTestCase1 ();
private:
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
virtual void DoRun (void);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
double m_thrRefDl;
double m_thrRefUl;
bool m_errorModelEnabled;
@@ -59,14 +59,14 @@
class LenaFdBetFfMacSchedulerTestCase2 : public TestCase
{
public:
- LenaFdBetFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> m_achievableRateDl, std::vector<uint32_t> estThrFdBetUl, bool m_errorModelEnabled);
+ LenaFdBetFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> m_achievableRateDl, std::vector<uint32_t> estThrFdBetUl, bool m_errorModelEnabled);
virtual ~LenaFdBetFfMacSchedulerTestCase2 ();
private:
- static std::string BuildNameString (uint16_t nUser, std::vector<uint16_t> dist);
+ static std::string BuildNameString (uint16_t nUser, std::vector<double> dist);
virtual void DoRun (void);
uint16_t m_nUser;
- std::vector<uint16_t> m_dist;
+ std::vector<double> m_dist;
std::vector<uint32_t> m_achievableRateDl;
std::vector<uint32_t> m_estThrFdBetUl;
bool m_errorModelEnabled;
--- a/src/lte/test/lte-test-fdmt-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-fdmt-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -148,6 +148,10 @@
AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,20000,421000,41000,errorModel), TestCase::EXTENSIVE);
AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,20000,421000,22000,errorModel), TestCase::EXTENSIVE);
AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,20000,421000,12000,errorModel), TestCase::EXTENSIVE);
+
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,100000,0,0,errorModel), TestCase::QUICK);
}
static LenaTestFdMtFfMacSchedulerSuite lenaTestFdMtFfMacSchedulerSuite;
@@ -156,14 +160,14 @@
// --------------- T E S T - C A S E ------------------------------
std::string
-LenaFdMtFfMacSchedulerTestCase::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaFdMtFfMacSchedulerTestCase::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
return oss.str ();
}
-LenaFdMtFfMacSchedulerTestCase::LenaFdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaFdMtFfMacSchedulerTestCase::LenaFdMtFfMacSchedulerTestCase (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
--- a/src/lte/test/lte-test-fdmt-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-fdmt-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -42,14 +42,14 @@
class LenaFdMtFfMacSchedulerTestCase : public TestCase
{
public:
- LenaFdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
+ LenaFdMtFfMacSchedulerTestCase (uint16_t nUser, double dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
virtual ~LenaFdMtFfMacSchedulerTestCase ();
private:
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
virtual void DoRun (void);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
double m_thrRefDl;
double m_thrRefUl;
bool m_errorModelEnabled;
--- a/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -157,13 +157,17 @@
AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (6,10000,129166,67000,200,1,errorModel), TestCase::EXTENSIVE);
//AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (12,10000,64583,32667,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (1,100000,0,0,200,1,errorModel), TestCase::QUICK);
+
// Test Case 2: homogeneous flow test in FDTBFQ (different distance)
// Traffic1 info
// UDP traffic: payload size = 100 bytes, interval = 1 ms
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> 132000 byte/rate
// Maximum throughput = 4 / ( 1/2196000 + 1/1191000 + 1/1383000 + 1/775000 ) = 1209046 byte/s
// 132000 * 4 = 528000 < 1209046 -> estimated throughput in downlink = 132000 byte/sec
- std::vector<uint16_t> dist1;
+ std::vector<double> dist1;
dist1.push_back (0); // User 0 distance --> MCS 28
dist1.push_back (4800); // User 1 distance --> MCS 22
dist1.push_back (6000); // User 2 distance --> MCS 20
@@ -185,7 +189,7 @@
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> 332000 byte/rate
// Maximum throughput = 4 / ( 1/2196000 + 1/1191000 + 1/1383000 + 1/775000 ) = 1209046 byte/s
// 232000 * 4 = 1328000 > 1209046 -> estimated throughput in downlink = 1209046 / 4 = 302266 byte/sec
- std::vector<uint16_t> dist2;
+ std::vector<double> dist2;
dist2.push_back (0); // User 0 distance --> MCS 28
dist2.push_back (4800); // User 1 distance --> MCS 22
dist2.push_back (6000); // User 2 distance --> MCS 20
@@ -207,7 +211,7 @@
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> [132000, 232000, 332000] byte/rate
// Maximum throughput = 3 / ( 1/2196000 + 1/1191000 + 1/1383000) = 1486569 byte/s
// 132000 + 232000 + 332000 = 696000 < 1486569 -> estimated throughput in downlink = [132000, 232000, 332000] byte/sec
- std::vector<uint16_t> dist3;
+ std::vector<double> dist3;
dist3.push_back (0); // User 0 distance --> MCS 28
dist3.push_back (4800); // User 1 distance --> MCS 22
dist3.push_back (6000); // User 2 distance --> MCS 20
@@ -229,7 +233,7 @@
std::string
-LenaFdTbfqFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaFdTbfqFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
@@ -237,7 +241,7 @@
}
-LenaFdTbfqFfMacSchedulerTestCase1::LenaFdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
+LenaFdTbfqFfMacSchedulerTestCase1::LenaFdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
@@ -473,11 +477,11 @@
std::string
-LenaFdTbfqFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<uint16_t> dist)
+LenaFdTbfqFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<double> dist)
{
std::ostringstream oss;
oss << "distances (m) = [ " ;
- for (std::vector<uint16_t>::iterator it = dist.begin (); it != dist.end (); ++it)
+ for (std::vector<double>::iterator it = dist.begin (); it != dist.end (); ++it)
{
oss << *it << " ";
}
@@ -486,7 +490,7 @@
}
-LenaFdTbfqFfMacSchedulerTestCase2::LenaFdTbfqFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estThrFdTbfqDl, std::vector<uint16_t> packetSize, uint16_t interval,bool errorModelEnabled)
+LenaFdTbfqFfMacSchedulerTestCase2::LenaFdTbfqFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estThrFdTbfqDl, std::vector<uint16_t> packetSize, uint16_t interval,bool errorModelEnabled)
: TestCase (BuildNameString (dist.size (), dist)),
m_nUser (dist.size ()),
m_dist (dist),
--- a/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -42,14 +42,14 @@
class LenaFdTbfqFfMacSchedulerTestCase1 : public TestCase
{
public:
- LenaFdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled);
+ LenaFdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled);
virtual ~LenaFdTbfqFfMacSchedulerTestCase1 ();
private:
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
virtual void DoRun (void);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
uint16_t m_packetSize; // byte
uint16_t m_interval; // ms
double m_thrRefDl;
@@ -61,14 +61,14 @@
class LenaFdTbfqFfMacSchedulerTestCase2 : public TestCase
{
public:
- LenaFdTbfqFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estThrFdTbfqDl, std::vector<uint16_t> packetSize, uint16_t interval, bool errorModelEnabled);
+ LenaFdTbfqFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estThrFdTbfqDl, std::vector<uint16_t> packetSize, uint16_t interval, bool errorModelEnabled);
virtual ~LenaFdTbfqFfMacSchedulerTestCase2 ();
private:
- static std::string BuildNameString (uint16_t nUser, std::vector<uint16_t> dist);
+ static std::string BuildNameString (uint16_t nUser, std::vector<double> dist);
virtual void DoRun (void);
uint16_t m_nUser;
- std::vector<uint16_t> m_dist;
+ std::vector<double> m_dist;
std::vector<uint16_t> m_packetSize; // byte
uint16_t m_interval; // ms
std::vector<uint32_t> m_estThrFdTbfqDl;
--- a/src/lte/test/lte-test-pf-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-pf-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -160,10 +160,14 @@
AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,20000,35083,12000,errorModel), TestCase::EXTENSIVE);
AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,20000,28067,9600,errorModel), TestCase::EXTENSIVE);
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,100000,0,0,errorModel), TestCase::QUICK);
+
// Test Case 2: fairness check
- std::vector<uint16_t> dist;
+ std::vector<double> dist;
dist.push_back (0); // User 0 distance --> MCS 28
dist.push_back (4800); // User 1 distance --> MCS 22
dist.push_back (6000); // User 2 distance --> MCS 16
@@ -193,14 +197,14 @@
std::string
-LenaPfFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaPfFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
return oss.str ();
}
-LenaPfFfMacSchedulerTestCase1::LenaPfFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaPfFfMacSchedulerTestCase1::LenaPfFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
@@ -352,11 +356,11 @@
std::string
-LenaPfFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<uint16_t> dist)
+LenaPfFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<double> dist)
{
std::ostringstream oss;
oss << "distances (m) = [ " ;
- for (std::vector<uint16_t>::iterator it = dist.begin (); it != dist.end (); ++it)
+ for (std::vector<double>::iterator it = dist.begin (); it != dist.end (); ++it)
{
oss << *it << " ";
}
@@ -365,7 +369,7 @@
}
-LenaPfFfMacSchedulerTestCase2::LenaPfFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estThrPfDl, std::vector<uint32_t> estThrPfUl, bool errorModelEnabled)
+LenaPfFfMacSchedulerTestCase2::LenaPfFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estThrPfDl, std::vector<uint32_t> estThrPfUl, bool errorModelEnabled)
: TestCase (BuildNameString (dist.size (), dist)),
m_nUser (dist.size ()),
m_dist (dist),
--- a/src/lte/test/lte-test-pf-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-pf-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -41,14 +41,14 @@
class LenaPfFfMacSchedulerTestCase1 : public TestCase
{
public:
- LenaPfFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled);
+ LenaPfFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled);
virtual ~LenaPfFfMacSchedulerTestCase1 ();
private:
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
virtual void DoRun (void);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
double m_thrRefDl;
double m_thrRefUl;
bool m_errorModelEnabled;
@@ -58,14 +58,14 @@
class LenaPfFfMacSchedulerTestCase2 : public TestCase
{
public:
- LenaPfFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estThrPfDl, std::vector<uint32_t> estThrPfUl, bool errorModelEnabled);
+ LenaPfFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estThrPfDl, std::vector<uint32_t> estThrPfUl, bool errorModelEnabled);
virtual ~LenaPfFfMacSchedulerTestCase2 ();
private:
- static std::string BuildNameString (uint16_t nUser, std::vector<uint16_t> dist);
+ static std::string BuildNameString (uint16_t nUser, std::vector<double> dist);
virtual void DoRun (void);
uint16_t m_nUser;
- std::vector<uint16_t> m_dist;
+ std::vector<double> m_dist;
std::vector<uint32_t> m_estThrPfDl;
std::vector<uint32_t> m_estThrPfUl;
bool m_errorModelEnabled;
--- a/src/lte/test/lte-test-pss-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-pss-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -158,13 +158,17 @@
AddTestCase (new LenaPssFfMacSchedulerTestCase1 (6,10000,129166,67000,200,1,errorModel), TestCase::EXTENSIVE);
//AddTestCase (new LenaPssFfMacSchedulerTestCase1 (12,10000,64583,32667,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaPssFfMacSchedulerTestCase1 (1,100000,0,0,200,1,errorModel), TestCase::QUICK);
+
// Test Case 2: homogeneous flow test in PSS (different distance)
// Traffic1 info
// UDP traffic: payload size = 100 bytes, interval = 1 ms
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> 132000 byte/rate
// Maximum throughput = 4 / ( 1/2196000 + 1/1191000 + 1/1383000 + 1/775000 ) = 1209046 byte/s
// 132000 * 4 = 528000 < 1209046 -> estimated throughput in downlink = 132000 byte/sec
- std::vector<uint16_t> dist1;
+ std::vector<double> dist1;
dist1.push_back (0); // User 0 distance --> MCS 28
dist1.push_back (4800); // User 1 distance --> MCS 22
dist1.push_back (6000); // User 2 distance --> MCS 20
@@ -186,7 +190,7 @@
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> 232000 byte/rate
// Maximum throughput = 4 / ( 1/2196000 + 1/1191000 + 1/1383000 + 1/775000 ) = 1209046 byte/s
// 232000 * 4 = 928000 < 1209046 -> estimated throughput in downlink = 928000 / 4 = 230000 byte/sec
- std::vector<uint16_t> dist2;
+ std::vector<double> dist2;
dist2.push_back (0); // User 0 distance --> MCS 28
dist2.push_back (4800); // User 1 distance --> MCS 22
dist2.push_back (6000); // User 2 distance --> MCS 20
@@ -208,7 +212,7 @@
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> [132000, 232000, 332000] byte/rate
// Maximum throughput = 3 / ( 1/2196000 + 1/1191000 + 1/1383000) = 1486569 byte/s
// 132000 + 232000 + 332000 = 696000 < 1486569 -> estimated throughput in downlink = [132000, 232000, 332000] byte/sec
- std::vector<uint16_t> dist3;
+ std::vector<double> dist3;
dist3.push_back (0); // User 0 distance --> MCS 28
dist3.push_back (4800); // User 1 distance --> MCS 22
dist3.push_back (6000); // User 2 distance --> MCS 20
@@ -230,7 +234,7 @@
std::string
-LenaPssFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaPssFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
@@ -238,7 +242,7 @@
}
-LenaPssFfMacSchedulerTestCase1::LenaPssFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
+LenaPssFfMacSchedulerTestCase1::LenaPssFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
@@ -474,11 +478,11 @@
std::string
-LenaPssFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<uint16_t> dist)
+LenaPssFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<double> dist)
{
std::ostringstream oss;
oss << "distances (m) = [ " ;
- for (std::vector<uint16_t>::iterator it = dist.begin (); it != dist.end (); ++it)
+ for (std::vector<double>::iterator it = dist.begin (); it != dist.end (); ++it)
{
oss << *it << " ";
}
@@ -487,7 +491,7 @@
}
-LenaPssFfMacSchedulerTestCase2::LenaPssFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estThrPssDl, std::vector<uint16_t> packetSize, uint16_t interval,bool errorModelEnabled)
+LenaPssFfMacSchedulerTestCase2::LenaPssFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estThrPssDl, std::vector<uint16_t> packetSize, uint16_t interval,bool errorModelEnabled)
: TestCase (BuildNameString (dist.size (), dist)),
m_nUser (dist.size ()),
m_dist (dist),
--- a/src/lte/test/lte-test-pss-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-pss-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -42,14 +42,14 @@
class LenaPssFfMacSchedulerTestCase1 : public TestCase
{
public:
- LenaPssFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled);
+ LenaPssFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled);
virtual ~LenaPssFfMacSchedulerTestCase1 ();
private:
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
virtual void DoRun (void);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
uint16_t m_packetSize; // byte
uint16_t m_interval; // ms
double m_thrRefDl;
@@ -61,14 +61,14 @@
class LenaPssFfMacSchedulerTestCase2 : public TestCase
{
public:
- LenaPssFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estThrPssDl, std::vector<uint16_t> packetSize, uint16_t interval, bool errorModelEnabled);
+ LenaPssFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estThrPssDl, std::vector<uint16_t> packetSize, uint16_t interval, bool errorModelEnabled);
virtual ~LenaPssFfMacSchedulerTestCase2 ();
private:
- static std::string BuildNameString (uint16_t nUser, std::vector<uint16_t> dist);
+ static std::string BuildNameString (uint16_t nUser, std::vector<double> dist);
virtual void DoRun (void);
uint16_t m_nUser;
- std::vector<uint16_t> m_dist;
+ std::vector<double> m_dist;
std::vector<uint16_t> m_packetSize; // byte
uint16_t m_interval; // ms
std::vector<uint32_t> m_estThrPssDl;
--- a/src/lte/test/lte-test-rr-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-rr-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -147,19 +147,22 @@
AddTestCase (new LenaRrFfMacSchedulerTestCase (12,20000,32000,12000,errorModel), TestCase::EXTENSIVE);
AddTestCase (new LenaRrFfMacSchedulerTestCase (15,20000,25600,9600,errorModel), TestCase::EXTENSIVE);
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaRrFfMacSchedulerTestCase (1,100000,0,0,errorModel), TestCase::QUICK);
}
static LenaTestRrFfMacSchedulerSuite lenaTestRrFfMacSchedulerSuite;
std::string
-LenaRrFfMacSchedulerTestCase::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaRrFfMacSchedulerTestCase::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
return oss.str ();
}
-LenaRrFfMacSchedulerTestCase::LenaRrFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaRrFfMacSchedulerTestCase::LenaRrFfMacSchedulerTestCase (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
--- a/src/lte/test/lte-test-rr-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-rr-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -40,14 +40,14 @@
class LenaRrFfMacSchedulerTestCase : public TestCase
{
public:
- LenaRrFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled);
+ LenaRrFfMacSchedulerTestCase (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled);
virtual ~LenaRrFfMacSchedulerTestCase ();
private:
virtual void DoRun (void);
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
double m_thrRefDl;
double m_thrRefUl;
bool m_errorModelEnabled;
--- a/src/lte/test/lte-test-tdbet-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-tdbet-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -145,9 +145,13 @@
AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,20000,70166,22000,errorModel), TestCase::EXTENSIVE);
AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,20000,35083,12000,errorModel), TestCase::EXTENSIVE);
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,100000,0,0,errorModel), TestCase::QUICK);
+
// Test Case 2: fairness check
- std::vector<uint16_t> dist;
+ std::vector<double> dist;
dist.push_back (0); // User 0 distance --> MCS 28
dist.push_back (4800); // User 1 distance --> MCS 22
dist.push_back (6000); // User 2 distance --> MCS 14
@@ -175,14 +179,14 @@
std::string
-LenaTdBetFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaTdBetFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
return oss.str ();
}
-LenaTdBetFfMacSchedulerTestCase1::LenaTdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaTdBetFfMacSchedulerTestCase1::LenaTdBetFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
@@ -336,11 +340,11 @@
std::string
-LenaTdBetFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<uint16_t> dist)
+LenaTdBetFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<double> dist)
{
std::ostringstream oss;
oss << "distances (m) = [ " ;
- for (std::vector<uint16_t>::iterator it = dist.begin (); it != dist.end (); ++it)
+ for (std::vector<double>::iterator it = dist.begin (); it != dist.end (); ++it)
{
oss << *it << " ";
}
@@ -349,7 +353,7 @@
}
-LenaTdBetFfMacSchedulerTestCase2::LenaTdBetFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estAchievableRateDl, std::vector<uint32_t> estThrTdBetUl, bool errorModelEnabled)
+LenaTdBetFfMacSchedulerTestCase2::LenaTdBetFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estAchievableRateDl, std::vector<uint32_t> estThrTdBetUl, bool errorModelEnabled)
: TestCase (BuildNameString (dist.size (), dist)),
m_nUser (dist.size ()),
m_dist (dist),
--- a/src/lte/test/lte-test-tdbet-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-tdbet-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -42,14 +42,14 @@
class LenaTdBetFfMacSchedulerTestCase1 : public TestCase
{
public:
- LenaTdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
+ LenaTdBetFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
virtual ~LenaTdBetFfMacSchedulerTestCase1 ();
private:
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
virtual void DoRun (void);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
double m_thrRefDl;
double m_thrRefUl;
bool m_errorModelEnabled;
@@ -59,14 +59,14 @@
class LenaTdBetFfMacSchedulerTestCase2 : public TestCase
{
public:
- LenaTdBetFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> m_achievableRateDl, std::vector<uint32_t> estThrTdBetUl, bool m_errorModelEnabled);
+ LenaTdBetFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> m_achievableRateDl, std::vector<uint32_t> estThrTdBetUl, bool m_errorModelEnabled);
virtual ~LenaTdBetFfMacSchedulerTestCase2 ();
private:
- static std::string BuildNameString (uint16_t nUser, std::vector<uint16_t> dist);
+ static std::string BuildNameString (uint16_t nUser, std::vector<double> dist);
virtual void DoRun (void);
uint16_t m_nUser;
- std::vector<uint16_t> m_dist;
+ std::vector<double> m_dist;
std::vector<uint32_t> m_achievableRateDl;
std::vector<uint32_t> m_estThrTdBetUl;
bool m_errorModelEnabled;
--- a/src/lte/test/lte-test-tdmt-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-tdmt-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -148,6 +148,9 @@
AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,20000,421000,22000,errorModel), TestCase::EXTENSIVE);
AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,20000,421000,12000,errorModel), TestCase::EXTENSIVE);
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,100000,0,0,errorModel), TestCase::QUICK);
}
static LenaTestTdMtFfMacSchedulerSuite lenaTestTdMtFfMacSchedulerSuite;
@@ -156,14 +159,14 @@
// --------------- T E S T - C A S E ------------------------------
std::string
-LenaTdMtFfMacSchedulerTestCase::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaTdMtFfMacSchedulerTestCase::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
return oss.str ();
}
-LenaTdMtFfMacSchedulerTestCase::LenaTdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaTdMtFfMacSchedulerTestCase::LenaTdMtFfMacSchedulerTestCase (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
--- a/src/lte/test/lte-test-tdmt-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-tdmt-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -42,14 +42,14 @@
class LenaTdMtFfMacSchedulerTestCase : public TestCase
{
public:
- LenaTdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
+ LenaTdMtFfMacSchedulerTestCase (uint16_t nUser, double dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
virtual ~LenaTdMtFfMacSchedulerTestCase ();
private:
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
virtual void DoRun (void);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
double m_thrRefDl;
double m_thrRefUl;
bool m_errorModelEnabled;
--- a/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -157,13 +157,17 @@
AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (6,10000,129166,67000,200,1,errorModel), TestCase::EXTENSIVE);
//AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (12,10000,64583,32667,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (1,100000,0,0,200,1,errorModel), TestCase::QUICK);
+
// Test Case 2: homogeneous flow test in TDTBFQ (different distance)
// Traffic1 info
// UDP traffic: payload size = 100 bytes, interval = 1 ms
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> 132000 byte/rate
// Maximum throughput = 4 / ( 1/2196000 + 1/1383000 + 1/1191000 + 1/775000 ) = 1209000 byte/s
// 132000 * 4 = 528000 < 1209000 -> estimated throughput in downlink = 132000 byte/sec
- std::vector<uint16_t> dist1;
+ std::vector<double> dist1;
dist1.push_back (0); // User 0 distance --> MCS 28
dist1.push_back (4800); // User 1 distance --> MCS 22
dist1.push_back (6000); // User 2 distance --> MCS 20
@@ -185,7 +189,7 @@
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> 332000 byte/rate
// Maximum throughput = 4 / ( 1/2196000 + 1/1383000 + 1/1191000 + 1/775000 ) = 1209000 byte/s
// 332000 * 4 = 1328000 > 1209000 -> estimated throughput in downlink = 1209000 / 4 = 302500 byte/sec
- std::vector<uint16_t> dist2;
+ std::vector<double> dist2;
dist2.push_back (0); // User 0 distance --> MCS 28
dist2.push_back (4800); // User 1 distance --> MCS 22
dist2.push_back (6000); // User 2 distance --> MCS 20
@@ -207,7 +211,7 @@
// UDP rate in scheduler: (payload + RLC header + PDCP header + IP header + UDP header) * 1000 byte/sec -> [132000, 232000, 332000] byte/rate
// Maximum throughput = 3 / ( 1/2196000 + 1/1383000 + 1/1191000 ) = 1486666 byte/s
// 132000 + 232000 + 332000 = 696000 < 1486666 -> estimated throughput in downlink = [132000, 232000, 332000] byte/sec
- std::vector<uint16_t> dist3;
+ std::vector<double> dist3;
dist3.push_back (0); // User 0 distance --> MCS 28
dist3.push_back (4800); // User 1 distance --> MCS 22
dist3.push_back (6000); // User 2 distance --> MCS 20
@@ -229,7 +233,7 @@
std::string
-LenaTdTbfqFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaTdTbfqFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
@@ -237,7 +241,7 @@
}
-LenaTdTbfqFfMacSchedulerTestCase1::LenaTdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
+LenaTdTbfqFfMacSchedulerTestCase1::LenaTdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
@@ -473,11 +477,11 @@
std::string
-LenaTdTbfqFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<uint16_t> dist)
+LenaTdTbfqFfMacSchedulerTestCase2::BuildNameString (uint16_t nUser, std::vector<double> dist)
{
std::ostringstream oss;
oss << "distances (m) = [ " ;
- for (std::vector<uint16_t>::iterator it = dist.begin (); it != dist.end (); ++it)
+ for (std::vector<double>::iterator it = dist.begin (); it != dist.end (); ++it)
{
oss << *it << " ";
}
@@ -486,7 +490,7 @@
}
-LenaTdTbfqFfMacSchedulerTestCase2::LenaTdTbfqFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estThrTdTbfqDl, std::vector<uint16_t> packetSize, uint16_t interval,bool errorModelEnabled)
+LenaTdTbfqFfMacSchedulerTestCase2::LenaTdTbfqFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estThrTdTbfqDl, std::vector<uint16_t> packetSize, uint16_t interval,bool errorModelEnabled)
: TestCase (BuildNameString (dist.size (), dist)),
m_nUser (dist.size ()),
m_dist (dist),
--- a/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -42,14 +42,14 @@
class LenaTdTbfqFfMacSchedulerTestCase1 : public TestCase
{
public:
- LenaTdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled);
+ LenaTdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled);
virtual ~LenaTdTbfqFfMacSchedulerTestCase1 ();
private:
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
virtual void DoRun (void);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
uint16_t m_packetSize; // byte
uint16_t m_interval; // ms
double m_thrRefDl;
@@ -61,14 +61,14 @@
class LenaTdTbfqFfMacSchedulerTestCase2 : public TestCase
{
public:
- LenaTdTbfqFfMacSchedulerTestCase2 (std::vector<uint16_t> dist, std::vector<uint32_t> estThrTdTbfqDl, std::vector<uint16_t> packetSize, uint16_t interval, bool errorModelEnabled);
+ LenaTdTbfqFfMacSchedulerTestCase2 (std::vector<double> dist, std::vector<uint32_t> estThrTdTbfqDl, std::vector<uint16_t> packetSize, uint16_t interval, bool errorModelEnabled);
virtual ~LenaTdTbfqFfMacSchedulerTestCase2 ();
private:
- static std::string BuildNameString (uint16_t nUser, std::vector<uint16_t> dist);
+ static std::string BuildNameString (uint16_t nUser, std::vector<double> dist);
virtual void DoRun (void);
uint16_t m_nUser;
- std::vector<uint16_t> m_dist;
+ std::vector<double> m_dist;
std::vector<uint16_t> m_packetSize; // byte
uint16_t m_interval; // ms
std::vector<uint32_t> m_estThrTdTbfqDl;
--- a/src/lte/test/lte-test-tta-ff-mac-scheduler.cc Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-tta-ff-mac-scheduler.cc Wed Jan 28 13:41:20 2015 +0100
@@ -151,6 +151,9 @@
AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,20000,421000,22000,errorModel), TestCase::EXTENSIVE);
AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,20000,421000,12000,errorModel), TestCase::EXTENSIVE);
+ // DOWNLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ // UPLINK - DISTANCE 100000 -> CQI == 0 -> out of range -> 0 bytes/sec
+ AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,100000,0,0,errorModel), TestCase::QUICK);
}
static LenaTestTtaFfMacSchedulerSuite lenaTestTtaFfMacSchedulerSuite;
@@ -159,14 +162,14 @@
// --------------- T E S T - C A S E ------------------------------
std::string
-LenaTtaFfMacSchedulerTestCase::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaTtaFfMacSchedulerTestCase::BuildNameString (uint16_t nUser, double dist)
{
std::ostringstream oss;
oss << nUser << " UEs, distance " << dist << " m";
return oss.str ();
}
-LenaTtaFfMacSchedulerTestCase::LenaTtaFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaTtaFfMacSchedulerTestCase::LenaTtaFfMacSchedulerTestCase (uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
: TestCase (BuildNameString (nUser, dist)),
m_nUser (nUser),
m_dist (dist),
--- a/src/lte/test/lte-test-tta-ff-mac-scheduler.h Wed Jan 28 12:18:20 2015 +0100
+++ b/src/lte/test/lte-test-tta-ff-mac-scheduler.h Wed Jan 28 13:41:20 2015 +0100
@@ -42,14 +42,14 @@
class LenaTtaFfMacSchedulerTestCase : public TestCase
{
public:
- LenaTtaFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
+ LenaTtaFfMacSchedulerTestCase (uint16_t nUser, double dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
virtual ~LenaTtaFfMacSchedulerTestCase ();
private:
- static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+ static std::string BuildNameString (uint16_t nUser, double dist);
virtual void DoRun (void);
uint16_t m_nUser;
- uint16_t m_dist;
+ double m_dist;
double m_thrRefDl;
double m_thrRefUl;
bool m_errorModelEnabled;