A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-test-fdtbfq-ff-mac-scheduler.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Marco Miozzo <marco.miozzo@cttc.es>,
18 * Nicola Baldo <nbaldo@cttc.es>
19 * Dizhi Zhou <dizhi.zhou@gmail.com>
20 */
21
22#ifndef LENA_TEST_FDTBFQ_FF_MAC_SCHEDULER_H
23#define LENA_TEST_FDTBFQ_FF_MAC_SCHEDULER_H
24
25#include "ns3/simulator.h"
26#include "ns3/test.h"
27
28using namespace ns3;
29
30/**
31 * \ingroup lte-test
32 *
33 * \brief This system test program creates different test cases with a single eNB and
34 * several UEs, all having the same Radio Bearer specification. In each test
35 * case, the UEs see the same SINR from the eNB; different test cases are
36 * implemented obtained by using different SINR values and different numbers of
37 * UEs. The test consists on checking that the obtained throughput performance
38 * is equal among users is consistent with the definition of token bank fair
39 * queue scheduling
40 */
42{
43 public:
44 /**
45 * Constructor
46 *
47 * \param nUser number of UE nodes
48 * \param dist distance between nodes
49 * \param thrRefDl DL throughput reference
50 * \param thrRefUl UL throughput reference
51 * \param packetSize packet size
52 * \param interval time interval
53 * \param errorModelEnabled error model enabled?
54 */
56 double dist,
57 double thrRefDl,
58 double thrRefUl,
59 uint16_t packetSize,
60 uint16_t interval,
61 bool errorModelEnabled);
63
64 private:
65 /**
66 * Builds the test name string based on provided parameter values
67 *
68 * \param nUser number of UE nodes
69 * \param dist distance between nodes
70 * \returns name string
71 */
72 static std::string BuildNameString(uint16_t nUser, double dist);
73 void DoRun() override;
74 uint16_t m_nUser; ///< number of UE nodes
75 double m_dist; ///< distance between the nodes
76 uint16_t m_packetSize; ///< packet size in bytes
77 uint16_t m_interval; ///< interval time in ms
78 double m_thrRefDl; ///< DL throughput reference
79 double m_thrRefUl; ///< UL throughput reference
80 bool m_errorModelEnabled; ///< whether the error model is enabled
81};
82
83/**
84 * \ingroup lte-test
85 *
86 * \brief Test case is similar to the one defined in
87 * LenaFdTbfqFfMacSchedulerTestCase1, with the difference that UEs are
88 * placed in such a way to experience different SINRs from eNodeB.
89 */
91{
92 public:
93 /**
94 * Constructor
95 *
96 * \param dist distance between nodes
97 * \param estThrFdTbfqDl estimated DL throughput
98 * \param packetSize packet size
99 * \param interval time interval
100 * \param errorModelEnabled indicates whether the error model is enabled
101 */
102 LenaFdTbfqFfMacSchedulerTestCase2(std::vector<double> dist,
103 std::vector<uint32_t> estThrFdTbfqDl,
104 std::vector<uint16_t> packetSize,
105 uint16_t interval,
106 bool errorModelEnabled);
108
109 private:
110 /**
111 * Builds the test name string based on provided parameter values
112 *
113 * \param nUser number of UE nodes
114 * \param dist distance between nodes
115 * \returns name string
116 */
117 static std::string BuildNameString(uint16_t nUser, std::vector<double> dist);
118 void DoRun() override;
119 uint16_t m_nUser; ///< number of UE nodes
120 std::vector<double> m_dist; ///< distance between the nodes
121 std::vector<uint16_t> m_packetSize; ///< packet size in bytes
122 uint16_t m_interval; ///< interval time in ms
123 std::vector<uint32_t> m_estThrFdTbfqDl; ///< estimated thrpughput FDTBFQ DL
124 bool m_errorModelEnabled; ///< error model enabled?
125};
126
127/**
128 * \ingroup lte-test
129 *
130 * \brief Test suit for FdTbfqFfMacScheduler test.
131 */
133{
134 public:
136};
137
138#endif /* LENA_TEST_FDTBFQ_FF_MAC_SCHEDULER_H */
This system test program creates different test cases with a single eNB and several UEs,...
static std::string BuildNameString(uint16_t nUser, double dist)
Builds the test name string based on provided parameter values.
void DoRun() override
Implementation to actually run this TestCase.
bool m_errorModelEnabled
whether the error model is enabled
Test case is similar to the one defined in LenaFdTbfqFfMacSchedulerTestCase1, with the difference tha...
void DoRun() override
Implementation to actually run this TestCase.
std::vector< uint32_t > m_estThrFdTbfqDl
estimated thrpughput FDTBFQ DL
static std::string BuildNameString(uint16_t nUser, std::vector< double > dist)
Builds the test name string based on provided parameter values.
std::vector< double > m_dist
distance between the nodes
std::vector< uint16_t > m_packetSize
packet size in bytes
Test suit for FdTbfqFfMacScheduler test.
encapsulates test code
Definition: test.h:1061
A suite of tests to run.
Definition: test.h:1268
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static const uint32_t packetSize
Packet size generated at the AP.