A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-test-cqa-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: Biljana Bojovic<bbojovic@cttc.es>
7 * Dizhi Zhou <dizhi.zhou@gmail.com>
8 * Marco Miozzo <marco.miozzo@cttc.es>,
9 * Nicola Baldo <nbaldo@cttc.es>
10 *
11 */
12
13#ifndef LENA_TEST_CQA_FF_MAC_SCHEDULER_H
14#define LENA_TEST_CQA_FF_MAC_SCHEDULER_H
15
16#include "ns3/simulator.h"
17#include "ns3/test.h"
18
19using namespace ns3;
20
21/**
22 * \ingroup lte-test
23 *
24 * \brief This is a system test program. The test is based on a scenario with single eNB and several
25 * UEs. The goal of the test is validating if the obtained throughput performance is consistent with
26 * the definition of CQA scheduler.
27 */
28
30{
31 public:
32 /**
33 * Constructor
34 *
35 * \param nUser number of UE nodes
36 * \param dist distance between nodes
37 * \param thrRefDl DL throughput reference
38 * \param thrRefUl UL throughput reference
39 * \param packetSize packet size
40 * \param interval time interval
41 * \param errorModelEnabled error model enabled?
42 */
43 LenaCqaFfMacSchedulerTestCase1(uint16_t nUser,
44 double dist,
45 double thrRefDl,
46 double thrRefUl,
47 uint16_t packetSize,
48 uint16_t interval,
49 bool errorModelEnabled);
51
52 private:
53 /**
54 * Builds the test name string based on provided parameter values
55 *
56 * \param nUser number of UE nodes
57 * \param dist distance between nodes
58 * \returns name string
59 */
60 static std::string BuildNameString(uint16_t nUser, double dist);
61 void DoRun() override;
62 uint16_t m_nUser; ///< number of UE nodes
63 double m_dist; ///< distance between the nodes
64 uint16_t m_packetSize; ///< packet size in bytes
65 uint16_t m_interval; ///< interval time in ms
66 double m_thrRefDl; ///< estimated downlink throughput
67 double m_thrRefUl; ///< estimated uplink throughput
68 bool m_errorModelEnabled; ///< whether error model is enabled
69};
70
71/**
72 * \ingroup lte-test
73 *
74 * \brief This is a system test program. The test is based on a scenario with single eNB and several
75 * UEs. The goal of the test is validating if the obtained throughput performance is consistent with
76 * the definition of CQA scheduler when the UEs with different SINRs.
77 */
78
80{
81 public:
82 /**
83 * Constructor
84 *
85 * \param dist distance between nodes
86 * \param estThrCqaDl estimated CQA throughput in the downlink
87 * \param packetSize packet size
88 * \param interval the UDP packet time interval
89 * \param errorModelEnabled whether the error model enabled is enabled in the test case
90 */
91 LenaCqaFfMacSchedulerTestCase2(std::vector<double> dist,
92 std::vector<uint32_t> estThrCqaDl,
93 std::vector<uint16_t> packetSize,
94 uint16_t interval,
95 bool errorModelEnabled);
97
98 private:
99 /**
100 * Builds the test name string based on provided parameter values
101 *
102 * \param nUser number of UE nodes
103 * \param dist distance between nodes
104 * \returns name string
105 */
106 static std::string BuildNameString(uint16_t nUser, std::vector<double> dist);
107 void DoRun() override;
108 uint16_t m_nUser; ///< number of UE nodes
109 std::vector<double> m_dist; ///< distance between the nodes
110 std::vector<uint16_t> m_packetSize; ///< packet size in bytes
111 uint16_t m_interval; ///< UDP interval time in ms
112 std::vector<uint32_t> m_estThrCqaDl; ///< estimated throughput CQA DL
113 bool m_errorModelEnabled; ///< whether the error model is enabled
114};
115
116/**
117 * \ingroup lte-test
118 *
119 * \brief The test suite for testing CQA scheduler functionality
120 */
121
127
128#endif /* LENA_TEST_CQA_FF_MAC_SCHEDULER_H */
double m_dist
distance between the nodes
double m_thrRefUl
estimated uplink throughput
void DoRun() override
Implementation to actually run this TestCase.
uint16_t m_packetSize
packet size in bytes
LenaCqaFfMacSchedulerTestCase1(uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled)
Constructor.
double m_thrRefDl
estimated downlink throughput
static std::string BuildNameString(uint16_t nUser, double dist)
Builds the test name string based on provided parameter values.
bool m_errorModelEnabled
whether error model is enabled
bool m_errorModelEnabled
whether the error model is enabled
uint16_t m_interval
UDP interval time in ms.
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
LenaCqaFfMacSchedulerTestCase2(std::vector< double > dist, std::vector< uint32_t > estThrCqaDl, std::vector< uint16_t > packetSize, uint16_t interval, bool errorModelEnabled)
Constructor.
std::vector< uint16_t > m_packetSize
packet size in bytes
std::vector< uint32_t > m_estThrCqaDl
estimated throughput CQA DL
void DoRun() override
Implementation to actually run this TestCase.
The test suite for testing CQA scheduler functionality.
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.
static const uint32_t packetSize
Packet size generated at the AP.