This class realizes Uplink Power Control functionality. More...
#include <lte-ue-power-control.h>
Public Member Functions | |
LteUePowerControl () | |
virtual | ~LteUePowerControl () |
void | CalculatePucchTxPower () |
void | CalculatePuschTxPower () |
void | CalculateSrsTxPower () |
void | ConfigureReferenceSignalPower (int8_t referenceSignalPower) |
virtual void | DoDispose (void) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
double | GetPcmax () |
double | GetPucchTxPower (std::vector< int > rb) |
double | GetPuschTxPower (std::vector< int > rb) |
double | GetSrsTxPower (std::vector< int > rb) |
void | ReportTpc (uint8_t tpc) |
void | SetAlpha (double value) |
void | SetCellId (uint16_t cellId) |
void | SetPcmax (double value) |
void | SetPoNominalPusch (int16_t value) |
void | SetPoUePusch (int16_t value) |
void | SetRnti (uint16_t rnti) |
void | SetRsrp (double value) |
void | SetTxPower (double value) |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
void | SetSubChannelMask (std::vector< int > mask) |
Private Attributes | |
bool | m_accumulationEnabled |
std::vector< double > | m_alpha |
uint16_t | m_cellId |
bool | m_closedLoop |
double | m_curPucchTxPower |
double | m_curPuschTxPower |
double | m_curSrsTxPower |
std::vector< int8_t > | m_deltaPusch |
double | m_deltaTF |
double | m_fc |
uint16_t | m_M_Pusch |
double | m_pathLoss |
double | m_Pcmax |
double | m_Pcmin |
std::vector< int16_t > | m_PoNominalPusch |
std::vector< int16_t > | m_PoUePusch |
int16_t | m_PsrsOffset |
double | m_referenceSignalPower |
TracedCallback< uint16_t, uint16_t, double > | m_reportPucchTxPower |
TracedCallback< uint16_t, uint16_t, double > | m_reportPuschTxPower |
Trace information regarding Uplink TxPower uint16_t cellId, uint16_t rnti, double txPower. More... | |
TracedCallback< uint16_t, uint16_t, double > | m_reportSrsTxPower |
uint16_t | m_rnti |
double | m_rsrp |
bool | m_rsrpSet |
uint16_t | m_srsBandwidth |
double | m_txPower |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
This class realizes Uplink Power Control functionality.
Doxygen introspection did not find any typical Config paths.
When LteUePhy is about sending PUSCH/PUCCH/SRS it should ask LteUePowerControl for current channel TX power level and then use it while creating SpectrumValue for Uplink Transmission
LteUePowerControl computes TX power level for PUSCH and SRS. PUCCH is realized in ideal way and PUSCH do not use any resources, so there is no need to compute power for that channel
LteUePowerControlcomputes TX power based on some preconfigured parameters and current Path-loss. Path-loss is computed as difference between current RSRP and referenceSignalPower level. Current RSRP is passed to LteUePowerControl by LteUePhy. referenceSignalPower is configurable by attribute system
Moreover, LteUePhy pass all received TPC values to LteUePowerControl, what is a part of Closed Loop Power Control functionality
Definition at line 54 of file lte-ue-power-control.h.
ns3::LteUePowerControl::LteUePowerControl | ( | ) |
Definition at line 35 of file lte-ue-power-control.cc.
References m_cellId, m_curPucchTxPower, m_curPuschTxPower, m_curSrsTxPower, m_deltaTF, m_fc, m_M_Pusch, m_pathLoss, m_rnti, m_rsrpSet, m_txPower, and NS_LOG_FUNCTION.
|
virtual |
Definition at line 53 of file lte-ue-power-control.cc.
References NS_LOG_FUNCTION.
void ns3::LteUePowerControl::CalculatePucchTxPower | ( | ) |
Definition at line 386 of file lte-ue-power-control.cc.
References m_curPucchTxPower, m_curPuschTxPower, NS_LOG_FUNCTION, and NS_LOG_INFO.
Referenced by GetPucchTxPower().
void ns3::LteUePowerControl::CalculatePuschTxPower | ( | ) |
Definition at line 358 of file lte-ue-power-control.cc.
References m_alpha, m_curPuschTxPower, m_deltaTF, m_fc, m_M_Pusch, m_pathLoss, m_Pcmax, m_Pcmin, m_PoNominalPusch, m_PoUePusch, NS_LOG_FUNCTION, and NS_LOG_INFO.
Referenced by GetPuschTxPower().
void ns3::LteUePowerControl::CalculateSrsTxPower | ( | ) |
Definition at line 394 of file lte-ue-power-control.cc.
References m_alpha, m_curSrsTxPower, m_deltaTF, m_fc, m_M_Pusch, m_pathLoss, m_Pcmax, m_Pcmin, m_PoNominalPusch, m_PoUePusch, m_PsrsOffset, m_srsBandwidth, NS_LOG_FUNCTION, and NS_LOG_INFO.
Referenced by GetSrsTxPower().
void ns3::LteUePowerControl::ConfigureReferenceSignalPower | ( | int8_t | referenceSignalPower | ) |
Definition at line 156 of file lte-ue-power-control.cc.
References m_referenceSignalPower, and NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::DoConfigureReferenceSignalPower().
|
virtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::Object.
Definition at line 65 of file lte-ue-power-control.cc.
References NS_LOG_FUNCTION.
|
virtual |
This method is called only once by Object::Initialize.
If the user calls Object::Initialize multiple times, DoInitialize is called only the first time.
Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject and AggregateObject from within this method.
Reimplemented from ns3::Object.
Definition at line 59 of file lte-ue-power-control.cc.
References NS_LOG_FUNCTION.
double ns3::LteUePowerControl::GetPcmax | ( | ) |
Definition at line 139 of file lte-ue-power-control.cc.
References m_Pcmax, and NS_LOG_FUNCTION.
double ns3::LteUePowerControl::GetPucchTxPower | ( | std::vector< int > | rb | ) |
Definition at line 431 of file lte-ue-power-control.cc.
References CalculatePucchTxPower(), m_cellId, m_curPucchTxPower, m_reportPucchTxPower, m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::SubframeIndication().
double ns3::LteUePowerControl::GetPuschTxPower | ( | std::vector< int > | rb | ) |
Definition at line 418 of file lte-ue-power-control.cc.
References CalculatePuschTxPower(), m_cellId, m_curPuschTxPower, m_M_Pusch, m_reportPuschTxPower, m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::SubframeIndication().
double ns3::LteUePowerControl::GetSrsTxPower | ( | std::vector< int > | rb | ) |
Definition at line 443 of file lte-ue-power-control.cc.
References CalculateSrsTxPower(), m_cellId, m_curSrsTxPower, m_reportSrsTxPower, m_rnti, m_srsBandwidth, and NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::SendSrs().
|
static |
Definition at line 71 of file lte-ue-power-control.cc.
References m_accumulationEnabled, m_closedLoop, m_Pcmax, m_Pcmin, m_PsrsOffset, m_reportPucchTxPower, m_reportPuschTxPower, m_reportSrsTxPower, ns3::MakeTraceSourceAccessor(), SetAlpha(), ns3::TypeId::SetParent(), SetPoNominalPusch(), and SetPoUePusch().
void ns3::LteUePowerControl::ReportTpc | ( | uint8_t | tpc | ) |
Definition at line 265 of file lte-ue-power-control.cc.
References m_accumulationEnabled, m_closedLoop, m_curPuschTxPower, m_deltaPusch, m_fc, m_Pcmax, m_Pcmin, NS_FATAL_ERROR, NS_LOG_FUNCTION, and NS_LOG_INFO.
Referenced by ns3::LteUePhy::ReceiveLteControlMessageList().
void ns3::LteUePowerControl::SetAlpha | ( | double | value | ) |
Definition at line 212 of file lte-ue-power-control.cc.
References m_alpha, NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::LteUePowerControl::SetCellId | ( | uint16_t | cellId | ) |
Definition at line 163 of file lte-ue-power-control.cc.
References m_cellId, and NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::DoSetRnti().
void ns3::LteUePowerControl::SetPcmax | ( | double | value | ) |
Definition at line 132 of file lte-ue-power-control.cc.
References m_Pcmax, and NS_LOG_FUNCTION.
void ns3::LteUePowerControl::SetPoNominalPusch | ( | int16_t | value | ) |
Definition at line 176 of file lte-ue-power-control.cc.
References m_PoNominalPusch, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::LteUePowerControl::SetPoUePusch | ( | int16_t | value | ) |
Definition at line 195 of file lte-ue-power-control.cc.
References m_PoUePusch, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::LteUePowerControl::SetRnti | ( | uint16_t | rnti | ) |
Definition at line 169 of file lte-ue-power-control.cc.
References m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::DoSetRnti().
void ns3::LteUePowerControl::SetRsrp | ( | double | value | ) |
Definition at line 248 of file lte-ue-power-control.cc.
References m_pathLoss, m_referenceSignalPower, m_rsrp, m_rsrpSet, and NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::ReportRsReceivedPower().
|
private |
Definition at line 351 of file lte-ue-power-control.cc.
References m_M_Pusch, and NS_LOG_FUNCTION.
void ns3::LteUePowerControl::SetTxPower | ( | double | value | ) |
Definition at line 146 of file lte-ue-power-control.cc.
References m_curPucchTxPower, m_curPuschTxPower, m_curSrsTxPower, m_txPower, and NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::SetTxPower().
|
private |
Definition at line 121 of file lte-ue-power-control.h.
Referenced by GetTypeId(), and ReportTpc().
|
private |
Definition at line 111 of file lte-ue-power-control.h.
Referenced by CalculatePuschTxPower(), CalculateSrsTxPower(), and SetAlpha().
|
private |
Definition at line 123 of file lte-ue-power-control.h.
Referenced by GetPucchTxPower(), GetPuschTxPower(), GetSrsTxPower(), LteUePowerControl(), and SetCellId().
|
private |
Definition at line 120 of file lte-ue-power-control.h.
Referenced by GetTypeId(), and ReportTpc().
|
private |
Definition at line 98 of file lte-ue-power-control.h.
Referenced by CalculatePucchTxPower(), GetPucchTxPower(), LteUePowerControl(), and SetTxPower().
|
private |
Definition at line 97 of file lte-ue-power-control.h.
Referenced by CalculatePucchTxPower(), CalculatePuschTxPower(), GetPuschTxPower(), LteUePowerControl(), ReportTpc(), and SetTxPower().
|
private |
Definition at line 99 of file lte-ue-power-control.h.
Referenced by CalculateSrsTxPower(), GetSrsTxPower(), LteUePowerControl(), and SetTxPower().
|
private |
Definition at line 115 of file lte-ue-power-control.h.
Referenced by ReportTpc().
|
private |
Definition at line 113 of file lte-ue-power-control.h.
Referenced by CalculatePuschTxPower(), CalculateSrsTxPower(), and LteUePowerControl().
|
private |
Definition at line 116 of file lte-ue-power-control.h.
Referenced by CalculatePuschTxPower(), CalculateSrsTxPower(), LteUePowerControl(), and ReportTpc().
|
private |
Definition at line 110 of file lte-ue-power-control.h.
Referenced by CalculatePuschTxPower(), CalculateSrsTxPower(), GetPuschTxPower(), LteUePowerControl(), and SetSubChannelMask().
|
private |
Definition at line 112 of file lte-ue-power-control.h.
Referenced by CalculatePuschTxPower(), CalculateSrsTxPower(), LteUePowerControl(), and SetRsrp().
|
private |
Definition at line 94 of file lte-ue-power-control.h.
Referenced by CalculatePuschTxPower(), CalculateSrsTxPower(), GetPcmax(), GetTypeId(), ReportTpc(), and SetPcmax().
|
private |
Definition at line 95 of file lte-ue-power-control.h.
Referenced by CalculatePuschTxPower(), CalculateSrsTxPower(), GetTypeId(), and ReportTpc().
|
private |
Definition at line 105 of file lte-ue-power-control.h.
Referenced by CalculatePuschTxPower(), CalculateSrsTxPower(), and SetPoNominalPusch().
|
private |
Definition at line 106 of file lte-ue-power-control.h.
Referenced by CalculatePuschTxPower(), CalculateSrsTxPower(), and SetPoUePusch().
|
private |
Definition at line 108 of file lte-ue-power-control.h.
Referenced by CalculateSrsTxPower(), and GetTypeId().
|
private |
Definition at line 101 of file lte-ue-power-control.h.
Referenced by ConfigureReferenceSignalPower(), and SetRsrp().
|
private |
Definition at line 130 of file lte-ue-power-control.h.
Referenced by GetPucchTxPower(), and GetTypeId().
|
private |
Trace information regarding Uplink TxPower uint16_t cellId, uint16_t rnti, double txPower.
Definition at line 129 of file lte-ue-power-control.h.
Referenced by GetPuschTxPower(), and GetTypeId().
|
private |
Definition at line 131 of file lte-ue-power-control.h.
Referenced by GetSrsTxPower(), and GetTypeId().
|
private |
Definition at line 124 of file lte-ue-power-control.h.
Referenced by GetPucchTxPower(), GetPuschTxPower(), GetSrsTxPower(), LteUePowerControl(), and SetRnti().
|
private |
Definition at line 103 of file lte-ue-power-control.h.
Referenced by SetRsrp().
|
private |
Definition at line 102 of file lte-ue-power-control.h.
Referenced by LteUePowerControl(), and SetRsrp().
|
private |
Definition at line 118 of file lte-ue-power-control.h.
Referenced by CalculateSrsTxPower(), and GetSrsTxPower().
|
private |
Definition at line 93 of file lte-ue-power-control.h.
Referenced by LteUePowerControl(), and SetTxPower().