A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-test-fdbet-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_FDBET_FF_MAC_SCHEDULER_H
12#define LENA_TEST_FDBET_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 number of UE nodes
37 * \param dist distance between nodes
38 * \param thrRefDl DL throughput reference
39 * \param thrRefUl UL throughput reference
40 * \param errorModelEnabled error model 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 *
53 * \param nUser number of UE nodes
54 * \param dist distance between nodes
55 * \returns name string
56 */
57 static std::string BuildNameString(uint16_t nUser, double dist);
58 void DoRun() override;
59 uint16_t m_nUser; ///< number of UE nodes
60 double m_dist; ///< distance between the nodes
61 double m_thrRefDl; ///< DL throughput reference
62 double m_thrRefUl; ///< UL throughput reference
63 bool m_errorModelEnabled; ///< error model enabled?
64};
65
66/**
67 * \ingroup lte-test
68 *
69 * \brief Test case is similar to the one defined in
70 * LenaFdBetFfMacSchedulerTestCase1, with the difference that UEs are
71 * placed in such a way to experience different SINRs from eNodeB.
72 */
74{
75 public:
76 /**
77 * Constructor
78 *
79 * \param dist distance between nodes
80 * \param achievableRateDl DL achievable rate
81 * \param estThrFdBetUl UL estimated throughput bet UL
82 * \param errorModelEnabled error model enabled?
83 */
84 LenaFdBetFfMacSchedulerTestCase2(std::vector<double> dist,
85 std::vector<uint32_t> achievableRateDl,
86 std::vector<uint32_t> estThrFdBetUl,
87 bool errorModelEnabled);
89
90 private:
91 /**
92 * Builds the test name string based on provided parameter values
93 *
94 * \param nUser number of UE nodes
95 * \param dist distance between nodes
96 * \returns name string
97 */
98 static std::string BuildNameString(uint16_t nUser, std::vector<double> dist);
99 void DoRun() override;
100 uint16_t m_nUser; ///< number of UE nodes
101 std::vector<double> m_dist; ///< distance between the nodes
102 std::vector<uint32_t> m_achievableRateDl; ///< DL achievable rate
103 std::vector<uint32_t> m_estThrFdBetUl; ///< estimated throughput FDBET UL
104 bool m_errorModelEnabled; ///< specifies whether the error model is enabled
105};
106
107/**
108 * \ingroup lte-test
109 *
110 * \brief Test suite for FDBetFfMacScheduler test case.
111 */
112
118
119#endif /* LENA_TEST_FDBET_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.
LenaFdBetFfMacSchedulerTestCase1(uint16_t nUser, double dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
Constructor.
void DoRun() override
Implementation to actually run this TestCase.
Test case is similar to the one defined in LenaFdBetFfMacSchedulerTestCase1, with the difference that...
void DoRun() override
Implementation to actually run this TestCase.
bool m_errorModelEnabled
specifies whether the error model is enabled
std::vector< double > m_dist
distance between the nodes
static std::string BuildNameString(uint16_t nUser, std::vector< double > dist)
Builds the test name string based on provided parameter values.
std::vector< uint32_t > m_achievableRateDl
DL achievable rate.
std::vector< uint32_t > m_estThrFdBetUl
estimated throughput FDBET UL
LenaFdBetFfMacSchedulerTestCase2(std::vector< double > dist, std::vector< uint32_t > achievableRateDl, std::vector< uint32_t > estThrFdBetUl, bool errorModelEnabled)
Constructor.
Test suite for FDBetFfMacScheduler test case.
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.