5G-LENA nr-v3.3-49-g235218b1
The 5G/NR module for the ns-3 simulator
|
#include "introspected-doxygen.h"
Public Types | |
enum | TechnicalSpec { TS_36_213 , TS_38_213 } |
typedef void(* | TxPowerTracedCallback) (uint16_t cellId, uint16_t rnti, double power) |
Public Member Functions | |
NrUePowerControl (const Ptr< NrUePhy > &nrUePhy) | |
Constructor that sets a pointer to its NrUePhy instance owner. This is necessary in order to obtain information such as numerology that is used in calculation of transmit power. | |
~NrUePowerControl () override | |
Destructor. | |
void | ConfigureReferenceSignalPower (double value) |
Configure reference signal power (dBm) function. | |
void | DoDispose () override |
void | DoInitialize () override |
double | GetPucchTxPower (std::size_t rbNum) |
Implements calculation of PUCCH power control according to TS 36.213 and TS 38.213. | |
double | GetPuschTxPower (std::size_t rbNum) |
Implements calculation of PUSCH power control according to TS 36.213 and TS 38.213. | |
double | GetSrsTxPower (std::size_t rbNum) |
Implements calculation of SRS power control according to TS 36.213 and TS 38.213. | |
void | ReportTpcPucch (uint8_t tpc) |
Function that is called by NrUePhy to notify NrUePowerControl algorithm that TPC command for PUCCH was received by gNB. | |
void | ReportTpcPusch (uint8_t tpc) |
Function that is called by NrUePhy to notify NrUePowerControl algorithm that TPC command was received by gNB. | |
void | SetAccumulationEnabled (bool value) |
Sets whether the accumulation mode will be used or not. | |
void | SetAlpha (double value) |
Sets alpha parameter for uplink power control calculation. | |
void | SetBlCe (bool value) |
Sets whether the device for which is configure this uplink power control algorithm is for device that is bandwidth reduced low complexity device or coverage enhanced (BL/CE) device. | |
void | SetClosedLoop (bool value) |
Sets whether Closed loop model will be active. | |
void | SetDeltaFPucch (double value) |
Sets delta_f_pucch value needed for calculation of PUCCH power control. It is provided by higher layers through deltaF-PUCCH-f0 for PUCCH format 0, deltaF-PUCCH-f1 for PUCCH format 1, deltaF-PUCCH-f2 for PUCCH format 2, deltaF-PUCCH-f3 for PUCCH format 3, and deltaF-PUCCH-f4 for PUCCH format 4. | |
void | SetDeltaTF (double value) |
Sets Delta TF power adjustment component for PUSCH power control calculation. | |
void | SetDeltaTFControl (double value) |
Sets Delta TF transmission power adjustment component for PUCCH power control calculation. | |
void | SetK0Pucch (uint16_t value) |
Sets KPucch. | |
void | SetKPusch (uint16_t value) |
Sets KPusch. | |
void | SetLoggingInfo (uint16_t cellId, uint16_t rnti) |
Sets some information for easier logging. | |
void | SetP0Srs (double value) |
Sets P0 SRS parameter for calculation of SRS power control. | |
void | SetPcmax (double value) |
Set PC maximum function. | |
void | SetPcmin (double pcmin) |
Set PC minimum function. | |
void | SetPoNominalPucch (int16_t value) |
Set PO nominal PUCCH value. | |
void | SetPoNominalPusch (int16_t value) |
Set Po nominal Pusch. | |
void | SetPoUePucch (int16_t value) |
Set PO PUCCH value. | |
void | SetPoUePusch (int16_t value) |
Set Po Ue Pusch. | |
void | SetRsrp (double value) |
Set RSRP function. | |
void | SetRsrpFilterCoefficient (uint8_t rsrpFilterCoefficient) |
Set RSRP function. | |
void | SetTechnicalSpec (NrUePowerControl::TechnicalSpec value) |
void | SetTxPower (double value) |
Set transmit power function. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
Introspection did not find any typical Config paths.
Size of this type is 368 bytes (on a 64-bit architecture).
Definition at line 49 of file nr-ue-power-control.h.
typedef void(* ns3::NrUePowerControl::TxPowerTracedCallback) (uint16_t cellId, uint16_t rnti, double power) |
TracedCallback signature for uplink transmit power.
[in] | cellId | Cell identifier. |
[in] | rnti | The C-RNTI identifying the UE. |
[in] | power | The current TX power. |
Definition at line 251 of file nr-ue-power-control.h.
Power control supports two technical specifications: 1) TS 36.213, for LTE, LAA, etc. 1) TS 38.213, for New Radio (NR)
Definition at line 58 of file nr-ue-power-control.h.
ns3::NrUePowerControl::NrUePowerControl | ( | ) |
Definition at line 24 of file nr-ue-power-control.cc.
ns3::NrUePowerControl::NrUePowerControl | ( | const Ptr< NrUePhy > & | nrUePhy | ) |
Constructor that sets a pointer to its NrUePhy instance owner. This is necessary in order to obtain information such as numerology that is used in calculation of transmit power.
Definition at line 29 of file nr-ue-power-control.cc.
|
override |
Destructor.
Definition at line 34 of file nr-ue-power-control.cc.
void ns3::NrUePowerControl::ConfigureReferenceSignalPower | ( | double | value | ) |
Configure reference signal power (dBm) function.
value | the reference signal power |
Definition at line 332 of file nr-ue-power-control.cc.
|
override |
Definition at line 46 of file nr-ue-power-control.cc.
|
override |
Definition at line 40 of file nr-ue-power-control.cc.
double ns3::NrUePowerControl::GetPucchTxPower | ( | std::size_t | rbNum | ) |
Implements calculation of PUCCH power control according to TS 36.213 and TS 38.213.
rbNum | number of RBs used for PUCCH |
Definition at line 800 of file nr-ue-power-control.cc.
double ns3::NrUePowerControl::GetPuschTxPower | ( | std::size_t | rbNum | ) |
Implements calculation of PUSCH power control according to TS 36.213 and TS 38.213.
rbNum | number of RBs used for PUSCH |
Definition at line 791 of file nr-ue-power-control.cc.
double ns3::NrUePowerControl::GetSrsTxPower | ( | std::size_t | rbNum | ) |
Implements calculation of SRS power control according to TS 36.213 and TS 38.213.
rbNum | number of RBs used for SRS |
Definition at line 809 of file nr-ue-power-control.cc.
|
static |
Get the type ID.
Definition at line 52 of file nr-ue-power-control.cc.
References SetAccumulationEnabled(), SetAlpha(), SetBlCe(), SetClosedLoop(), SetK0Pucch(), SetKPusch(), SetPcmax(), SetPcmin(), SetPoNominalPucch(), SetPoNominalPusch(), SetPoUePucch(), and SetPoUePusch().
void ns3::NrUePowerControl::ReportTpcPucch | ( | uint8_t | tpc | ) |
Function that is called by NrUePhy to notify NrUePowerControl algorithm that TPC command for PUCCH was received by gNB.
tpc | the TPC command |
According to 36.213 and 38.213 there is only accumulated mode for PUCCH.
If m_technicalSpec == TS_38_213 we should only save the deltas, and once that transmission occasion appears then apply the formula that will calculate the new value for m_gc and reset the stored values, because they are not needed to be saved any more.
It technical specification == TS_36_213 we can update immediately because it does not depend on previous occasion and neither on the latest PUSCH time.
Definition at line 474 of file nr-ue-power-control.cc.
void ns3::NrUePowerControl::ReportTpcPusch | ( | uint8_t | tpc | ) |
Function that is called by NrUePhy to notify NrUePowerControl algorithm that TPC command was received by gNB.
tpc | the TPC command |
If m_technicalSpec == TS_38_213 we should only save the deltas, and once that transmission occasion appears then apply the formula that will calculate the new value for m_fc, m_hc and m_gc and reset the stored values, because they are not needed to be saved any more.
It technical specification == TS_36_213 we can update immediately between it does not depend on previous occasion and neither on the latest PUSCH time.
Definition at line 339 of file nr-ue-power-control.cc.
void ns3::NrUePowerControl::SetAccumulationEnabled | ( | bool | value | ) |
Sets whether the accumulation mode will be used or not.
value | If true TPC accumulation mode will be active, otherwise absolute mode will be active |
Definition at line 176 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetAlpha | ( | double | value | ) |
Sets alpha parameter for uplink power control calculation.
value | the value of Alpha parameter |
Definition at line 183 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetBlCe | ( | bool | value | ) |
Sets whether the device for which is configure this uplink power control algorithm is for device that is bandwidth reduced low complexity device or coverage enhanced (BL/CE) device.
value | an indicator telling whether device is BL/CE or not |
Definition at line 246 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetClosedLoop | ( | bool | value | ) |
Sets whether Closed loop model will be active.
value | If true Closed loop mode will be used, otherwise Open Loop. |
Definition at line 169 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetDeltaFPucch | ( | double | value | ) |
Sets delta_f_pucch value needed for calculation of PUCCH power control. It is provided by higher layers through deltaF-PUCCH-f0 for PUCCH format 0, deltaF-PUCCH-f1 for PUCCH format 1, deltaF-PUCCH-f2 for PUCCH format 2, deltaF-PUCCH-f3 for PUCCH format 3, and deltaF-PUCCH-f4 for PUCCH format 4.
value | delta_F_Pucch value to be set |
Definition at line 274 of file nr-ue-power-control.cc.
void ns3::NrUePowerControl::SetDeltaTF | ( | double | value | ) |
Sets Delta TF power adjustment component for PUSCH power control calculation.
value | Delta TF power adjustment value |
Definition at line 260 of file nr-ue-power-control.cc.
void ns3::NrUePowerControl::SetDeltaTFControl | ( | double | value | ) |
Sets Delta TF transmission power adjustment component for PUCCH power control calculation.
value | power adjustment value |
Definition at line 267 of file nr-ue-power-control.cc.
void ns3::NrUePowerControl::SetK0Pucch | ( | uint16_t | value | ) |
Sets KPucch.
value | KPUCCH value to be used in PUSCH transmit power |
Definition at line 232 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetKPusch | ( | uint16_t | value | ) |
Sets KPusch.
value | KPUSCH value to be used in PUSCH transmit power |
Definition at line 225 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetLoggingInfo | ( | uint16_t | cellId, |
uint16_t | rnti | ||
) |
Sets some information for easier logging.
cellId | cell ID |
rnti | UE RNTI |
Definition at line 542 of file nr-ue-power-control.cc.
void ns3::NrUePowerControl::SetP0Srs | ( | double | value | ) |
Sets P0 SRS parameter for calculation of SRS power control.
value | P0 SRS value to be set |
Definition at line 253 of file nr-ue-power-control.cc.
void ns3::NrUePowerControl::SetPcmax | ( | double | value | ) |
Set PC maximum function.
value | the PC maximum value |
Definition at line 295 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetPcmin | ( | double | pcmin | ) |
Set PC minimum function.
value | the PC minimum value |
Definition at line 302 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetPoNominalPucch | ( | int16_t | value | ) |
Set PO nominal PUCCH value.
value | the value to set |
Definition at line 281 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetPoNominalPusch | ( | int16_t | value | ) |
Set Po nominal Pusch.
value | the Po nominal Pusch |
Definition at line 309 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetPoUePucch | ( | int16_t | value | ) |
Set PO PUCCH value.
value | the value to set |
Definition at line 288 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetPoUePusch | ( | int16_t | value | ) |
Set Po Ue Pusch.
value | the Po Ue Pusch |
Definition at line 316 of file nr-ue-power-control.cc.
Referenced by GetTypeId().
void ns3::NrUePowerControl::SetRsrp | ( | double | value | ) |
Set RSRP function.
value | the RSRP (dBm) value to set |
Definition at line 206 of file nr-ue-power-control.cc.
void ns3::NrUePowerControl::SetRsrpFilterCoefficient | ( | uint8_t | rsrpFilterCoefficient | ) |
Set RSRP function.
rsrpFilterCoefficient | value. Determines the strength of smoothing effect induced by layer 3 filtering of RSRP used for uplink power control in all attached UE. If equals to 0, no layer 3 filtering is applicable. |
void ns3::NrUePowerControl::SetTechnicalSpec | ( | NrUePowerControl::TechnicalSpec | value | ) |
Definition at line 239 of file nr-ue-power-control.cc.
void ns3::NrUePowerControl::SetTxPower | ( | double | value | ) |
Set transmit power function.
value | the transmit power value |
Definition at line 323 of file nr-ue-power-control.cc.