5G-LENA nr-v3.0-32-g83aee33
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ns3::NrUePowerControl Class Reference
+ Inheritance diagram for ns3::NrUePowerControl:
+ Collaboration diagram for ns3::NrUePowerControl:

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.
 

Detailed Description

Definition at line 51 of file nr-ue-power-control.h.

Member Typedef Documentation

◆ TxPowerTracedCallback

typedef void(* ns3::NrUePowerControl::TxPowerTracedCallback) (uint16_t cellId, uint16_t rnti, double power)

TracedCallback signature for uplink transmit power.

Parameters
[in]cellIdCell identifier.
[in]rntiThe C-RNTI identifying the UE.
[in]powerThe current TX power.

Definition at line 253 of file nr-ue-power-control.h.

Member Enumeration Documentation

◆ TechnicalSpec

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 60 of file nr-ue-power-control.h.

Constructor & Destructor Documentation

◆ NrUePowerControl() [1/2]

ns3::NrUePowerControl::NrUePowerControl ( )

Definition at line 26 of file nr-ue-power-control.cc.

◆ NrUePowerControl() [2/2]

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 31 of file nr-ue-power-control.cc.

◆ ~NrUePowerControl()

ns3::NrUePowerControl::~NrUePowerControl ( )
override

Destructor.

Definition at line 36 of file nr-ue-power-control.cc.

Member Function Documentation

◆ ConfigureReferenceSignalPower()

void ns3::NrUePowerControl::ConfigureReferenceSignalPower ( double  value)

Configure reference signal power (dBm) function.

Parameters
valuethe reference signal power

Definition at line 334 of file nr-ue-power-control.cc.

◆ DoDispose()

void ns3::NrUePowerControl::DoDispose ( )
override

Definition at line 48 of file nr-ue-power-control.cc.

◆ DoInitialize()

void ns3::NrUePowerControl::DoInitialize ( )
override

Definition at line 42 of file nr-ue-power-control.cc.

◆ GetPucchTxPower()

double ns3::NrUePowerControl::GetPucchTxPower ( std::size_t  rbNum)

Implements calculation of PUCCH power control according to TS 36.213 and TS 38.213.

Parameters
rbNumnumber of RBs used for PUCCH

Definition at line 802 of file nr-ue-power-control.cc.

◆ GetPuschTxPower()

double ns3::NrUePowerControl::GetPuschTxPower ( std::size_t  rbNum)

Implements calculation of PUSCH power control according to TS 36.213 and TS 38.213.

Parameters
rbNumnumber of RBs used for PUSCH

Definition at line 793 of file nr-ue-power-control.cc.

◆ GetSrsTxPower()

double ns3::NrUePowerControl::GetSrsTxPower ( std::size_t  rbNum)

Implements calculation of SRS power control according to TS 36.213 and TS 38.213.

Parameters
rbNumnumber of RBs used for SRS

Definition at line 811 of file nr-ue-power-control.cc.

◆ GetTypeId()

TypeId ns3::NrUePowerControl::GetTypeId ( )
static

Get the type ID.

Returns
the object TypeId

Definition at line 54 of file nr-ue-power-control.cc.

References SetAccumulationEnabled(), SetAlpha(), SetBlCe(), SetClosedLoop(), SetK0Pucch(), SetKPusch(), SetPcmax(), SetPcmin(), SetPoNominalPucch(), SetPoNominalPusch(), SetPoUePucch(), and SetPoUePusch().

+ Here is the call graph for this function:

◆ ReportTpcPucch()

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.

Parameters
tpcthe 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 476 of file nr-ue-power-control.cc.

◆ ReportTpcPusch()

void ns3::NrUePowerControl::ReportTpcPusch ( uint8_t  tpc)

Function that is called by NrUePhy to notify NrUePowerControl algorithm that TPC command was received by gNB.

Parameters
tpcthe 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 341 of file nr-ue-power-control.cc.

◆ SetAccumulationEnabled()

void ns3::NrUePowerControl::SetAccumulationEnabled ( bool  value)

Sets whether the accumulation mode will be used or not.

Parameters
valueIf true TPC accumulation mode will be active, otherwise absolute mode will be active

Definition at line 178 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetAlpha()

void ns3::NrUePowerControl::SetAlpha ( double  value)

Sets alpha parameter for uplink power control calculation.

