A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-test-uplink-power-control.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2014 Piotr Gawlowicz
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Piotr Gawlowicz <gawlowicz.p@gmail.com>
7 *
8 */
9
10#ifndef LTE_TEST_UPLINK_POWER_CONTROL_H
11#define LTE_TEST_UPLINK_POWER_CONTROL_H
12
13#include "ns3/nstime.h"
14#include "ns3/ptr.h"
15#include "ns3/spectrum-test.h"
16#include "ns3/spectrum-value.h"
17#include "ns3/test.h"
18
19using namespace ns3;
20
21namespace ns3
22{
23class LteFfrSimple;
25class MobilityModel;
26} // namespace ns3
27
28/**
29 * @ingroup lte-test
30 *
31 * @brief Test 1.1 Uplink Power Control
32 */
38
39/**
40 * @ingroup lte-test
41 *
42 * @brief Lte Uplink Power Control Test Case
43 */
45{
46 public:
47 /**
48 * Constructor
49 *
50 * @param name the reference name
51 */
52 LteUplinkPowerControlTestCase(std::string name);
54
55 /**
56 * Teleport UE funcction
57 *
58 * @param x the X position
59 * @param y the Y position
60 * @param expectedPuschTxPower the expected PUSCH transmit power
61 * @param expectedPucchTxPower the expected PUCCH transmit power
62 * @param expectedSrsTxPower the expected SRS transmit power
63 */
64 void TeleportUe(uint32_t x,
65 uint32_t y,
66 double expectedPuschTxPower,
67 double expectedPucchTxPower,
68 double expectedSrsTxPower);
69
70 /**
71 * Set TPC configuration funcction
72 *
73 * @param tpc the TPC
74 * @param tpcNum the TPC number
75 * @param expectedPuschTxPower the expected PUSCH transmit power
76 * @param expectedPucchTxPower the expected PUCCH transmit power
77 * @param expectedSrsTxPower the expected SRS transmit power
78 */
80 uint32_t tpcNum,
81 double expectedPuschTxPower,
82 double expectedPucchTxPower,
83 double expectedSrsTxPower);
84
85 /**
86 * PUSCH transmit power trace funcction
87 *
88 * @param cellId the cell ID
89 * @param rnti the RNTI
90 * @param txPower the transmit power
91 */
92 void PuschTxPowerTrace(uint16_t cellId, uint16_t rnti, double txPower);
93 /**
94 * PUCCH transmit power trace funcction
95 *
96 * @param cellId the cell ID
97 * @param rnti the RNTI
98 * @param txPower the transmit power
99 */
100 void PucchTxPowerTrace(uint16_t cellId, uint16_t rnti, double txPower);
101 /**
102 * SRS transmit power trace funcction
103 *
104 * @param cellId the cell ID
105 * @param rnti the RNTI
106 * @param txPower the transmit power
107 */
108 void SrsTxPowerTrace(uint16_t cellId, uint16_t rnti, double txPower);
109
110 protected:
111 void DoRun() override;
112
113 Ptr<MobilityModel> m_ueMobility; ///< UE mobility model
114 Time m_teleportTime; ///< teleport time
115
116 double m_expectedPuschTxPower; ///< expected PUSCH transmit power
117 double m_expectedPucchTxPower; ///< expected PUCCH transmit power
118 double m_expectedSrsTxPower; ///< expected SRS transmit power
119
120 Ptr<LteUePowerControl> m_ueUpc; ///< UE power control
121 bool m_accumulatedMode; ///< indicates whether accumulated mode is being used
122
124};
125
126/**
127 * @ingroup lte-test
128 *
129 * @brief Lte Uplink Open Loop Power Control Test Case
130 */
132{
133 public:
134 /**
135 * Constructor
136 *
137 * @param name the reference name
138 */
141
142 private:
143 void DoRun() override;
144};
145
146/**
147 * @ingroup lte-test
148 *
149 * @brief Lte Uplink Closed Loop Power Control Absolute Mode Test Case
150 */
152{
153 public:
154 /**
155 * Constructor
156 *
157 * @param name the reference name
158 */
161
162 private:
163 void DoRun() override;
164};
165
166/**
167 * @ingroup lte-test
168 *
169 * @brief Lte Uplink Closed Loop Power Control Accumulated Mode Test Case
170 */
172{
173 public:
174 /**
175 * Constructor
176 *
177 * @param name the reference name
178 */
181
182 private:
183 void DoRun() override;
184};
185
186#endif /* LTE_TEST_UPLINK_POWER_CONTROL_H */
Simple Frequency Reuse algorithm implementation which uses only 1 sub-band.
This class realizes Uplink Power Control functionality.
Keep track of the current position and velocity of an object.
Smart pointer class similar to boost::intrusive_ptr.
encapsulates test code
Definition test.h:1050
A suite of tests to run.
Definition test.h:1267
Simulation virtual time values and global simulation resolution.
Definition nstime.h:94
Every class exported by the ns3 library is enclosed in the ns3 namespace.