5G-LENA nr-v3.3-49-g235218b1
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ns3::NrUePowerControl Class Reference

#include "introspected-doxygen.h"

+ 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

Introspection did not find any typical Config paths.

Attributes

  • ClosedLoop: If true Closed Loop mode will be active, otherwise Open Loop
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write
  • AccumulationEnabled: If true TPC accumulation mode will be active, otherwise absolute mode will be active
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write
  • Alpha: Value of Alpha parameter
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: construct write
  • Pcmax: Max Transmission power in dBm, Default value 23 dBmTS36.101 section 6.2.3
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 23
    • Flags: construct write
  • Pcmin: Min Transmission power in dBm, Default value -40 dBmTS36.101 section 6.2.3
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -40
    • Flags: construct write
  • PoNominalPusch: P_O_NOMINAL_PUSCH INT (-126 ... 24), Default value -80
    • Set with class: ns3::IntegerValue
    • Underlying type: int16_t -126:24
    • Initial value: -80
    • Flags: construct write
  • PoUePusch: P_O_UE_PUSCH INT(-8...7), Default value 0
    • Set with class: ns3::IntegerValue
    • Underlying type: int16_t -8:7
    • Initial value: 0
    • Flags: construct write
  • PoNominalPucch: P_O_NOMINAL_PUCCH INT (-126 ... 24), Default value -80
    • Set with class: ns3::IntegerValue
    • Underlying type: int16_t -126:24
    • Initial value: -80
    • Flags: construct write
  • PoUePucch: P_O_UE_PUCCH INT(-8...7), Default value 0
    • Set with class: ns3::IntegerValue
    • Underlying type: int16_t -8:7
    • Initial value: 0
    • Flags: construct write
  • PsrsOffset: P_SRS_OFFSET INT(0...15), Default value 7
    • Set with class: ns3::IntegerValue
    • Underlying type: int16_t 0:15
    • Initial value: 7
    • Flags: construct write read
  • TSpec: Technical specification TS 36.213 or TS 38.213,By default is set TS to 36.213. To configure TS 36.213 set the value TS36.213, while for TS 38.213 should be configured TS38.213.
    • Set with class: ns3::EnumValue<N3ns316NrUePowerControl13TechnicalSpecE>
    • Underlying type: TS36.213|TS38.213
    • Initial value: TS36.213
    • Flags: construct write
  • KPusch: K_PUSCH parameter needed for PUSCH accumulation state calculation. This value must be carefully configured according to TS 36.213 or TS 38.213 and taking into account the type of simulation scenario. E.g. TDD, FDD, frame structure type, etc. For, LTE FDD or FDD-TDD and frame structure type 1, KPusch is 4.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 4
    • Flags: construct write
  • K0Pucch: K0_PUCCH parameter needed for PUCCH accumulation state calculation. Should be configured according TS 36.213 or TS 38.213 specification depending on TSpec attribute setting. According to TS 38.213 for FDD or FDD-TDD and primary cell frame structure type 1, M is equal to 1 and K0PUCCH is 4
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 4
    • Flags: construct write
  • BL_CE: When set to true means that this power control is applied to bandwidth reduced, low complexity or coverage enhanced (BL/CE) device.By default this attribute is set to false. Default BL_CE mode is CEModeB. This option can be used only in conjunction with attribute TSpec being set to TS 36.213.
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write

TraceSources

Size of this type is 368 bytes (on a 64-bit architecture).

Definition at line 49 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 251 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 58 of file nr-ue-power-control.h.

Constructor & Destructor Documentation

◆ NrUePowerControl() [1/2]

ns3::NrUePowerControl::NrUePowerControl ( )

Definition at line 24 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 29 of file nr-ue-power-control.cc.

◆ ~NrUePowerControl()

ns3::NrUePowerControl::~NrUePowerControl ( )
override

Destructor.

Definition at line 34 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 332 of file nr-ue-power-control.cc.

◆ DoDispose()

void ns3::NrUePowerControl::DoDispose ( )
override

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

◆ DoInitialize()

void ns3::NrUePowerControl::DoInitialize ( )
override

Definition at line 40 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 800 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 791 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 809 of file nr-ue-power-control.cc.

◆ GetTypeId()

TypeId ns3::NrUePowerControl::GetTypeId ( )
static

Get the type ID.

Returns
the object TypeId

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().

+ 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 474 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 339 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 176 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 183 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 246 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 169 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 274 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 260 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 267 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 232 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 225 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 542 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 253 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 295 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 302 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 281 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 309 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 288 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 316 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 206 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 239 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 323 of file nr-ue-power-control.cc.


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