Parameters
valuethe value of Alpha parameter

Definition at line 185 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetBlCe()

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.

Parameters
valuean indicator telling whether device is BL/CE or not

Definition at line 248 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetClosedLoop()

void ns3::NrUePowerControl::SetClosedLoop ( bool  value)

Sets whether Closed loop model will be active.

Parameters
valueIf true Closed loop mode will be used, otherwise Open Loop.

Definition at line 171 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetDeltaFPucch()

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.

Parameters
valuedelta_F_Pucch value to be set

Definition at line 276 of file nr-ue-power-control.cc.

◆ SetDeltaTF()

void ns3::NrUePowerControl::SetDeltaTF ( double  value)

Sets Delta TF power adjustment component for PUSCH power control calculation.

Parameters
valueDelta TF power adjustment value

Definition at line 262 of file nr-ue-power-control.cc.

◆ SetDeltaTFControl()

void ns3::NrUePowerControl::SetDeltaTFControl ( double  value)

Sets Delta TF transmission power adjustment component for PUCCH power control calculation.

Parameters
valuepower adjustment value

Definition at line 269 of file nr-ue-power-control.cc.

◆ SetK0Pucch()

void ns3::NrUePowerControl::SetK0Pucch ( uint16_t  value)

Sets KPucch.

Parameters
valueKPUCCH value to be used in PUSCH transmit power

Definition at line 234 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetKPusch()

void ns3::NrUePowerControl::SetKPusch ( uint16_t  value)

Sets KPusch.

Parameters
valueKPUSCH value to be used in PUSCH transmit power

Definition at line 227 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetLoggingInfo()

void ns3::NrUePowerControl::SetLoggingInfo ( uint16_t  cellId,
uint16_t  rnti 
)

Sets some information for easier logging.

Parameters
cellIdcell ID
rntiUE RNTI

Definition at line 544 of file nr-ue-power-control.cc.

◆ SetP0Srs()

void ns3::NrUePowerControl::SetP0Srs ( double  value)

Sets P0 SRS parameter for calculation of SRS power control.

Parameters
valueP0 SRS value to be set

Definition at line 255 of file nr-ue-power-control.cc.

◆ SetPcmax()

void ns3::NrUePowerControl::SetPcmax ( double  value)

Set PC maximum function.

Parameters
valuethe PC maximum value

Definition at line 297 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetPcmin()

void ns3::NrUePowerControl::SetPcmin ( double  pcmin)

Set PC minimum function.

Parameters
valuethe PC minimum value

Definition at line 304 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetPoNominalPucch()

void ns3::NrUePowerControl::SetPoNominalPucch ( int16_t  value)

Set PO nominal PUCCH value.

Parameters
valuethe value to set

Definition at line 283 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetPoNominalPusch()

void ns3::NrUePowerControl::SetPoNominalPusch ( int16_t  value)

Set Po nominal Pusch.

Parameters
valuethe Po nominal Pusch

Definition at line 311 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetPoUePucch()

void ns3::NrUePowerControl::SetPoUePucch ( int16_t  value)

Set PO PUCCH value.

Parameters
valuethe value to set

Definition at line 290 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetPoUePusch()

void ns3::NrUePowerControl::SetPoUePusch ( int16_t  value)

Set Po Ue Pusch.

Parameters
valuethe Po Ue Pusch

Definition at line 318 of file nr-ue-power-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetRsrp()

void ns3::NrUePowerControl::SetRsrp ( double  value)

Set RSRP function.

Parameters
valuethe RSRP (dBm) value to set

Definition at line 208 of file nr-ue-power-control.cc.

◆ SetRsrpFilterCoefficient()

void ns3::NrUePowerControl::SetRsrpFilterCoefficient ( uint8_t  rsrpFilterCoefficient)

Set RSRP function.

Parameters
rsrpFilterCoefficientvalue. 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.

◆ SetTechnicalSpec()

void ns3::NrUePowerControl::SetTechnicalSpec ( NrUePowerControl::TechnicalSpec  value)

Definition at line 241 of file nr-ue-power-control.cc.

◆ SetTxPower()

void ns3::NrUePowerControl::SetTxPower ( double  value)

Set transmit power function.

Parameters
valuethe transmit power value

Definition at line 325 of file nr-ue-power-control.cc.


The documentation for this class was generated from the following files: