A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-test-pf-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 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Marco Miozzo <marco.miozzo@cttc.es>,
7 * Nicola Baldo <nbaldo@cttc.es>
8 */
9
10#ifndef LENA_TEST_PF_FF_MAC_SCHEDULER_H
11#define LENA_TEST_PF_FF_MAC_SCHEDULER_H
12
13#include "ns3/simulator.h"
14#include "ns3/test.h"
15
16using namespace ns3;
17
18/**
19 * \ingroup lte-test
20 *
21 * \brief This system test program creates different test cases with a single eNB and
22 * several UEs, all having the same Radio Bearer specification. In each test
23 * case, the UEs see the same SINR from the eNB; different test cases are
24 * implemented obtained by using different SINR values and different numbers of
25 * UEs. The test consists on checking that the obtained throughput performance
26 * is equal among users is consistent with the definition of proportional
27 * fair scheduling
28 */
30{
31 public:
32 /**
33 * Constructor
34 *
35 * \param nUser the number of UE nodes
36 * \param dist the distance between nodes
37 * \param thrRefDl the DL throughput reference
38 * \param thrRefUl the UL throughput reference
39 * \param errorModelEnabled if true the error model is enabled
40 */
41 LenaPfFfMacSchedulerTestCase1(uint16_t nUser,
42 double dist,
43 double thrRefDl,
44 double thrRefUl,
45 bool errorModelEnabled);
47
48 private:
49 /**
50 * Build name string
51 * \param nUser the number of UE nodes
52 * \param dist the distance between nodes
53 * \returns the name string
54 */
55 static std::string BuildNameString(uint16_t nUser, double dist);
56 void DoRun() override;
57 uint16_t m_nUser; ///< number of UE nodes
58 double m_dist; ///< the distance between nodes
59 double m_thrRefDl; ///< the DL throughput reference
60 double m_thrRefUl; ///< the UL throughput reference
61 bool m_errorModelEnabled; ///< whether error model is enabled
62};
63
64/**
65 * \ingroup lte-test
66 *
67 * \brief Lena PfFf Mac Scheduler Test Case 2
68 */
70{
71 public:
72 /**
73 * Constructor
74 *
75 * \param dist the distance between nodes
76 * \param estThrPfDl the estimated DL throughput PF
77 * \param estThrPfUl the estimated UL throughput PF
78 * \param errorModelEnabled if true the error model is enabled
79 */
80 LenaPfFfMacSchedulerTestCase2(std::vector<double> dist,
81 std::vector<uint32_t> estThrPfDl,
82 std::vector<uint32_t> estThrPfUl,
83 bool errorModelEnabled);
85
86 private:
87 /**
88 * Builds the test name string based on provided parameter values
89 * \param nUser the number of UE nodes
90 * \param dist the distance between nodes
91 * \returns the name string
92 */
93 static std::string BuildNameString(uint16_t nUser, std::vector<double> dist);
94 void DoRun() override;
95 uint16_t m_nUser; ///< number of UE nodes
96 std::vector<double> m_dist; ///< the distance between nodes
97 std::vector<uint32_t> m_estThrPfDl; ///< the estimated DL throughput
98 std::vector<uint32_t> m_estThrPfUl; ///< the estimated UL throughput
99 bool m_errorModelEnabled; ///< indicates whether the error model is enabled
100};
101
102/**
103 * \ingroup lte-test
104 *
105 * \brief PfFfMacScheduler test suite
106 */
107
109{
110 public:
112};
113
114#endif /* LENA_TEST_PF_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)
Build name string.
bool m_errorModelEnabled
whether error model is enabled
void DoRun() override
Implementation to actually run this TestCase.
double m_thrRefUl
the UL throughput reference
double m_thrRefDl
the DL throughput reference
LenaPfFfMacSchedulerTestCase1(uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
Constructor.
double m_dist
the distance between nodes
Lena PfFf Mac Scheduler Test Case 2.
LenaPfFfMacSchedulerTestCase2(std::vector< double > dist, std::vector< uint32_t > estThrPfDl, std::vector< uint32_t > estThrPfUl, bool errorModelEnabled)
Constructor.
std::vector< uint32_t > m_estThrPfUl
the estimated UL throughput
bool m_errorModelEnabled
indicates whether the error model is enabled
std::vector< uint32_t > m_estThrPfDl
the estimated DL throughput
std::vector< double > m_dist
the distance between nodes
static std::string BuildNameString(uint16_t nUser, std::vector< double > dist)
Builds the test name string based on provided parameter values.
void DoRun() override
Implementation to actually run this TestCase.
encapsulates test code
Definition test.h:1050
A suite of tests to run.
Definition test.h:1267
Every class exported by the ns3 library is enclosed in the ns3 namespace.