A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-test-pss-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_PSS_FF_MAC_SCHEDULER_H
12#define LENA_TEST_PSS_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 */
44 LenaPssFfMacSchedulerTestCase1(uint16_t nUser,
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 nodes
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 value
67 double m_thrRefUl; ///< the UL throughput reference value
68 bool m_errorModelEnabled; ///< indicates whether the error model is enabled
69};
70
71/**
72 * \ingroup lte-test
73 *
74 * \brief Similar to the LenaPssFfMacSchedulerTestCase1 with the difference that
75 * UEs are places in such a way to experience different SINRs. Test checks if the
76 * achieved throughput in such conditions has expected value.
77 */
79{
80 public:
81 /**
82 * Constructor
83 *
84 * \param dist the distance between nodes
85 * \param estThrPssDl the estimated DL throughput PSS
86 * \param packetSize the packet size
87 * \param interval the interval time
88 * \param errorModelEnabled if true the error model is enabled
89 */
90 LenaPssFfMacSchedulerTestCase2(std::vector<double> dist,
91 std::vector<uint32_t> estThrPssDl,
92 std::vector<uint16_t> packetSize,
93 uint16_t interval,
94 bool errorModelEnabled);
96
97 private:
98 /**
99 * Builds the test name string based on provided parameter values
100 * \param nUser the number of UE nodes
101 * \param dist the distance between nodes
102 * \returns the name string
103 */
104 static std::string BuildNameString(uint16_t nUser, std::vector<double> dist);
105 void DoRun() override;
106 uint16_t m_nUser; ///< number of UE nodes
107 std::vector<double> m_dist; ///< the distance between nodes
108 std::vector<uint16_t> m_packetSize; ///< the packet size in bytes
109 uint16_t m_interval; ///< the interval time in ms
110 std::vector<uint32_t> m_estThrPssDl; ///< the DL estimated throughput PSS
111 bool m_errorModelEnabled; ///< indicates whether the error model is enabled
112};
113
114/**
115 * \ingroup lte-test
116 *
117 * \brief Lena Pss Ff Mac Scheduler Test Suite
118 */
124
125#endif /* LENA_TEST_PSS_FF_MAC_SCHEDULER_H */
This system test program creates different test cases with a single eNB and several UEs,...
uint16_t m_interval
the interval time in ms
uint16_t m_packetSize
the packet size in bytes
bool m_errorModelEnabled
indicates whether the error model is enabled
double m_thrRefDl
the DL throughput reference value
static std::string BuildNameString(uint16_t nUser, double dist)
Builds the test name string based on provided parameter values.
double m_thrRefUl
the UL throughput reference value
double m_dist
the distance between nodes
LenaPssFfMacSchedulerTestCase1(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.
Similar to the LenaPssFfMacSchedulerTestCase1 with the difference that UEs are places in such a way t...
bool m_errorModelEnabled
indicates whether the error model is enabled
std::vector< double > m_dist
the distance between nodes
uint16_t m_interval
the interval time in ms
std::vector< uint16_t > m_packetSize
the packet size in bytes
static std::string BuildNameString(uint16_t nUser, std::vector< double > dist)
Builds the test name string based on provided parameter values.
LenaPssFfMacSchedulerTestCase2(std::vector< double > dist, std::vector< uint32_t > estThrPssDl, std::vector< uint16_t > packetSize, uint16_t interval, bool errorModelEnabled)
Constructor.
void DoRun() override
Implementation to actually run this TestCase.
std::vector< uint32_t > m_estThrPssDl
the DL estimated throughput PSS
Lena Pss Ff Mac Scheduler Test Suite.
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.