32class NrSystemTestSchedulerTdmaRrDlSuite :
public TestSuite
38 NrSystemTestSchedulerTdmaRrDlSuite();
41NrSystemTestSchedulerTdmaRrDlSuite::NrSystemTestSchedulerTdmaRrDlSuite()
42 : TestSuite(
"nr-system-test-schedulers-tdma-rr-dl", Type::SYSTEM)
44 std::list<std::string> subdivision = {
47 std::list<std::string> scheds = {
"RR"};
48 std::list<std::string> mode = {
51 std::list<uint32_t> uesPerBeamList = {1, 2, 4, 8};
52 std::map<uint32_t, Duration> durationForUesPerBeam = {
55 {4, Duration::EXTENSIVE},
56 {8, Duration::EXTENSIVE},
58 std::list<uint32_t> beams = {1, 2};
59 std::list<uint32_t> numerologies = {
64 for (
const auto& num : numerologies)
66 for (
const auto& subType : subdivision)
68 for (
const auto& sched : scheds)
70 for (
const auto& modeType : mode)
72 for (
const auto& uesPerBeam : uesPerBeamList)
74 for (
const auto& beam : beams)
77 std::stringstream schedName;
78 ss <<
", Num " << num <<
", " << modeType <<
", " << subType <<
" "
79 << sched <<
", " << uesPerBeam <<
" UE per beam, " << beam
81 const bool isDl = modeType ==
"DL" || modeType ==
"DL_UL";
82 const bool isUl = modeType ==
"UL" || modeType ==
"DL_UL";
84 schedName <<
"ns3::NrMacScheduler" << subType << sched;
94 durationForUesPerBeam.at(uesPerBeam));
103static NrSystemTestSchedulerTdmaRrDlSuite nrSystemTestSchedulerTdmaRrDlSuite;
117class NrSystemTestSchedulerTdmaRrUlSuite :
public TestSuite
123 NrSystemTestSchedulerTdmaRrUlSuite();
126NrSystemTestSchedulerTdmaRrUlSuite::NrSystemTestSchedulerTdmaRrUlSuite()
127 : TestSuite(
"nr-system-test-schedulers-tdma-rr-ul", Type::SYSTEM)
129 std::list<std::string> subdivision = {
132 std::list<std::string> scheds = {
"RR"};
133 std::list<std::string> mode = {
136 std::list<uint32_t> uesPerBeamList = {1, 2, 4, 8};
137 std::list<uint32_t> beams = {1, 2};
138 std::list<uint32_t> numerologies = {
143 for (
const auto& num : numerologies)
145 for (
const auto& subType : subdivision)
147 for (
const auto& sched : scheds)
149 for (
const auto& modeType : mode)
151 for (
const auto& uesPerBeam : uesPerBeamList)
153 for (
const auto& beam : beams)
155 std::stringstream ss;
156 std::stringstream schedName;
157 ss <<
", Num " << num <<
", " << modeType <<
", " << subType <<
" "
158 << sched <<
", " << uesPerBeam <<
" UE per beam, " << beam
160 const bool isDl = modeType ==
"DL" || modeType ==
"DL_UL";
161 const bool isUl = modeType ==
"UL" || modeType ==
"DL_UL";
163 schedName <<
"ns3::NrMacScheduler" << subType << sched;
182static NrSystemTestSchedulerTdmaRrUlSuite nrSystemTestSchedulerTdmaRrUlSuite;
196class NrSystemTestSchedulerTdmaRrDlUlSuite :
public TestSuite
202 NrSystemTestSchedulerTdmaRrDlUlSuite();
205NrSystemTestSchedulerTdmaRrDlUlSuite::NrSystemTestSchedulerTdmaRrDlUlSuite()
206 : TestSuite(
"nr-system-test-schedulers-tdma-rr-dl-ul", Type::SYSTEM)
208 std::list<std::string> subdivision = {
211 std::list<std::string> scheds = {
"RR"};
212 std::list<std::string> mode = {
215 std::list<uint32_t> uesPerBeamList = {8};
216 std::list<uint32_t> beams = {
219 std::list<uint32_t> numerologies = {
223 for (
const auto& num : numerologies)
225 for (
const auto& subType : subdivision)
227 for (
const auto& sched : scheds)
229 for (
const auto& modeType : mode)
231 for (
const auto& uesPerBeam : uesPerBeamList)
233 for (
const auto& beam : beams)
235 std::stringstream ss;
236 std::stringstream schedName;
237 ss <<
", Num " << num <<
", " << modeType <<
", " << subType <<
" "
238 << sched <<
", " << uesPerBeam <<
" UE per beam, " << beam
240 const bool isDl = modeType ==
"DL" || modeType ==
"DL_UL";
241 const bool isUl = modeType ==
"UL" || modeType ==
"DL_UL";
243 schedName <<
"ns3::NrMacScheduler" << subType << sched;
262static NrSystemTestSchedulerTdmaRrDlUlSuite nrSystemTestSchedulerTdmaRrDlUlSuite;
Main class for testing a scheduler, system-wise.
This test case checks if the throughput obtained per UE is as expected for the specified scheduling l...