A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-test-tdtbfq-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_TDTBFQ_FF_MAC_SCHEDULER_H
12#define LENA_TEST_TDTBFQ_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 token bank fair
28 * queue scheduling
29 */
31{
32 public:
33 /**
34 * Constructor
35 *
36 * \param nUser the number of UE nodes
37 * \param dist the distance between nodes
38 * \param thrRefDl the DL throughput reference
39 * \param thrRefUl the UL throughput reference
40 * \param packetSize the packet size
41 * \param interval the interval time
42 * \param errorModelEnabled if true the error model is enabled
43 */
45 double dist,
46 double thrRefDl,
47 double thrRefUl,
48 uint16_t packetSize,
49 uint16_t interval,
50 bool errorModelEnabled);
52
53 private:
54 /**
55 * Builds the test name string based on provided parameter values
56 * \param nUser the number of UE nodes
57 * \param dist the distance between UE nodes and eNodeB
58 * \returns the 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; ///< the distance between nodes
64 uint16_t m_packetSize; ///< the packet size in bytes
65 uint16_t m_interval; ///< the interval time in ms
66 double m_thrRefDl; ///< the DL throughput reference
67 double m_thrRefUl; ///< the UL throughput reference
68 bool m_errorModelEnabled; ///< whether the error model is enabled
69};
70
71/**
72 * \ingroup lte-test
73 *
74 * \brief Lena TdTbfq Ff Mac Scheduler Test Case 2
75 */
77{
78 public:
79 /**
80 * Constructor
81 *
82 * \param dist the distance between nodes
83 * \param estThrTdTbfqDl the estimated DL throughput TdTbfq
84 * \param packetSize the packet size
85 * \param interval the interval time
86 * \param errorModelEnabled if true the error model is enabled
87 */
88 LenaTdTbfqFfMacSchedulerTestCase2(std::vector<double> dist,
89 std::vector<uint32_t> estThrTdTbfqDl,
90 std::vector<uint16_t> packetSize,
91 uint16_t interval,
92 bool errorModelEnabled);
94
95 private:
96 /**
97 * Builds the test name string based on provided parameter values
98 * \param nUser the number of UE nodes
99 * \param dist the distance between nodes
100 * \returns the name string
101 */
102 static std::string BuildNameString(uint16_t nUser, std::vector<double> dist);
103 void DoRun() override;
104 uint16_t m_nUser; ///< number of UE nodes
105 std::vector<double> m_dist; ///< the distance between nodes
106 std::vector<uint16_t> m_packetSize; ///< the packet size in bytes
107 uint16_t m_interval; ///< the packet interval time in ms
108 std::vector<uint32_t> m_estThrTdTbfqDl; ///< the estimated downlink throughput
109 bool m_errorModelEnabled; ///< whether the error model is enabled
110};
111
112/**
113 * \ingroup lte-test
114 *
115 * \brief Test suite for TdTbfqFfMacScheduler test.
116 */
122
123#endif /* LENA_TEST_TDTBFQ_FF_MAC_SCHEDULER_H */
This system test program creates different test cases with a single eNB and several UEs,...
double m_thrRefUl
the UL throughput reference
bool m_errorModelEnabled
whether the error model is enabled
double m_thrRefDl
the DL throughput reference
void DoRun() override
Implementation to actually run this TestCase.
uint16_t m_packetSize
the packet size in bytes
LenaTdTbfqFfMacSchedulerTestCase1(uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled)
Constructor.
static std::string BuildNameString(uint16_t nUser, double dist)
Builds the test name string based on provided parameter values.
Lena TdTbfq Ff Mac Scheduler Test Case 2.
std::vector< uint16_t > m_packetSize
the packet size in bytes
std::vector< double > m_dist
the distance between nodes
uint16_t m_interval
the packet interval time in ms
bool m_errorModelEnabled
whether the error model is enabled
std::vector< uint32_t > m_estThrTdTbfqDl
the estimated downlink throughput
void DoRun() override
Implementation to actually run this TestCase.
LenaTdTbfqFfMacSchedulerTestCase2(std::vector< double > dist, std::vector< uint32_t > estThrTdTbfqDl, std::vector< uint16_t > packetSize, uint16_t interval, bool errorModelEnabled)
Constructor.
static std::string BuildNameString(uint16_t nUser, std::vector< double > dist)
Builds the test name string based on provided parameter values.
Test suite for TdTbfqFfMacScheduler test.
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.