LEFT | RIGHT |
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) | 3 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 5 * This program is free software; you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 2 as | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 #include <ns3/lte-helper.h> | 44 #include <ns3/lte-helper.h> |
45 #include "ns3/string.h" | 45 #include "ns3/string.h" |
46 #include "ns3/double.h" | 46 #include "ns3/double.h" |
47 #include <ns3/lte-enb-phy.h> | 47 #include <ns3/lte-enb-phy.h> |
48 #include <ns3/lte-ue-phy.h> | 48 #include <ns3/lte-ue-phy.h> |
49 #include <ns3/boolean.h> | 49 #include <ns3/boolean.h> |
50 #include <ns3/enum.h> | 50 #include <ns3/enum.h> |
51 | 51 |
52 #include "lte-test-tdbet-ff-mac-scheduler.h" | 52 #include "lte-test-tdbet-ff-mac-scheduler.h" |
53 | 53 |
54 NS_LOG_COMPONENT_DEFINE ("LenaTestTdBetFfMacCheduler"); | 54 NS_LOG_COMPONENT_DEFINE ("LenaTestTdBetFfMacScheduler"); |
55 | 55 |
56 namespace ns3 { | 56 namespace ns3 { |
57 | 57 |
58 LenaTestTdBetFfMacSchedulerSuite::LenaTestTdBetFfMacSchedulerSuite () | 58 LenaTestTdBetFfMacSchedulerSuite::LenaTestTdBetFfMacSchedulerSuite () |
59 : TestSuite ("lte-tdbet-ff-mac-scheduler", SYSTEM) | 59 : TestSuite ("lte-tdbet-ff-mac-scheduler", SYSTEM) |
60 { | 60 { |
61 NS_LOG_INFO ("creating LenaTestTdBetFfMacSchedulerSuite"); | 61 NS_LOG_INFO ("creating LenaTestTdBetFfMacSchedulerSuite"); |
62 | 62 |
63 bool errorModel = false; | 63 bool errorModel = false; |
64 | 64 |
(...skipping 26 matching lines...) Expand all Loading... |
91 // 1 user -> 25 PRB at Itbs 13 -> 807 -> 807000 bytes/sec | 91 // 1 user -> 25 PRB at Itbs 13 -> 807 -> 807000 bytes/sec |
92 // 3 users -> 8 PRB at Itbs 13 -> 253 -> 253000 bytes/sec | 92 // 3 users -> 8 PRB at Itbs 13 -> 253 -> 253000 bytes/sec |
93 // 6 users -> 4 PRB at Itbs 13 -> 125 -> 125000 bytes/sec | 93 // 6 users -> 4 PRB at Itbs 13 -> 125 -> 125000 bytes/sec |
94 // after the patch enforcing min 3 PRBs per UE: | 94 // after the patch enforcing min 3 PRBs per UE: |
95 // 12 users -> 3 PRB at Itbs 13 -> 93 bytes * 8/12 UE/TTI -> 62000 bytes/sec | 95 // 12 users -> 3 PRB at Itbs 13 -> 93 bytes * 8/12 UE/TTI -> 62000 bytes/sec |
96 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,4800,1383000,807000, er
rorModel), TestCase::EXTENSIVE); | 96 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,4800,1383000,807000, er
rorModel), TestCase::EXTENSIVE); |
97 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,4800,461000,253000, err
orModel), TestCase::EXTENSIVE); | 97 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,4800,461000,253000, err
orModel), TestCase::EXTENSIVE); |
98 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,4800,230500,125000, err
orModel), TestCase::EXTENSIVE); | 98 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,4800,230500,125000, err
orModel), TestCase::EXTENSIVE); |
99 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,4800,115250,62000, err
orModel), TestCase::EXTENSIVE); | 99 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,4800,115250,62000, err
orModel), TestCase::EXTENSIVE); |
100 | 100 |
101 // DOWNLINK - DISTANCE 6000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 36
.213) | 101 // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36
.213) |
102 // 1 user -> 24 PRB at Itbs 13 -> 775 -> 775000 bytes/sec | 102 // 1 user -> 24 PRB at Itbs 18 -> 1191 -> 1191000 byte/sec |
103 // 3 users -> 775000 among 3 users ->258333 bytes/sec | 103 // 3 users -> 1191000 among 3 users ->397000 bytes/sec |
104 // 6 users -> 775000 among 6 users ->129166 bytes/sec | 104 // 6 users -> 1191000 among 6 users ->198500 bytes/sec |
105 // 12 users -> 775000 among 12 users ->64583 bytes/sec | 105 // 12 users -> 1191000 among 12 users ->99250 bytes/sec |
106 // UPLINK - DISTANCE 6000 -> MCS 12 -> Itbs 11 (from table 7.1.7.2.1-1 of 36.2
13) | 106 // UPLINK - DISTANCE 6000 -> MCS 12 -> Itbs 11 (from table 7.1.7.2.1-1 of 36.2
13) |
107 // 1 user -> 25 PRB at Itbs 11 -> 621 -> 621000 bytes/sec | 107 // 1 user -> 25 PRB at Itbs 11 -> 621 -> 621000 bytes/sec |
108 // 3 users -> 8 PRB at Itbs 11 -> 201 -> 201000 bytes/sec | 108 // 3 users -> 8 PRB at Itbs 11 -> 201 -> 201000 bytes/sec |
109 // 6 users -> 4 PRB at Itbs 11 -> 97 -> 97000 bytes/sec | 109 // 6 users -> 4 PRB at Itbs 11 -> 97 -> 97000 bytes/sec |
110 // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 bytes/sec | 110 // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 bytes/sec |
111 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,6000,775000,621000,erro
rModel), TestCase::EXTENSIVE); | 111 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,6000,1191000,621000,err
orModel), TestCase::EXTENSIVE); |
112 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,6000,258333,201000,erro
rModel), TestCase::EXTENSIVE); | 112 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,6000,397000,201000,erro
rModel), TestCase::EXTENSIVE); |
113 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,6000,129166,97000,error
Model), TestCase::EXTENSIVE); | 113 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,6000,198500,97000,error
Model), TestCase::EXTENSIVE); |
114 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,6000,64583,48667,error
Model), TestCase::EXTENSIVE); | 114 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,6000,99250,48667,error
Model), TestCase::EXTENSIVE); |
115 ·· | 115 ·· |
116 // DOWNLINK - DISTANCE 10000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.
213) | 116 // DOWNLINK - DISTANCE 10000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 3
6.213) |
117 // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec | 117 // 1 user -> 24 PRB at Itbs 13 -> 775 -> 775000 byte/sec |
118 // 3 users -> 421000 among 3 users ->140333 bytes/sec | 118 // 3 users -> 775000 among 3 users -> 258333 bytes/sec |
119 // 6 users -> 421000 among 6 users ->70166 bytes/sec | 119 // 6 users -> 775000 among 6 users -> 129166 bytes/sec |
120 // 12 users -> 421000 among 12 users ->35083 bytes/sec | 120 // 12 users -> 775000 among 12 users ->64583 bytes/sec |
121 // UPLINK - DISTANCE 9000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.213
) | 121 // UPLINK - DISTANCE 9000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.213
) |
122 // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec | 122 // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec |
123 // 3 users -> 8 PRB at Itbs 8 -> 137 -> 137000 bytes/sec | 123 // 3 users -> 8 PRB at Itbs 8 -> 137 -> 137000 bytes/sec |
124 // 6 users -> 4 PRB at Itbs 8 -> 67 -> 67000 bytes/sec | 124 // 6 users -> 4 PRB at Itbs 8 -> 67 -> 67000 bytes/sec |
125 // after the patch enforcing min 3 PRBs per UE: | 125 // after the patch enforcing min 3 PRBs per UE: |
126 // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 bytes/sec | 126 // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 bytes/sec |
127 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,10000,421000,421000,err
orModel), TestCase::EXTENSIVE); | 127 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,10000,775000,421000,err
orModel), TestCase::EXTENSIVE); |
128 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,10000,140333,137000,err
orModel), TestCase::EXTENSIVE); | 128 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,10000,258333,137000,err
orModel), TestCase::EXTENSIVE); |
129 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,10000,70166,67000,error
Model), TestCase::EXTENSIVE); | 129 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,10000,129166,67000,erro
rModel), TestCase::EXTENSIVE); |
130 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,10000,35083,32667,erro
rModel), TestCase::EXTENSIVE); | 130 AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,10000,64583,32667,erro
rModel), TestCase::EXTENSIVE); |
131 | 131 |
132 // DOWNLINK - DISTANCE 20000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.
213) | 132 // DOWNLINK - DISTANCE 20000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.
213) |
133 // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec | 133 // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec |
134 // 3 users -> 421000 among 3 users ->140333 bytes/sec | 134 // 3 users -> 421000 among 3 users ->140333 bytes/sec |
135 // 6 users -> 421000 among 6 users ->70166 bytes/sec | 135 // 6 users -> 421000 among 6 users ->70166 bytes/sec |
136 // 12 users -> 421000 among 12 users ->35083 bytes/sec· | 136 // 12 users -> 421000 among 12 users ->35083 bytes/sec· |
137 // UPLINK - DISTANCE 20000 -> MCS 2 -> Itbs 2 (from table 7.1.7.2.1-1 of 36.21
3) | 137 // UPLINK - DISTANCE 20000 -> MCS 2 -> Itbs 2 (from table 7.1.7.2.1-1 of 36.21
3) |
138 // 1 user -> 25 PRB at Itbs 2 -> 137 -> 137000 bytes/sec | 138 // 1 user -> 25 PRB at Itbs 2 -> 137 -> 137000 bytes/sec |
139 // 3 users -> 8 PRB at Itbs 2 -> 41 -> 41000 bytes/sec | 139 // 3 users -> 8 PRB at Itbs 2 -> 41 -> 41000 bytes/sec |
140 // 6 users -> 4 PRB at Itbs 2 -> 22 -> 22000 bytes/sec | 140 // 6 users -> 4 PRB at Itbs 2 -> 22 -> 22000 bytes/sec |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 LenaTdBetFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, uint16_t dist
) | 178 LenaTdBetFfMacSchedulerTestCase1::BuildNameString (uint16_t nUser, uint16_t dist
) |
179 { | 179 { |
180 std::ostringstream oss; | 180 std::ostringstream oss; |
181 oss << nUser << " UEs, distance " << dist << " m"; | 181 oss << nUser << " UEs, distance " << dist << " m"; |
182 return oss.str (); | 182 return oss.str (); |
183 } | 183 } |
184 | 184 |
185 LenaTdBetFfMacSchedulerTestCase1::LenaTdBetFfMacSchedulerTestCase1 (uint16_t nUs
er, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorMod
elEnabled) | 185 LenaTdBetFfMacSchedulerTestCase1::LenaTdBetFfMacSchedulerTestCase1 (uint16_t nUs
er, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorMod
elEnabled) |
186 : TestCase (BuildNameString (nUser, dist)), | 186 : TestCase (BuildNameString (nUser, dist)), |
187 m_nUser (nUser), | 187 m_nUser (nUser), |
| 188 m_nLc (nLc), |
188 m_dist (dist), | 189 m_dist (dist), |
189 m_thrRefDl (thrRefDl), | 190 m_thrRefDl (thrRefDl), |
190 m_thrRefUl (thrRefUl), | 191 m_thrRefUl (thrRefUl), |
191 m_errorModelEnabled (errorModelEnabled) | 192 m_errorModelEnabled (errorModelEnabled) |
192 { | 193 { |
| 194 NS_UNUSED (m_nLc); |
193 } | 195 } |
194 | 196 |
195 LenaTdBetFfMacSchedulerTestCase1::~LenaTdBetFfMacSchedulerTestCase1 () | 197 LenaTdBetFfMacSchedulerTestCase1::~LenaTdBetFfMacSchedulerTestCase1 () |
196 { | 198 { |
197 } | 199 } |
198 | 200 |
199 void | 201 void |
200 LenaTdBetFfMacSchedulerTestCase1::DoRun (void) | 202 LenaTdBetFfMacSchedulerTestCase1::DoRun (void) |
201 { | 203 { |
202 if (!m_errorModelEnabled) | 204 if (!m_errorModelEnabled) |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 Simulator::Destroy (); | 493 Simulator::Destroy (); |
492 | 494 |
493 } | 495 } |
494 | 496 |
495 | 497 |
496 } // namespace ns3 | 498 } // namespace ns3 |
497 | 499 |
498 | 500 |
499 | 501 |
500 | 502 |
LEFT | RIGHT |