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 */
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.
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.
TestCase(const TestCase &)=delete
TestSuite(std::string name, Type type=Type::UNIT)
Construct a new test suite.
Definition test.cc:490
Every class exported by the ns3 library is enclosed in the ns3 namespace.