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 */
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.
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
Test case is similar to the one defined in LenaFdTbfqFfMacSchedulerTestCase1, with the difference tha...
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.
Test suit for FdTbfqFfMacScheduler 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.