A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-test-tdbet-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 * Dizhi Zhou <dizhi.zhou@gmail.com>
9 */
10
11#ifndef LENA_TEST_TDBET_FF_MAC_SCHEDULER_H
12#define LENA_TEST_TDBET_FF_MAC_SCHEDULER_H
13
14#include "ns3/simulator.h"
15#include "ns3/test.h"
16
17using namespace ns3;
18
19/**
20 * \ingroup lte-test
21 *
22 * \brief This system test program creates different test cases with a single eNB and
23 * several UEs, all having the same Radio Bearer specification. In each test
24 * case, the UEs see the same SINR from the eNB; different test cases are
25 * implemented obtained by using different SINR values and different numbers of
26 * UEs. The test consists on checking that the obtained throughput performance
27 * is equal among users is consistent with the definition of blind equal throughput
28 * scheduling
29 */
31{
32 public:
33 /**
34 * Constructor
35 *
36 * \param nUser the number of UE nodes
37 * \param dist the distance between UE nodes and eNodeB
38 * \param thrRefDl DL reference throughput
39 * \param thrRefUl UL reference throughput
40 * \param errorModelEnabled indicates whether the error model is enabled
41 */
43 double dist,
44 double thrRefDl,
45 double thrRefUl,
46 bool errorModelEnabled);
48
49 private:
50 /**
51 * Builds the test name string based on provided parameter values
52 * \param nUser the number of UE nodes
53 * \param dist the distance between UE nodes and eNodeB
54 * \returns the name string
55 */
56 static std::string BuildNameString(uint16_t nUser, double dist);
57 void DoRun() override;
58 uint16_t m_nUser; ///< number of UE nodes
59 double m_dist; ///< the distance between UE nodes and eNodeB
60 double m_thrRefDl; ///< the DL throughput reference
61 double m_thrRefUl; ///< the UL throughput reference
62 bool m_errorModelEnabled; ///< indicates whether the error model is enabled
63};
64
65/**
66 * \ingroup lte-test
67 *
68 * \brief Lena TdBet Ff Mac Scheduler Test Case
69 */
71{
72 public:
73 /**
74 * Constructor
75 *
76 * \param dist the distance between nodes
77 * \param achievableRateDl the DL achievable rate
78 * \param estThrTdBetUl UL reference throughput
79 * \param errorModelEnabled indicates whether the error model is enabled
80 */
81 LenaTdBetFfMacSchedulerTestCase2(std::vector<double> dist,
82 std::vector<uint32_t> achievableRateDl,
83 std::vector<uint32_t> estThrTdBetUl,
84 bool errorModelEnabled);
86
87 private:
88 /**
89 * Build name string
90 * \param nUser the number of UE nodes
91 * \param dist the distance between nodes
92 * \returns the name string
93 */
94 static std::string BuildNameString(uint16_t nUser, std::vector<double> dist);
95 void DoRun() override;
96 uint16_t m_nUser; ///< number of UE nodes
97 std::vector<double> m_dist; ///< the distance between nodes
98 std::vector<uint32_t> m_achievableRateDl; ///< DL achievable rate
99 std::vector<uint32_t> m_estThrTdBetUl; ///< etimated TDBET UL throughput
100 bool m_errorModelEnabled; ///< indicates whether the error model is enabled
101};
102
103/**
104 * \ingroup lte-test
105 *
106 * \brief Test suite for TdBetFfMacScheduler tests.
107 */
113
114#endif /* LENA_TEST_TDBET_FF_MAC_SCHEDULER_H */
This system test program creates different test cases with a single eNB and several UEs,...
bool m_errorModelEnabled
indicates whether the error model is enabled
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.
double m_thrRefUl
the UL throughput reference
double m_thrRefDl
the DL throughput reference
LenaTdBetFfMacSchedulerTestCase1(uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
Constructor.
double m_dist
the distance between UE nodes and eNodeB
Lena TdBet Ff Mac Scheduler Test Case.
static std::string BuildNameString(uint16_t nUser, std::vector< double > dist)
Build name string.
void DoRun() override
Implementation to actually run this TestCase.
std::vector< double > m_dist
the distance between nodes
LenaTdBetFfMacSchedulerTestCase2(std::vector< double > dist, std::vector< uint32_t > achievableRateDl, std::vector< uint32_t > estThrTdBetUl, bool errorModelEnabled)
Constructor.
std::vector< uint32_t > m_estThrTdBetUl
etimated TDBET UL throughput
bool m_errorModelEnabled
indicates whether the error model is enabled
std::vector< uint32_t > m_achievableRateDl
DL achievable rate.
Test suite for TdBetFfMacScheduler tests.
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.