A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-test-fdtbfq-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_FDTBFQ_FF_MAC_SCHEDULER_H
12#define LENA_TEST_FDTBFQ_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 number of UE nodes
37 * @param dist distance between nodes
38 * @param thrRefDl DL throughput reference
39 * @param thrRefUl UL throughput reference
40 * @param packetSize packet size
41 * @param interval time interval
42 * @param errorModelEnabled error model 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 *
57 * @param nUser number of UE nodes
58 * @param dist distance between nodes
59 * @returns name string
60 */
61 static std::string BuildNameString(uint16_t nUser, double dist);
62 void DoRun() override;
63 uint16_t m_nUser; ///< number of UE nodes
64 double m_dist; ///< distance between the nodes
65 uint16_t m_packetSize; ///< packet size in bytes
66 uint16_t m_interval; ///< interval time in ms
67 double m_thrRefDl; ///< DL throughput reference
68 double m_thrRefUl; ///< UL throughput reference
69 bool m_errorModelEnabled; ///< whether the error model is enabled
70};
71
72/**
73 * @ingroup lte-test
74 *
75 * @brief Test case is similar to the one defined in
76 * LenaFdTbfqFfMacSchedulerTestCase1, with the difference that UEs are
77 * placed in such a way to experience different SINRs from eNodeB.
78 */
80{
81 public:
82 /**
83 * Constructor
84 *
85 * @param dist distance between nodes
86 * @param estThrFdTbfqDl estimated DL throughput
87 * @param packetSize packet size
88 * @param interval time interval
89 * @param errorModelEnabled indicates whether the error model is enabled
90 */
91 LenaFdTbfqFfMacSchedulerTestCase2(std::vector<double> dist,
92 std::vector<uint32_t> estThrFdTbfqDl,
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; ///< interval time in ms
112 std::vector<uint32_t> m_estThrFdTbfqDl; ///< estimated thrpughput FDTBFQ DL
113 bool m_errorModelEnabled; ///< error model enabled?
114};
115
116/**
117 * @ingroup lte-test
118 *
119 * @brief Test suit for FdTbfqFfMacScheduler test.
120 */
126
127#endif /* LENA_TEST_FDTBFQ_FF_MAC_SCHEDULER_H */
static std::string BuildNameString(uint16_t nUser, double dist)
Builds the test name string based on provided parameter values.
LenaFdTbfqFfMacSchedulerTestCase1(uint16_t nUser, double dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool errorModelEnabled)
Constructor.
void DoRun() override
Implementation to actually run this TestCase.
bool m_errorModelEnabled
whether the error model is enabled
void DoRun() override
Implementation to actually run this TestCase.
std::vector< uint32_t > m_estThrFdTbfqDl
estimated thrpughput FDTBFQ DL
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
std::vector< uint16_t > m_packetSize
packet size in bytes
LenaFdTbfqFfMacSchedulerTestCase2(std::vector< double > dist, std::vector< uint32_t > estThrFdTbfqDl, std::vector< uint16_t > packetSize, uint16_t interval, 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.
static const uint32_t packetSize
Packet size generated at the AP.