A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::LteUePhy Class Reference

The LteSpectrumPhy models the physical layer of LTE. More...

#include "lte-ue-phy.h"

+ Inheritance diagram for ns3::LteUePhy:
+ Collaboration diagram for ns3::LteUePhy:

Classes

struct  PssElement
 PssElement structure. More...
 
struct  UeMeasurementsElement
 Summary results of measuring a specific cell. Used for layer-1 filtering. More...
 

Public Types

typedef void(* PowerSpectralDensityTracedCallback) (uint16_t rnti, Ptr< SpectrumValue > psd)
 TracedCallback signature for spectral value.
 
typedef void(* RsrpRsrqTracedCallback) (uint16_t rnti, uint16_t cellId, double rsrp, double rsrq, bool isServingCell, uint8_t componentCarrierId)
 TracedCallback signature for cell RSRP and RSRQ.
 
typedef void(* RsrpSinrTracedCallback) (uint16_t cellId, uint16_t rnti, double rsrp, double sinr, uint8_t componentCarrierId)
 TracedCallback signature for cell RSRP and SINR report.
 
enum  State { CELL_SEARCH = 0 , SYNCHRONIZED , NUM_STATES }
 The states of the UE PHY entity. More...
 
typedef void(* StateTracedCallback) (uint16_t cellId, uint16_t rnti, State oldState, State newState)
 TracedCallback signature for state transition events.
 
typedef void(* UlPhyResourceBlocksTracedCallback) (uint16_t rnti, const std::vector< int > &rbs)
 TracedCallback signature for UL Phy resource blocks.
 

Public Member Functions

 LteUePhy ()
 
 LteUePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy)
 
 ~LteUePhy () override
 
Ptr< DlCqiLteControlMessageCreateDlCqiFeedbackMessage (const SpectrumValue &sinr)
 Create the DL CQI feedback from SINR values perceived at the physical layer with the signal received from eNB.
 
Ptr< SpectrumValueCreateTxPowerSpectralDensity () override
 Create the PSD for the TX.
 
void DoDispose () override
 Destructor implementation.
 
void DoInitialize () override
 Initialize() implementation.
 
virtual void EnqueueDlHarqFeedback (DlInfoListElement_s mes)
 Enqueue the downlink HARQ feedback generated by LteSpectrumPhy.
 
void GenerateCtrlCqiReport (const SpectrumValue &sinr) override
 generate a CQI report based on the given SINR of Ctrl frame
 
void GenerateDataCqiReport (const SpectrumValue &sinr) override
 generate a CQI report based on the given SINR of Data frame (used for PUSCH CQIs)
 
virtual void GenerateMixedCqiReport (const SpectrumValue &sinr)
 Create the mixed CQI report.
 
Ptr< LteSpectrumPhyGetDlSpectrumPhy () const
 Get Downlink spectrum phy.
 
LteUeCphySapProviderGetLteUeCphySapProvider ()
 Get the CPHY SAP provider.
 
LteUePhySapProviderGetLteUePhySapProvider ()
 Get the PHY SAP provider.
 
uint8_t GetMacChDelay () const
 Get MAC to Channel delay.
 
double GetNoiseFigure () const
 Get noise figure.
 
State GetState () const
 Get state of the UE physical layer.
 
std::vector< int > GetSubChannelsForReception ()
 Get a list of sub channels to use in RX.
 
std::vector< int > GetSubChannelsForTransmission ()
 Get a list of sub channels to use in RX.
 
double GetTxPower () const
 Get transmit power.
 
Ptr< LteSpectrumPhyGetUlSpectrumPhy () const
 Get Uplink spectrum phy.
 
Ptr< LteUePowerControlGetUplinkPowerControl () const
 Get Uplink power control.
 
void PhyPduReceived (Ptr< Packet > p)
 PhySpectrum received a new PHY-PDU.
 
virtual void ReceiveLteControlMessageList (std::list< Ptr< LteControlMessage > > msgList)
 Receive LTE control message list function.
 
virtual void ReceivePss (uint16_t cellId, Ptr< SpectrumValue > p)
 Receive PSS function.
 
virtual void ReportDataInterference (const SpectrumValue &interf)
 Create the mixed CQI report.
 
void ReportInterference (const SpectrumValue &interf) override
 generate a report based on the linear interference and noise power perceived during DATA frame NOTE: used only by eNB
 
void ReportRsReceivedPower (const SpectrumValue &power) override
 generate a report based on the linear RS power perceived during CTRL frame NOTE: used only by UE for evaluating RSRP
 
void SendSrs ()
 Send the SRS signal in the last symbols of the frame.
 
void SetHarqPhyModule (Ptr< LteHarqPhy > harq)
 Set the HARQ PHY module.
 
void SetLteUeCphySapUser (LteUeCphySapUser *s)
 Set the CPHY SAP User.
 
void SetLteUePhySapUser (LteUePhySapUser *s)
 Set the PHY SAP User.
 
void SetNoiseFigure (double nf)
 Set noise figure.
 
void SetSubChannelsForReception (std::vector< int > mask)
 Get a list of sub channels to use in RX.
 
void SetSubChannelsForTransmission (std::vector< int > mask)
 Set a list of sub channels to use in TX.
 
void SetTxPower (double pow)
 Set transmit power.
 
void SubframeIndication (uint32_t frameNo, uint32_t subframeNo)
 trigger from eNB the start from a new frame
 
- Public Member Functions inherited from ns3::LtePhy
 LtePhy ()
 
 LtePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy)
 
 ~LtePhy () override
 
void DoSetCellId (uint16_t cellId)
 
uint8_t GetComponentCarrierId () const
 Get the component carrier ID.
 
std::list< Ptr< LteControlMessage > > GetControlMessages ()
 
Ptr< LteNetDeviceGetDevice () const
 Get the device where the phy layer is attached.
 
Ptr< LteSpectrumPhyGetDownlinkSpectrumPhy ()
 
Ptr< PacketBurstGetPacketBurst ()
 
uint8_t GetRbgSize () const
 
uint16_t GetSrsPeriodicity (uint16_t srcCi) const
 
uint16_t GetSrsSubframeOffset (uint16_t srcCi) const
 
double GetTti () const
 
Ptr< LteSpectrumPhyGetUplinkSpectrumPhy ()
 
void SetComponentCarrierId (uint8_t index)
 Set the component carrier ID.
 
void SetControlMessages (Ptr< LteControlMessage > m)
 
void SetDevice (Ptr< LteNetDevice > d)
 Set the device where the phy layer is attached.
 
void SetDownlinkChannel (Ptr< SpectrumChannel > c)
 Set the downlink channel.
 
void SetMacPdu (Ptr< Packet > p)
 
void SetTti (double tti)
 
void SetUplinkChannel (Ptr< SpectrumChannel > c)
 Set the uplink channel.
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::LtePhy
static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Private Member Functions

double ComputeAvgSinr (const SpectrumValue &sinr)
 Compute average SINR among the RBs.
 
void DoConfigureReferenceSignalPower (int8_t referenceSignalPower)
 Configure reference signal power function.
 
void DoConfigureUplink (uint32_t ulEarfcn, uint16_t ulBandwidth)
 Configure UL uplink function.
 
uint16_t DoGetCellId ()
 Get cell ID.
 
uint32_t DoGetDlEarfcn ()
 Get DL EARFCN.
 
virtual void DoNotifyConnectionSuccessful ()
 Notify PHY about the successful RRC connection establishment.
 
void DoReset ()
 Do Reset function.
 
void DoResetPhyAfterRlf ()
 Reset Phy after radio link failure function.
 
void DoResetRlfParams ()
 Reset radio link failure parameters.
 
virtual void DoSendLteControlMessage (Ptr< LteControlMessage > msg)
 Send LTE control message function.
 
void DoSendMacPdu (Ptr< Packet > p) override
 Queue the MAC PDU to be sent (according to m_macChTtiDelay)
 
virtual void DoSendRachPreamble (uint32_t prachId, uint32_t raRnti)
 Send RACH preamble function.
 
void DoSetDlBandwidth (uint16_t dlBandwidth)
 Set DL bandwidth function.
 
void DoSetImsi (uint64_t imsi)
 Set IMSI.
 
void DoSetPa (double pa)
 Set PA function.
 
void DoSetRnti (uint16_t rnti)
 Set RNTI function.
 
void DoSetRsrpFilterCoefficient (uint8_t rsrpFilterCoefficient)
 Do set RSRP filter coefficient.
 
void DoSetSrsConfigurationIndex (uint16_t srcCi)
 Set SRS configuration index function.
 
void DoSetTransmissionMode (uint8_t txMode)
 Set transmission mode function.
 
void DoStartCellSearch (uint32_t dlEarfcn)
 Start the cell search function.
 
void DoStartInSyncDetection ()
 Start in Sync detection function.
 
void DoSynchronizeWithEnb (uint16_t cellId)
 Synchronize with ENB function.
 
void DoSynchronizeWithEnb (uint16_t cellId, uint32_t dlEarfcn)
 Synchronize with ENB function.
 
void GenerateCqiRsrpRsrq (const SpectrumValue &sinr)
 Get CQI, RSRP, and RSRQ.
 
uint16_t GetNumQinEvalSf () const
 Get number of Qin evaluation subframes.
 
uint16_t GetNumQoutEvalSf () const
 Get number of Qout evaluation subframes.
 
void InitializeRlfParams ()
 Initialize radio link failure parameters.
 
void QueueSubChannelsForTransmission (std::vector< int > rbMap)
 Queue subchannels for transmission function.
 
void ReportUeMeasurements ()
 Layer-1 filtering of RSRP and RSRQ measurements and reporting to the RRC entity.
 
void RlfDetection (double sinrdB)
 Radio link failure detection function.
 
void SetDownlinkCqiPeriodicity (Time cqiPeriodicity)
 Set the periodicty for the downlink periodic wideband and aperiodic subband CQI reporting.
 
void SetNumQinEvalSf (uint16_t numSubframes)
 Set number of Qin evaluation subframes.
 
void SetNumQoutEvalSf (uint16_t numSubframes)
 Set number of Qout evaluation subframes.
 
void SetTxMode1Gain (double gain)
 Set transmit mode 1 gain function.
 
void SetTxMode2Gain (double gain)
 Set transmit mode 2 gain function.
 
void SetTxMode3Gain (double gain)
 Set transmit mode 3 gain function.
 
void SetTxMode4Gain (double gain)
 Set transmit mode 4 gain function.
 
void SetTxMode5Gain (double gain)
 Set transmit mode 5 gain function.
 
void SetTxMode6Gain (double gain)
 Set transmit mode 6 gain function.
 
void SetTxMode7Gain (double gain)
 Set transmit mode 7 gain function.
 
void SetTxModeGain (uint8_t txMode, double gain)
 Set transmit mode gain function.
 
void SwitchToState (State s)
 Switch the UE PHY to the given state.
 

Private Attributes

Time m_a30CqiLast
 last aperiodic CQI
 
Time m_a30CqiPeriodicity
 SubBand Aperiodic CQI.
 
Ptr< LteAmcm_amc
 AMC.
 
SpectrumValue m_ctrlSinrForRlf
 the CTRL SINR used for RLF detection
 
SpectrumValue m_dataInterferencePower
 data interference power
 
bool m_dataInterferencePowerUpdated
 data interference power updated?
 
bool m_dlConfigured
 DL configured?
 
bool m_downlinkInSync
 when set, DL SINR evaluation for out-of-sync indications is conducted.
 
bool m_enableRlfDetection
 Flag to enable/disable RLF detection.
 
bool m_enableUplinkPowerControl
 The EnableUplinkPowerControl attribute.
 
Ptr< LteHarqPhym_harqPhyModule
 HARQ phy module.
 
uint64_t m_imsi
 the IMSI of the UE
 
bool m_isConnected
 set when UE RRC is in CONNECTED_NORMALLY state
 
Ptr< SpectrumValuem_noisePsd
 Noise power spectral density for the configured bandwidth.
 
uint16_t m_numOfFrames
 count the number of frames for which the downlink radio link quality is estimated
 
uint16_t m_numOfQinEvalSf
 the downlink radio link quality is estimated over this period for detecting in-syncs
 
uint16_t m_numOfQoutEvalSf
 the downlink radio link quality is estimated over this period for detecting out-of-syncs
 
uint16_t m_numOfSubframes
 count the number of subframes for which the downlink radio link quality is estimated
 
Time m_p10CqiLast
 last periodic CQI
 
Time m_p10CqiPeriodicity
 Wideband Periodic CQI. 2, 5, 10, 16, 20, 32, 40, 64, 80 or 160 ms.
 
double m_paLinear
 PA linear.
 
Ptr< LteUePowerControlm_powerControl
 Pointer to UE Uplink Power Control entity.
 
std::list< PssElementm_pssList
 PSS list.
 
bool m_pssReceived
 PSS received?
 
double m_pssReceptionThreshold
 The RsrqUeMeasThreshold attribute.
 
double m_qIn
 The 'Qin' attribute.
 
double m_qOut
 The 'Qout' attribute.
 
uint32_t m_raPreambleId
 RA preamble ID.
 
uint32_t m_raRnti
 RA RNTI.
 
TracedCallback< uint16_t, uint16_t, double, double, uint8_t > m_reportCurrentCellRsrpSinrTrace
 The ReportCurrentCellRsrpSinr trace source.
 
TracedCallback< uint16_t, Ptr< SpectrumValue > > m_reportPowerSpectralDensity
 The ReportsPowerSpectralDensity trace source.
 
TracedCallback< uint16_t, uint16_t, double, double, bool, uint8_t > m_reportUeMeasurements
 The ReportUeMeasurements trace source.
 
TracedCallback< uint16_t, const std::vector< int > & > m_reportUlPhyResourceBlocks
 The ReportUlPhyResourceBlocks trace source.
 
uint16_t m_rnti
 the RNTI
 
SpectrumValue m_rsInterferencePower
 RS interference power.
 
bool m_rsInterferencePowerUpdated
 RS interference power updated?
 
SpectrumValue m_rsReceivedPower
 RS receive power.
 
bool m_rsReceivedPowerUpdated
 RS receive power updated?
 
uint16_t m_rsrpSinrSampleCounter
 The RsrpSinrSampleCounter attribute.
 
uint16_t m_rsrpSinrSamplePeriod
 The RsrpSinrSamplePeriod attribute.
 
EventId m_sendSrsEvent
 send SRS event
 
double m_sinrDbFrame
 the average SINR per radio frame
 
bool m_srsConfigured
 SRS configured.
 
uint16_t m_srsPeriodicity
 SRS periodicity.
 
Time m_srsStartTime
 SRS start time.
 
uint16_t m_srsSubframeOffset
 SRS subframe offset.
 
State m_state
 The current UE PHY state.
 
TracedCallback< uint16_t, uint16_t, State, Statem_stateTransitionTrace
 The StateTransition trace source.
 
std::vector< int > m_subChannelsForReception
 A list of sub channels to use in RX.
 
std::vector< int > m_subChannelsForTransmission
 A list of sub channels to use in TX.
 
std::vector< std::vector< int > > m_subChannelsForTransmissionQueue
 subchannels for transmission queue
 
uint8_t m_subframeNo
 
uint8_t m_transmissionMode
 the transmission mode
 
std::vector< doublem_txModeGain
 the transmit mode gain
 
LteUeCphySapProviderm_ueCphySapProvider
 UE CPhy SAP provider.
 
LteUeCphySapUserm_ueCphySapUser
 UE CPhy SAP user.
 
Time m_ueMeasurementsFilterLast
 
Time m_ueMeasurementsFilterPeriod
 The UeMeasurementsFilterPeriod attribute.
 
std::map< uint16_t, UeMeasurementsElementm_ueMeasurementsMap
 Store measurement results during the last layer-1 filtering period.
 
LteUePhySapProviderm_uePhySapProvider
 UE Phy SAP provider.
 
LteUePhySapUserm_uePhySapUser
 UE Phy SAP user.
 
bool m_ulConfigured
 UL configured?
 
TracedCallback< PhyTransmissionStatParametersm_ulPhyTransmission
 The UlPhyTransmission trace source.
 

Friends

class MemberLteUeCphySapProvider< LteUePhy >
 allow MemberLteUeCphySapProvider<LteUePhy> class friend access
 
class UeMemberLteUePhySapProvider
 allow UeMemberLteUePhySapProvider class friend access
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes.
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed.
 
- Protected Attributes inherited from ns3::LtePhy
uint16_t m_cellId
 Cell identifier.
 
uint8_t m_componentCarrierId
 component carrier Id used to address sap
 
std::vector< std::list< Ptr< LteControlMessage > > > m_controlMessagesQueue
 A queue of control messages to be sent.
 
uint16_t m_dlBandwidth
 The DL bandwidth in number of PRBs.
 
uint32_t m_dlEarfcn
 The downlink carrier frequency.
 
Ptr< LteSpectrumPhym_downlinkSpectrumPhy
 The downlink LteSpectrumPhy associated to this LtePhy.
 
uint8_t m_macChTtiDelay
 Delay between MAC and channel layer in terms of TTIs.
 
Ptr< LteNetDevicem_netDevice
 Pointer to the NetDevice where this PHY layer is attached.
 
double m_noiseFigure
 Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver.
 
std::vector< Ptr< PacketBurst > > m_packetBurstQueue
 A queue of packet bursts to be sent.
 
uint8_t m_rbgSize
 The RB group size according to the bandwidth.
 
double m_tti
 Transmission time interval.
 
double m_txPower
 Transmission power in dBm.
 
uint16_t m_ulBandwidth
 The UL bandwidth in number of PRBs.
 
uint32_t m_ulEarfcn
 The uplink carrier frequency.
 
Ptr< LteSpectrumPhym_uplinkSpectrumPhy
 The uplink LteSpectrumPhy associated to this LtePhy.
 

Detailed Description

The LteSpectrumPhy models the physical layer of LTE.

Config Paths

ns3::LteUePhy is accessible through the following paths with Config::Set and Config::Connect:

  • "/NodeList/[i]/DeviceList/[i]/$ns3::LteNetDevice/$ns3::LteUeNetDevice/ComponentCarrierMapUe/[i]/LteUePhy"
  • "/NodeList/[i]/DeviceList/[i]/$ns3::LteUeNetDevice/ComponentCarrierMapUe/[i]/LteUePhy"

Attributes

  • DlSpectrumPhy: The downlink LteSpectrumPhy associated to this LtePhy
  • DownlinkCqiPeriodicity: Periodicity in milliseconds for reporting thewideband and subband downlink CQIs to the eNB
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +1e+06ns
    • Flags: constructwrite
    • Support level: SUPPORTED
  • EnableRlfDetection: If true, RLF detection will be enabled.
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • EnableUplinkPowerControl: If true, Uplink Power Control will be enabled.
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • NoiseFigure: Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver. According to Wikipedia (http://en.wikipedia.org/wiki/Noise_figure), this is "the difference in decibels (dB) between the noise output of the actual receiver to the noise output of an ideal receiver with the same overall gain and bandwidth when the receivers are connected to sources at the standard noise temperature T0." In this model, we consider T0 = 290K.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 9
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • NumQinEvalSf: This specifies the total number of consecutive subframeswhich corresponds to the Qin evaluation period
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 100
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • NumQoutEvalSf: This specifies the total number of consecutive subframeswhich corresponds to the Qout evaluation period
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 200
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • Qin: corresponds to 2% block error rate of a hypothetical PDCCH transmissiontaking into account the PCFICH errors with transmission parameters.see 3GPP TS 36.213 4.2.1 and TS 36.133 7.6
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -3.9
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • Qout: corresponds to 10% block error rate of a hypothetical PDCCH transmissiontaking into account the PCFICH errors with transmission parameters.see 3GPP TS 36.213 4.2.1 and TS 36.133 7.6
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -5
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • RsrpSinrSamplePeriod: The sampling period for reporting RSRP-SINR stats (default value 1)
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 1
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • RsrqUeMeasThreshold: Receive threshold for PSS on RSRQ [dB]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -1000
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • TxMode1Gain: Transmission mode 1 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwrite
    • Support level: SUPPORTED
  • TxMode2Gain: Transmission mode 2 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 4.2
    • Flags: constructwrite
    • Support level: SUPPORTED
  • TxMode3Gain: Transmission mode 3 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -2.8
    • Flags: constructwrite
    • Support level: SUPPORTED
  • TxMode4Gain: Transmission mode 4 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwrite
    • Support level: SUPPORTED
  • TxMode5Gain: Transmission mode 5 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwrite
    • Support level: SUPPORTED
  • TxMode6Gain: Transmission mode 6 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwrite
    • Support level: SUPPORTED
  • TxMode7Gain: Transmission mode 7 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwrite
    • Support level: SUPPORTED
  • TxPower: Transmission power in dBm
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 10
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • UeMeasurementsFilterPeriod: Time period for reporting UE measurements, i.e., thelength of layer-1 filtering.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +2e+08ns
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • UlSpectrumPhy: The uplink LteSpectrumPhy associated to this LtePhy

TraceSources

Group: Lte

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

Definition at line 40 of file lte-ue-phy.h.

Member Typedef Documentation

◆ PowerSpectralDensityTracedCallback

typedef void(* ns3::LteUePhy::PowerSpectralDensityTracedCallback) (uint16_t rnti, Ptr< SpectrumValue > psd)

TracedCallback signature for spectral value.

Parameters
[in]rnti
[in]psdThe spectral power density.

Definition at line 340 of file lte-ue-phy.h.

◆ RsrpRsrqTracedCallback

typedef void(* ns3::LteUePhy::RsrpRsrqTracedCallback) (uint16_t rnti, uint16_t cellId, double rsrp, double rsrq, bool isServingCell, uint8_t componentCarrierId)

TracedCallback signature for cell RSRP and RSRQ.

Parameters
[in]rnti
[in]cellId
[in]rsrp
[in]rsrq
[in]isServingCell
[in]componentCarrierId

Definition at line 319 of file lte-ue-phy.h.

◆ RsrpSinrTracedCallback

typedef void(* ns3::LteUePhy::RsrpSinrTracedCallback) (uint16_t cellId, uint16_t rnti, double rsrp, double sinr, uint8_t componentCarrierId)

TracedCallback signature for cell RSRP and SINR report.

Parameters
[in]cellId
[in]rnti
[in]rsrp
[in]sinr
[in]componentCarrierId

Definition at line 303 of file lte-ue-phy.h.

◆ StateTracedCallback

typedef void(* ns3::LteUePhy::StateTracedCallback) (uint16_t cellId, uint16_t rnti, State oldState, State newState)

TracedCallback signature for state transition events.

Parameters
[in]cellId
[in]rnti
[in]oldState
[in]newState

Definition at line 289 of file lte-ue-phy.h.

◆ UlPhyResourceBlocksTracedCallback

typedef void(* ns3::LteUePhy::UlPhyResourceBlocksTracedCallback) (uint16_t rnti, const std::vector< int > &rbs)

TracedCallback signature for UL Phy resource blocks.

Parameters
[in]rnti
[in]rbsVector of resource blocks allocated for UL.

Definition at line 332 of file lte-ue-phy.h.

Member Enumeration Documentation

◆ State

The states of the UE PHY entity.

Enumerator
CELL_SEARCH 
SYNCHRONIZED 
NUM_STATES 

Definition at line 51 of file lte-ue-phy.h.

Constructor & Destructor Documentation

◆ LteUePhy() [1/2]

ns3::LteUePhy::LteUePhy ( )
Warning
the default constructor should not be used

Definition at line 116 of file lte-ue-phy.cc.

References NS_FATAL_ERROR, and NS_LOG_FUNCTION.

◆ LteUePhy() [2/2]

ns3::LteUePhy::LteUePhy ( Ptr< LteSpectrumPhy > dlPhy,
Ptr< LteSpectrumPhy > ulPhy )
Parameters
dlPhythe downlink LteSpectrumPhy instance
ulPhythe uplink LteSpectrumPhy instance

Definition at line 122 of file lte-ue-phy.cc.

References ns3::CreateObject(), DoReset(), m_amc, ns3::LtePhy::m_macChTtiDelay, m_powerControl, m_ueCphySapProvider, m_ueMeasurementsFilterPeriod, m_uePhySapProvider, MemberLteUeCphySapProvider< LteUePhy >, ns3::Simulator::Now(), NS_ASSERT_MSG, ReportUeMeasurements(), ns3::Simulator::Schedule(), UeMemberLteUePhySapProvider, and UL_PUSCH_TTIS_DELAY.

+ Here is the call graph for this function:

◆ ~LteUePhy()

ns3::LteUePhy::~LteUePhy ( )
override

Definition at line 150 of file lte-ue-phy.cc.

References m_txModeGain.

Member Function Documentation

◆ ComputeAvgSinr()

double ns3::LteUePhy::ComputeAvgSinr ( const SpectrumValue & sinr)
private

Compute average SINR among the RBs.

Parameters
sinr
Returns
the average SINR value

Definition at line 674 of file lte-ue-phy.cc.

References ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), and NS_LOG_FUNCTION.

Referenced by GenerateCqiRsrpRsrq().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateDlCqiFeedbackMessage()

Ptr< DlCqiLteControlMessage > ns3::LteUePhy::CreateDlCqiFeedbackMessage ( const SpectrumValue & sinr)

Create the DL CQI feedback from SINR values perceived at the physical layer with the signal received from eNB.

Parameters
sinrSINR values vector
Returns
a DL CQI control message containing the CQI feedback

Definition at line 802 of file lte-ue-phy.cc.

References ns3::CqiListElement_s::A30, ns3::Create(), ns3::LtePhy::GetRbgSize(), m_a30CqiLast, m_a30CqiPeriodicity, m_amc, ns3::LtePhy::m_dlBandwidth, ns3::SbMeasResult_s::m_higherLayerSelected, m_p10CqiLast, m_p10CqiPeriodicity, ns3::CqiListElement_s::m_ri, ns3::CqiListElement_s::m_rnti, m_rnti, ns3::HigherLayerSelected_s::m_sbCqi, ns3::CqiListElement_s::m_sbMeasResult, ns3::HigherLayerSelected_s::m_sbPmi, m_transmissionMode, m_txModeGain, ns3::CqiListElement_s::m_wbCqi, ns3::CqiListElement_s::m_wbPmi, ns3::Simulator::Now(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::CqiListElement_s::P10, and ns3::TransmissionModesLayers::TxMode2LayerNum().

Referenced by GenerateCqiRsrpRsrq().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateTxPowerSpectralDensity()

Ptr< SpectrumValue > ns3::LteUePhy::CreateTxPowerSpectralDensity ( )
overridevirtual

Create the PSD for the TX.

Returns
the pointer to the PSD

Implements ns3::LtePhy.

Definition at line 504 of file lte-ue-phy.cc.

References ns3::LteSpectrumValueHelper::CreateUlTxPowerSpectralDensity(), GetSubChannelsForTransmission(), m_reportPowerSpectralDensity, m_rnti, ns3::LtePhy::m_txPower, ns3::LtePhy::m_ulBandwidth, ns3::LtePhy::m_ulEarfcn, and NS_LOG_FUNCTION.

Referenced by SetSubChannelsForTransmission().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoConfigureReferenceSignalPower()

void ns3::LteUePhy::DoConfigureReferenceSignalPower ( int8_t referenceSignalPower)
private

Configure reference signal power function.

Parameters
referenceSignalPowerreference signal power in dBm

Definition at line 1467 of file lte-ue-phy.cc.

References m_powerControl, and NS_LOG_FUNCTION.

◆ DoConfigureUplink()

void ns3::LteUePhy::DoConfigureUplink ( uint32_t ulEarfcn,
uint16_t ulBandwidth )
private

Configure UL uplink function.

Parameters
ulEarfcnUL EARFCN
ulBandwidththe UL bandwidth

Definition at line 1459 of file lte-ue-phy.cc.

References ns3::LtePhy::m_ulBandwidth, m_ulConfigured, and ns3::LtePhy::m_ulEarfcn.

◆ DoDispose()

void ns3::LteUePhy::DoDispose ( )
overridevirtual

Destructor implementation.

This method is called by Dispose() or by the Object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overridden 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::LtePhy.

Definition at line 156 of file lte-ue-phy.cc.

References ns3::LtePhy::DoDispose(), m_ueCphySapProvider, m_uePhySapProvider, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ DoGetCellId()

uint16_t ns3::LteUePhy::DoGetCellId ( )
private

Get cell ID.

Returns
cell ID

Definition at line 1415 of file lte-ue-phy.cc.

References ns3::LtePhy::m_cellId.

◆ DoGetDlEarfcn()

uint32_t ns3::LteUePhy::DoGetDlEarfcn ( )
private

Get DL EARFCN.

Returns
DL EARFCN

Definition at line 1421 of file lte-ue-phy.cc.

References ns3::LtePhy::m_dlEarfcn.

◆ DoInitialize()

void ns3::LteUePhy::DoInitialize ( )
overridevirtual

Initialize() implementation.

This method is called only once by Initialize(). If the user calls 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 324 of file lte-ue-phy.cc.

References ns3::Object::DoInitialize(), ns3::LtePhy::m_netDevice, NS_ABORT_MSG_IF, NS_LOG_FUNCTION, ns3::Simulator::ScheduleWithContext(), ns3::Seconds(), and SubframeIndication().

+ Here is the call graph for this function:

◆ DoNotifyConnectionSuccessful()

void ns3::LteUePhy::DoNotifyConnectionSuccessful ( )
privatevirtual

Notify PHY about the successful RRC connection establishment.

Radio link failure detection should take place only on the primary carrier to avoid errors due to multiple calls to the same methods at the RRC layer

Definition at line 977 of file lte-ue-phy.cc.

References InitializeRlfParams(), ns3::LtePhy::m_componentCarrierId, and m_isConnected.

Referenced by ns3::UeMemberLteUePhySapProvider::NotifyConnectionSuccessful().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoReset()

void ns3::LteUePhy::DoReset ( )
private

Do Reset function.

Call the EndRx() method of the interference model for DL control and data to cancel any ongoing downlink reception of control and data info.

Definition at line 1325 of file lte-ue-phy.cc.

References ns3::EventId::Cancel(), ns3::CreateObject(), m_a30CqiLast, ns3::LtePhy::m_cellId, ns3::LtePhy::m_controlMessagesQueue, m_dataInterferencePowerUpdated, m_dlConfigured, ns3::LtePhy::m_downlinkSpectrumPhy, m_isConnected, ns3::LtePhy::m_macChTtiDelay, m_p10CqiLast, ns3::LtePhy::m_packetBurstQueue, m_paLinear, m_pssList, m_raPreambleId, m_raRnti, m_rnti, m_rsInterferencePowerUpdated, m_rsReceivedPowerUpdated, m_rsrpSinrSampleCounter, m_sendSrsEvent, m_srsConfigured, m_srsPeriodicity, m_subChannelsForTransmissionQueue, m_transmissionMode, m_ulConfigured, ns3::LtePhy::m_uplinkSpectrumPhy, ns3::Simulator::Now(), and NS_LOG_FUNCTION.

Referenced by LteUePhy(), and DoResetPhyAfterRlf().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoResetPhyAfterRlf()

void ns3::LteUePhy::DoResetPhyAfterRlf ( )
private

Reset Phy after radio link failure function.

It resets the physical layer parameters of the UE after RLF.

Definition at line 1521 of file lte-ue-phy.cc.

References DoReset(), m_dataInterferencePowerUpdated, ns3::LtePhy::m_downlinkSpectrumPhy, m_pssReceived, m_rnti, m_rsInterferencePowerUpdated, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ DoResetRlfParams()

void ns3::LteUePhy::DoResetRlfParams ( )
private

Reset radio link failure parameters.

Upon receiving N311 in Sync indications from the UE PHY, the UE RRC instructs the UE PHY to reset the RLF parameters so, it can start RLF detection again.

Definition at line 1532 of file lte-ue-phy.cc.

References InitializeRlfParams(), and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ DoSendLteControlMessage()

void ns3::LteUePhy::DoSendLteControlMessage ( Ptr< LteControlMessage > msg)
privatevirtual

Send LTE control message function.

Parameters
msgthe LTE control message

Definition at line 956 of file lte-ue-phy.cc.

References NS_LOG_FUNCTION, and ns3::LtePhy::SetControlMessages().

Referenced by GenerateCqiRsrpRsrq(), and ns3::UeMemberLteUePhySapProvider::SendLteControlMessage().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoSendMacPdu()

void ns3::LteUePhy::DoSendMacPdu ( Ptr< Packet > p)
overrideprivatevirtual

Queue the MAC PDU to be sent (according to m_macChTtiDelay)

Parameters
pthe MAC PDU to sent

Implements ns3::LtePhy.

Definition at line 458 of file lte-ue-phy.cc.

References NS_LOG_FUNCTION, and ns3::LtePhy::SetMacPdu().

Referenced by ns3::UeMemberLteUePhySapProvider::SendMacPdu().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoSendRachPreamble()

void ns3::LteUePhy::DoSendRachPreamble ( uint32_t prachId,
uint32_t raRnti )
privatevirtual

Send RACH preamble function.

Parameters
prachIdthe RACH preamble ID
raRntithe rnti

Definition at line 964 of file lte-ue-phy.cc.

References ns3::Create(), ns3::LtePhy::m_controlMessagesQueue, m_raPreambleId, m_raRnti, and NS_LOG_FUNCTION.

Referenced by ns3::UeMemberLteUePhySapProvider::SendRachPreamble().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoSetDlBandwidth()

void ns3::LteUePhy::DoSetDlBandwidth ( uint16_t dlBandwidth)
private

Set DL bandwidth function.

Parameters
dlBandwidththe DL bandwidth

Definition at line 1427 of file lte-ue-phy.cc.

References ns3::LteSpectrumValueHelper::CreateNoisePowerSpectralDensity(), ns3::LtePhy::m_dlBandwidth, m_dlConfigured, ns3::LtePhy::m_dlEarfcn, ns3::LtePhy::m_downlinkSpectrumPhy, ns3::LtePhy::m_noiseFigure, m_noisePsd, ns3::LtePhy::m_rbgSize, NS_LOG_FUNCTION, and ns3::Type0AllocationRbg.

Referenced by DoStartCellSearch(), and DoSynchronizeWithEnb().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoSetImsi()

void ns3::LteUePhy::DoSetImsi ( uint64_t imsi)
private

Set IMSI.

Parameters
imsithe IMSI of the UE

Definition at line 1548 of file lte-ue-phy.cc.

References m_imsi, and NS_LOG_FUNCTION.

◆ DoSetPa()

void ns3::LteUePhy::DoSetPa ( double pa)
private

Set PA function.

Parameters
pathe PA value

Definition at line 1507 of file lte-ue-phy.cc.

References m_paLinear, and NS_LOG_FUNCTION.

◆ DoSetRnti()

void ns3::LteUePhy::DoSetRnti ( uint16_t rnti)
private

Set RNTI function.

Parameters
rntithe RNTI

Definition at line 1474 of file lte-ue-phy.cc.

References ns3::LtePhy::m_cellId, m_powerControl, m_rnti, and NS_LOG_FUNCTION.

◆ DoSetRsrpFilterCoefficient()

void ns3::LteUePhy::DoSetRsrpFilterCoefficient ( uint8_t rsrpFilterCoefficient)
private

Do set RSRP filter coefficient.

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.

Definition at line 1514 of file lte-ue-phy.cc.

References m_powerControl, and NS_LOG_FUNCTION.

◆ DoSetSrsConfigurationIndex()

void ns3::LteUePhy::DoSetSrsConfigurationIndex ( uint16_t srcCi)
private

Set SRS configuration index function.

Parameters
srcCithe SRS configuration index

Definition at line 1492 of file lte-ue-phy.cc.

References ns3::LtePhy::GetSrsPeriodicity(), ns3::LtePhy::GetSrsSubframeOffset(), ns3::LtePhy::m_cellId, m_rnti, m_srsConfigured, m_srsPeriodicity, m_srsStartTime, m_srsSubframeOffset, ns3::MilliSeconds(), ns3::Simulator::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ DoSetTransmissionMode()

void ns3::LteUePhy::DoSetTransmissionMode ( uint8_t txMode)
private

Set transmission mode function.

Parameters
txModethe transmission mode

Definition at line 1484 of file lte-ue-phy.cc.

References ns3::LtePhy::m_downlinkSpectrumPhy, m_transmissionMode, and NS_LOG_FUNCTION.

◆ DoStartCellSearch()

void ns3::LteUePhy::DoStartCellSearch ( uint32_t dlEarfcn)
private

Start the cell search function.

Parameters
dlEarfcnthe DL EARFCN

Definition at line 1375 of file lte-ue-phy.cc.

References CELL_SEARCH, DoSetDlBandwidth(), ns3::LtePhy::m_dlEarfcn, NS_LOG_FUNCTION, and SwitchToState().

+ Here is the call graph for this function:

◆ DoStartInSyncDetection()

void ns3::LteUePhy::DoStartInSyncDetection ( )
private

Start in Sync detection function.

When T310 timer is started, it indicates that physical layer problems are detected at the UE and the recovery process is started by checking if the radio frames are in-sync for N311 consecutive times.

Definition at line 1540 of file lte-ue-phy.cc.

References m_downlinkInSync, and NS_LOG_FUNCTION.

◆ DoSynchronizeWithEnb() [1/2]

void ns3::LteUePhy::DoSynchronizeWithEnb ( uint16_t cellId)
private

Synchronize with ENB function.

Parameters
cellIdthe cell ID

Definition at line 1392 of file lte-ue-phy.cc.

References DoSetDlBandwidth(), ns3::LtePhy::m_cellId, m_dlConfigured, ns3::LtePhy::m_downlinkSpectrumPhy, m_ulConfigured, ns3::LtePhy::m_uplinkSpectrumPhy, NS_FATAL_ERROR, NS_LOG_FUNCTION, SwitchToState(), and SYNCHRONIZED.

Referenced by DoSynchronizeWithEnb().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoSynchronizeWithEnb() [2/2]

void ns3::LteUePhy::DoSynchronizeWithEnb ( uint16_t cellId,
uint32_t dlEarfcn )
private

Synchronize with ENB function.

Parameters
cellIdthe cell ID
dlEarfcnthe DL EARFCN

Definition at line 1384 of file lte-ue-phy.cc.

References DoSynchronizeWithEnb(), ns3::LtePhy::m_dlEarfcn, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ EnqueueDlHarqFeedback()

void ns3::LteUePhy::EnqueueDlHarqFeedback ( DlInfoListElement_s mes)
virtual

Enqueue the downlink HARQ feedback generated by LteSpectrumPhy.

Parameters
mesthe DlInfoListElement_s

Definition at line 1714 of file lte-ue-phy.cc.

References ns3::Create(), NS_LOG_FUNCTION, and ns3::LtePhy::SetControlMessages().

Referenced by ns3::LteHelper::InstallSingleUeDevice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GenerateCqiRsrpRsrq()

void ns3::LteUePhy::GenerateCqiRsrpRsrq ( const SpectrumValue & sinr)
private

Get CQI, RSRP, and RSRQ.

internal method that takes care of generating CQI reports, calculating the RSRP and RSRQ metrics, and generating RSRP+SINR traces

Parameters
sinr

Definition at line 539 of file lte-ue-phy.cc.

References ns3::Time::As(), CELL_SEARCH, ComputeAvgSinr(), ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), CreateDlCqiFeedbackMessage(), DoSendLteControlMessage(), ns3::LtePhy::GetDevice(), ns3::SpectrumValue::GetValuesN(), m_a30CqiLast, m_a30CqiPeriodicity, ns3::LtePhy::m_cellId, ns3::LtePhy::m_componentCarrierId, m_ctrlSinrForRlf, m_dlConfigured, m_enableRlfDetection, m_isConnected, m_p10CqiLast, m_p10CqiPeriodicity, m_pssList, m_pssReceived, m_pssReceptionThreshold, m_reportCurrentCellRsrpSinrTrace, m_rnti, m_rsInterferencePower, m_rsInterferencePowerUpdated, m_rsReceivedPower, m_rsReceivedPowerUpdated, m_rsrpSinrSampleCounter, m_rsrpSinrSamplePeriod, m_state, m_ueMeasurementsMap, m_ulConfigured, ns3::Time::MS, ns3::Simulator::Now(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, and RlfDetection().

Referenced by GenerateCtrlCqiReport(), and GenerateMixedCqiReport().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GenerateCtrlCqiReport()

void ns3::LteUePhy::GenerateCtrlCqiReport ( const SpectrumValue & sinr)
overridevirtual

generate a CQI report based on the given SINR of Ctrl frame

Parameters
sinrthe SINR vs frequency measured by the device

We do not generate the CQI report when the UE is not synchronized to any cell.

Also, the RLF is detected after the DL CTRL is received by the UE,therefore, we do not need to generate the CQI reports and the UE measurements for a CTRL for which the RLF has been detected.

Implements ns3::LtePhy.

Definition at line 518 of file lte-ue-phy.cc.

References GenerateCqiRsrpRsrq(), ns3::LtePhy::m_cellId, m_ctrlSinrForRlf, and NS_LOG_FUNCTION.

Referenced by ns3::LteHelper::InstallSingleUeDevice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GenerateDataCqiReport()

void ns3::LteUePhy::GenerateDataCqiReport ( const SpectrumValue & sinr)
overridevirtual

generate a CQI report based on the given SINR of Data frame (used for PUSCH CQIs)

Parameters
sinrthe SINR vs frequency measured by the device

Implements ns3::LtePhy.

Definition at line 694 of file lte-ue-phy.cc.

◆ GenerateMixedCqiReport()

void ns3::LteUePhy::GenerateMixedCqiReport ( const SpectrumValue & sinr)
virtual

Create the mixed CQI report.

Parameters
sinrSINR values vector

We do not generate the CQI report when the UE is not synchronized to any cell.

Also, the RLF is detected after the DL CTRL is received by the UE,therefore, we do not need to generate the CQI reports and the UE measurements for a CTRL for which the RLF has been detected.

Definition at line 700 of file lte-ue-phy.cc.

References CELL_SEARCH, GenerateCqiRsrpRsrq(), ns3::LtePhy::GetRbgSize(), ns3::LtePhy::m_cellId, m_ctrlSinrForRlf, m_dataInterferencePower, m_dataInterferencePowerUpdated, ns3::LtePhy::m_dlBandwidth, m_paLinear, m_rsReceivedPower, m_state, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by ns3::LteHelper::InstallSingleUeDevice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetDlSpectrumPhy()

Ptr< LteSpectrumPhy > ns3::LteUePhy::GetDlSpectrumPhy ( ) const

Get Downlink spectrum phy.

Returns
a pointer to the LteSpectrumPhy instance relative to the downlink

Definition at line 412 of file lte-ue-phy.cc.

References ns3::LtePhy::m_downlinkSpectrumPhy.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetLteUeCphySapProvider()

LteUeCphySapProvider * ns3::LteUePhy::GetLteUeCphySapProvider ( )

Get the CPHY SAP provider.

Returns
a pointer to the SAP Provider

Definition at line 363 of file lte-ue-phy.cc.

References m_ueCphySapProvider, and NS_LOG_FUNCTION.

◆ GetLteUePhySapProvider()

LteUePhySapProvider * ns3::LteUePhy::GetLteUePhySapProvider ( )

Get the PHY SAP provider.

Returns
a pointer to the SAP Provider

Definition at line 349 of file lte-ue-phy.cc.

References m_uePhySapProvider, and NS_LOG_FUNCTION.

◆ GetMacChDelay()

uint8_t ns3::LteUePhy::GetMacChDelay ( ) const

Get MAC to Channel delay.

Returns
the TTI delay between MAC and channel

Definition at line 406 of file lte-ue-phy.cc.

References ns3::LtePhy::m_macChTtiDelay.

◆ GetNoiseFigure()

double ns3::LteUePhy::GetNoiseFigure ( ) const

Get noise figure.

Returns
the noise figure in dB

Definition at line 377 of file lte-ue-phy.cc.

References ns3::LtePhy::m_noiseFigure, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetNumQinEvalSf()

uint16_t ns3::LteUePhy::GetNumQinEvalSf ( ) const
private

Get number of Qin evaluation subframes.

The number returned by this method specifies the total number of consecutive subframes, which corresponds to the Qin evaluation period.

Returns
the number of consecutive subframes used for Qin evaluation

Definition at line 451 of file lte-ue-phy.cc.

References m_numOfQinEvalSf, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetNumQoutEvalSf()

uint16_t ns3::LteUePhy::GetNumQoutEvalSf ( ) const
private

Get number of Qout evaluation subframes.

The number returned by this method specifies the total number of consecutive subframes, which corresponds to the Qout evaluation period.

Returns
the number of consecutive subframes used for Qout evaluation

Definition at line 444 of file lte-ue-phy.cc.

References m_numOfQoutEvalSf, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetState()

LteUePhy::State ns3::LteUePhy::GetState ( ) const

Get state of the UE physical layer.

Returns
The current state

Definition at line 1730 of file lte-ue-phy.cc.

References m_state, and NS_LOG_FUNCTION.

◆ GetSubChannelsForReception()

std::vector< int > ns3::LteUePhy::GetSubChannelsForReception ( )

Get a list of sub channels to use in RX.

Returns
a list of sub channels

Definition at line 497 of file lte-ue-phy.cc.

References m_subChannelsForReception, and NS_LOG_FUNCTION.

◆ GetSubChannelsForTransmission()

std::vector< int > ns3::LteUePhy::GetSubChannelsForTransmission ( )

Get a list of sub channels to use in RX.

Returns
a list of sub channels

Definition at line 490 of file lte-ue-phy.cc.

References m_subChannelsForTransmission, and NS_LOG_FUNCTION.

Referenced by CreateTxPowerSpectralDensity().

+ Here is the caller graph for this function:

◆ GetTxPower()

double ns3::LteUePhy::GetTxPower ( ) const

Get transmit power.

Returns
the transmission power in dBm

Definition at line 392 of file lte-ue-phy.cc.

References ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetTypeId()

◆ GetUlSpectrumPhy()

Ptr< LteSpectrumPhy > ns3::LteUePhy::GetUlSpectrumPhy ( ) const

Get Uplink spectrum phy.

Returns
a pointer to the LteSpectrumPhy instance relative to the uplink

Definition at line 418 of file lte-ue-phy.cc.

References ns3::LtePhy::m_uplinkSpectrumPhy.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetUplinkPowerControl()

Ptr< LteUePowerControl > ns3::LteUePhy::GetUplinkPowerControl ( ) const

Get Uplink power control.

Returns
ptr to UE Uplink Power Control entity

Definition at line 399 of file lte-ue-phy.cc.

References m_powerControl, and NS_LOG_FUNCTION.

◆ InitializeRlfParams()

void ns3::LteUePhy::InitializeRlfParams ( )
private

Initialize radio link failure parameters.

Upon receiving the notification about the successful RRC connection establishment, the UE phy initialize the RLF parameters to be ready for RLF detection.

Definition at line 1555 of file lte-ue-phy.cc.

References m_downlinkInSync, m_numOfFrames, m_numOfSubframes, m_sinrDbFrame, and NS_LOG_FUNCTION.

Referenced by DoNotifyConnectionSuccessful(), and DoResetRlfParams().

+ Here is the caller graph for this function:

◆ PhyPduReceived()

void ns3::LteUePhy::PhyPduReceived ( Ptr< Packet > p)

PhySpectrum received a new PHY-PDU.

Parameters
pthe packet received

Definition at line 466 of file lte-ue-phy.cc.

References m_uePhySapUser, and ns3::LteUePhySapUser::ReceivePhyPdu().

Referenced by ns3::LteHelper::InstallSingleUeDevice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ QueueSubChannelsForTransmission()

void ns3::LteUePhy::QueueSubChannelsForTransmission ( std::vector< int > rbMap)
private

Queue subchannels for transmission function.

Parameters
[in]rbMap

Definition at line 1202 of file lte-ue-phy.cc.

References ns3::LtePhy::m_macChTtiDelay, and m_subChannelsForTransmissionQueue.

Referenced by ReceiveLteControlMessageList().

+ Here is the caller graph for this function:

◆ ReceiveLteControlMessageList()

void ns3::LteUePhy::ReceiveLteControlMessageList ( std::list< Ptr< LteControlMessage > > msgList)
virtual

Receive LTE control message list function.

Parameters
msgListLTE control message list

Definition at line 993 of file lte-ue-phy.cc.

References ns3::LteControlMessage::DL_DCI, ns3::DynamicCast(), ns3::Time::GetMilliSeconds(), ns3::LtePhy::GetRbgSize(), ns3::LtePhy::m_cellId, ns3::LtePhy::m_componentCarrierId, ns3::LtePhy::m_downlinkSpectrumPhy, m_enableUplinkPowerControl, m_harqPhyModule, ns3::DlDciListElement_s::m_harqProcess, ns3::DlDciListElement_s::m_mcs, ns3::UlDciListElement_s::m_mcs, ns3::DlDciListElement_s::m_ndi, ns3::UlDciListElement_s::m_ndi, m_powerControl, m_raPreambleId, m_raRnti, ns3::DlDciListElement_s::m_rbBitmap, ns3::UlDciListElement_s::m_rbLen, ns3::UlDciListElement_s::m_rbStart, m_reportUlPhyResourceBlocks, ns3::DlDciListElement_s::m_resAlloc, ns3::DlDciListElement_s::m_rnti, m_rnti, ns3::UlDciListElement_s::m_rnti, ns3::DlDciListElement_s::m_rv, ns3::UlDciListElement_s::m_tbSize, ns3::DlDciListElement_s::m_tbsSize, ns3::DlDciListElement_s::m_tpc, m_ueCphySapUser, m_uePhySapUser, m_ulPhyTransmission, ns3::LteControlMessage::MIB, ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, QueueSubChannelsForTransmission(), ns3::LteControlMessage::RAR, ns3::LteUePhySapUser::ReceiveLteControlMessage(), ns3::LteUeCphySapUser::RecvMasterInformationBlock(), ns3::LteUeCphySapUser::RecvSystemInformationBlockType1(), SetSubChannelsForReception(), ns3::LteControlMessage::SIB1, ns3::LteControlMessage::UL_DCI, and UL_PUSCH_TTIS_DELAY.

Referenced by ns3::LteHelper::InstallSingleUeDevice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ReceivePss()

void ns3::LteUePhy::ReceivePss ( uint16_t cellId,
Ptr< SpectrumValue > p )
virtual

Receive PSS function.

Parameters
cellIdthe cell ID
pPSS list

Definition at line 1153 of file lte-ue-phy.cc.

References ns3::LteUePhy::PssElement::cellId, ns3::LtePhy::m_cellId, m_pssList, m_pssReceived, m_rnti, m_ueMeasurementsMap, ns3::LteUePhy::PssElement::nRB, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteUePhy::PssElement::pssPsdSum, ns3::LteUePhy::UeMeasurementsElement::rsrpNum, ns3::LteUePhy::UeMeasurementsElement::rsrpSum, ns3::LteUePhy::UeMeasurementsElement::rsrqNum, and ns3::LteUePhy::UeMeasurementsElement::rsrqSum.

Referenced by ns3::LteHelper::InstallSingleUeDevice().

+ Here is the caller graph for this function:

◆ ReportDataInterference()

void ns3::LteUePhy::ReportDataInterference ( const SpectrumValue & interf)
virtual

Create the mixed CQI report.

Parameters
interfinterference values vector

Definition at line 774 of file lte-ue-phy.cc.

References m_dataInterferencePower, m_dataInterferencePowerUpdated, and NS_LOG_FUNCTION.

Referenced by ns3::LteHelper::InstallSingleUeDevice().

+ Here is the caller graph for this function:

◆ ReportInterference()

void ns3::LteUePhy::ReportInterference ( const SpectrumValue & interf)
overridevirtual

generate a report based on the linear interference and noise power perceived during DATA frame NOTE: used only by eNB

Parameters
interfthe interference + noise power measured by the device

Implements ns3::LtePhy.

Definition at line 766 of file lte-ue-phy.cc.

References m_rsInterferencePower, m_rsInterferencePowerUpdated, and NS_LOG_FUNCTION.

Referenced by ns3::LteHelper::InstallSingleUeDevice().

+ Here is the caller graph for this function:

◆ ReportRsReceivedPower()

void ns3::LteUePhy::ReportRsReceivedPower ( const SpectrumValue & power)
overridevirtual

generate a report based on the linear RS power perceived during CTRL frame NOTE: used only by UE for evaluating RSRP

Parameters
powerthe RS power measured by the device

Implements ns3::LtePhy.

Definition at line 783 of file lte-ue-phy.cc.

References ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), m_enableUplinkPowerControl, m_powerControl, m_rsReceivedPower, m_rsReceivedPowerUpdated, NS_LOG_FUNCTION, and NS_LOG_INFO.

Referenced by ns3::LteHelper::InstallSingleUeDevice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ReportUeMeasurements()

void ns3::LteUePhy::ReportUeMeasurements ( )
private

Layer-1 filtering of RSRP and RSRQ measurements and reporting to the RRC entity.

Initially executed at +0.200s, and then repeatedly executed with periodicity as indicated by the UeMeasurementsFilterPeriod attribute.

Definition at line 902 of file lte-ue-phy.cc.

References ns3::LtePhy::m_cellId, ns3::LteUeCphySapUser::UeMeasurementsElement::m_cellId, ns3::LtePhy::m_componentCarrierId, m_reportUeMeasurements, m_rnti, ns3::LteUeCphySapUser::UeMeasurementsElement::m_rsrp, ns3::LteUeCphySapUser::UeMeasurementsElement::m_rsrq, m_ueCphySapUser, m_ueMeasurementsFilterPeriod, m_ueMeasurementsMap, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::LteUeCphySapUser::ReportUeMeasurements(), ReportUeMeasurements(), and ns3::Simulator::Schedule().

Referenced by LteUePhy(), and ReportUeMeasurements().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RlfDetection()

void ns3::LteUePhy::RlfDetection ( double sinrdB)
private

Radio link failure detection function.

Radio link monitoring is started to detect downlink radio link quality when the UE is both uplink and downlink synchronized (UE in CONNECTED_NORMALLY state). Upon detection of radio link failure, RRC connection is released and the UE starts the cell selection again. The procedure is implemented as per 3GPP TS 36.213 4.2.1 and TS 36.133 7.6. When the downlink radio link quality estimated over the last 200 ms period becomes worse than the threshold Qout, an out-of-sync indication is sent to RRC. When the downlink radio link quality estimated over the last 100 ms period becomes better than the threshold Qin, an in-sync indication is sent to RRC.

Parameters
sinrdBthe average SINR value in dB measured across all resource blocks

For every frame, if the downlink radio link quality(avg SINR) is less than the threshold Qout, then the frame cannot be decoded

If the downlink radio link quality(avg SINR) is greater than the threshold Qout, then the frame counter is reset since only consecutive frames should be considered.

Once the number of consecutive frames which cannot be decoded equals the Qout evaluation period (i.e 200ms), then an out-of-sync indication is sent to the RRC layer

For every frame, if the downlink radio link quality(avg SINR) is greater than the threshold Qin, then the frame can be successfully decoded.

If the downlink radio link quality(avg SINR) is less than the threshold Qin, then the frame counter is reset since only consecutive frames should be considered

Once the number of consecutive frames which can be decoded equals the Qin evaluation period (i.e 100ms), then an in-sync indication is sent to the RRC layer

Definition at line 1565 of file lte-ue-phy.cc.

References m_downlinkInSync, m_numOfFrames, m_numOfQinEvalSf, m_numOfQoutEvalSf, m_numOfSubframes, m_qIn, m_qOut, m_sinrDbFrame, m_ueCphySapUser, ns3::Time::MS, ns3::LteUeCphySapUser::NotifyInSync(), ns3::LteUeCphySapUser::NotifyOutOfSync(), ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, and ns3::LteUeCphySapUser::ResetSyncIndicationCounter().

Referenced by GenerateCqiRsrpRsrq().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendSrs()

void ns3::LteUePhy::SendSrs ( )

Send the SRS signal in the last symbols of the frame.

Definition at line 1304 of file lte-ue-phy.cc.

References ns3::LtePhy::m_cellId, m_enableUplinkPowerControl, m_powerControl, m_rnti, ns3::LtePhy::m_txPower, ns3::LtePhy::m_ulBandwidth, ns3::LtePhy::m_uplinkSpectrumPhy, NS_ASSERT, NS_LOG_FUNCTION, and SetSubChannelsForTransmission().

Referenced by SubframeIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetDownlinkCqiPeriodicity()

void ns3::LteUePhy::SetDownlinkCqiPeriodicity ( Time cqiPeriodicity)
private

Set the periodicty for the downlink periodic wideband and aperiodic subband CQI reporting.

Parameters
cqiPeriodicityThe downlink CQI reporting periodicity in milliseconds

Definition at line 948 of file lte-ue-phy.cc.

References m_a30CqiPeriodicity, m_p10CqiPeriodicity, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetHarqPhyModule()

void ns3::LteUePhy::SetHarqPhyModule ( Ptr< LteHarqPhy > harq)

Set the HARQ PHY module.

Parameters
harqthe HARQ PHY module

Definition at line 1724 of file lte-ue-phy.cc.

References m_harqPhyModule.

◆ SetLteUeCphySapUser()

void ns3::LteUePhy::SetLteUeCphySapUser ( LteUeCphySapUser * s)

Set the CPHY SAP User.

Parameters
sa pointer to the SAP user

Definition at line 356 of file lte-ue-phy.cc.

References m_ueCphySapUser, and NS_LOG_FUNCTION.

◆ SetLteUePhySapUser()

void ns3::LteUePhy::SetLteUePhySapUser ( LteUePhySapUser * s)

Set the PHY SAP User.

Parameters
sa pointer to the SAP user

Definition at line 342 of file lte-ue-phy.cc.

References m_uePhySapUser, and NS_LOG_FUNCTION.

◆ SetNoiseFigure()

void ns3::LteUePhy::SetNoiseFigure ( double nf)

Set noise figure.

Parameters
nfthe noise figure in dB

Definition at line 370 of file lte-ue-phy.cc.

References ns3::LtePhy::m_noiseFigure, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetNumQinEvalSf()

void ns3::LteUePhy::SetNumQinEvalSf ( uint16_t numSubframes)
private

Set number of Qin evaluation subframes.

The number passed to this method should be multiple of 10. This number specifies the total number of consecutive subframes, which corresponds to the Qin evaluation period.

Parameters
numSubframesthe number of subframes

Definition at line 434 of file lte-ue-phy.cc.

References m_numOfQinEvalSf, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetNumQoutEvalSf()

void ns3::LteUePhy::SetNumQoutEvalSf ( uint16_t numSubframes)
private

Set number of Qout evaluation subframes.

The number passed to this method should be multiple of 10. This number specifies the total number of consecutive subframes, which corresponds to the Qout evaluation period.

Parameters
numSubframesthe number of subframes

Definition at line 424 of file lte-ue-phy.cc.

References m_numOfQoutEvalSf, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetSubChannelsForReception()

void ns3::LteUePhy::SetSubChannelsForReception ( std::vector< int > mask)

Get a list of sub channels to use in RX.

Parameters
masklist of sub channels

Definition at line 483 of file lte-ue-phy.cc.

References m_subChannelsForReception, and NS_LOG_FUNCTION.

Referenced by ReceiveLteControlMessageList().

+ Here is the caller graph for this function:

◆ SetSubChannelsForTransmission()

void ns3::LteUePhy::SetSubChannelsForTransmission ( std::vector< int > mask)

Set a list of sub channels to use in TX.

Parameters
maska list of sub channels

Definition at line 472 of file lte-ue-phy.cc.

References CreateTxPowerSpectralDensity(), m_subChannelsForTransmission, ns3::LtePhy::m_uplinkSpectrumPhy, and NS_LOG_FUNCTION.

Referenced by SendSrs(), and SubframeIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetTxMode1Gain()

void ns3::LteUePhy::SetTxMode1Gain ( double gain)
private

Set transmit mode 1 gain function.

Parameters
[in]gain

Definition at line 1654 of file lte-ue-phy.cc.

References SetTxModeGain().

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetTxMode2Gain()

void ns3::LteUePhy::SetTxMode2Gain ( double gain)
private

Set transmit mode 2 gain function.

Parameters
[in]gain

Definition at line 1660 of file lte-ue-phy.cc.

References SetTxModeGain().

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetTxMode3Gain()

void ns3::LteUePhy::SetTxMode3Gain ( double gain)
private

Set transmit mode 3 gain function.

Parameters
[in]gain

Definition at line 1666 of file lte-ue-phy.cc.

References SetTxModeGain().

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetTxMode4Gain()

void ns3::LteUePhy::SetTxMode4Gain ( double gain)
private

Set transmit mode 4 gain function.

Parameters
[in]gain

Definition at line 1672 of file lte-ue-phy.cc.

References SetTxModeGain().

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetTxMode5Gain()

void ns3::LteUePhy::SetTxMode5Gain ( double gain)
private

Set transmit mode 5 gain function.

Parameters
[in]gain

Definition at line 1678 of file lte-ue-phy.cc.

References SetTxModeGain().

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetTxMode6Gain()

void ns3::LteUePhy::SetTxMode6Gain ( double gain)
private

Set transmit mode 6 gain function.

Parameters
[in]gain

Definition at line 1684 of file lte-ue-phy.cc.

References SetTxModeGain().

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetTxMode7Gain()

void ns3::LteUePhy::SetTxMode7Gain ( double gain)
private

Set transmit mode 7 gain function.

Parameters
[in]gain

Definition at line 1690 of file lte-ue-phy.cc.

References SetTxModeGain().

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetTxModeGain()

void ns3::LteUePhy::SetTxModeGain ( uint8_t txMode,
double gain )
private

Set transmit mode gain function.

Parameters
[in]txMode
[in]gain

Definition at line 1696 of file lte-ue-phy.cc.

References ns3::LtePhy::m_downlinkSpectrumPhy, m_txModeGain, and NS_LOG_FUNCTION.

Referenced by SetTxMode1Gain(), SetTxMode2Gain(), SetTxMode3Gain(), SetTxMode4Gain(), SetTxMode5Gain(), SetTxMode6Gain(), and SetTxMode7Gain().

+ Here is the caller graph for this function:

◆ SetTxPower()

void ns3::LteUePhy::SetTxPower ( double pow)

Set transmit power.

Parameters
powthe transmission power in dBm

Definition at line 384 of file lte-ue-phy.cc.

References m_powerControl, ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SubframeIndication()

void ns3::LteUePhy::SubframeIndication ( uint32_t frameNo,
uint32_t subframeNo )

trigger from eNB the start from a new frame

Parameters
frameNoframe number
subframeNosubframe number

Definition at line 1208 of file lte-ue-phy.cc.

References ns3::LtePhy::GetControlMessages(), ns3::LtePhy::GetPacketBurst(), ns3::LtePhy::GetTti(), ns3::LtePhy::m_cellId, m_enableUplinkPowerControl, ns3::LtePhy::m_macChTtiDelay, m_powerControl, m_pssReceived, m_rnti, m_rsInterferencePowerUpdated, m_rsReceivedPowerUpdated, m_sendSrsEvent, m_srsConfigured, m_srsPeriodicity, m_srsStartTime, m_srsSubframeOffset, m_subChannelsForTransmissionQueue, m_subframeNo, ns3::LtePhy::m_txPower, m_uePhySapUser, m_ulConfigured, ns3::LtePhy::m_uplinkSpectrumPhy, ns3::Simulator::Now(), NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::Simulator::Schedule(), ns3::Seconds(), SendSrs(), SetSubChannelsForTransmission(), SubframeIndication(), ns3::LteUePhySapUser::SubframeIndication(), ns3::UL_DATA_DURATION, and ns3::UL_SRS_DELAY_FROM_SUBFRAME_START.

Referenced by DoInitialize(), and SubframeIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SwitchToState()

void ns3::LteUePhy::SwitchToState ( State s)
private

Switch the UE PHY to the given state.

Parameters
sthe destination state

Definition at line 1737 of file lte-ue-phy.cc.

References ns3::LtePhy::m_cellId, m_rnti, m_state, m_stateTransitionTrace, NS_LOG_FUNCTION, and NS_LOG_INFO.

Referenced by DoStartCellSearch(), and DoSynchronizeWithEnb().

+ Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ MemberLteUeCphySapProvider< LteUePhy >

friend class MemberLteUeCphySapProvider< LteUePhy >
friend

allow MemberLteUeCphySapProvider<LteUePhy> class friend access

Definition at line 43 of file lte-ue-phy.h.

Referenced by LteUePhy().

◆ UeMemberLteUePhySapProvider

friend class UeMemberLteUePhySapProvider
friend

allow UeMemberLteUePhySapProvider class friend access

Definition at line 43 of file lte-ue-phy.h.

Referenced by LteUePhy().

Member Data Documentation

◆ m_a30CqiLast

Time ns3::LteUePhy::m_a30CqiLast
private

last aperiodic CQI

Definition at line 675 of file lte-ue-phy.h.

Referenced by CreateDlCqiFeedbackMessage(), DoReset(), and GenerateCqiRsrpRsrq().

◆ m_a30CqiPeriodicity

Time ns3::LteUePhy::m_a30CqiPeriodicity
private

SubBand Aperiodic CQI.

Activated by DCI format 0 or Random Access Response Grant.

Note
Defines a periodicity for academic studies.

Definition at line 674 of file lte-ue-phy.h.

Referenced by CreateDlCqiFeedbackMessage(), GenerateCqiRsrpRsrq(), and SetDownlinkCqiPeriodicity().

◆ m_amc

Ptr<LteAmc> ns3::LteUePhy::m_amc
private

AMC.

Definition at line 655 of file lte-ue-phy.h.

Referenced by LteUePhy(), and CreateDlCqiFeedbackMessage().

◆ m_ctrlSinrForRlf

SpectrumValue ns3::LteUePhy::m_ctrlSinrForRlf
private

the CTRL SINR used for RLF detection

Definition at line 841 of file lte-ue-phy.h.

Referenced by GenerateCqiRsrpRsrq(), GenerateCtrlCqiReport(), and GenerateMixedCqiReport().

◆ m_dataInterferencePower

SpectrumValue ns3::LteUePhy::m_dataInterferencePower
private

data interference power

Definition at line 716 of file lte-ue-phy.h.

Referenced by GenerateMixedCqiReport(), and ReportDataInterference().

◆ m_dataInterferencePowerUpdated

bool ns3::LteUePhy::m_dataInterferencePowerUpdated
private

data interference power updated?

Definition at line 715 of file lte-ue-phy.h.

Referenced by DoReset(), DoResetPhyAfterRlf(), GenerateMixedCqiReport(), and ReportDataInterference().

◆ m_dlConfigured

bool ns3::LteUePhy::m_dlConfigured
private

DL configured?

Definition at line 695 of file lte-ue-phy.h.

Referenced by DoReset(), DoSetDlBandwidth(), DoSynchronizeWithEnb(), and GenerateCqiRsrpRsrq().

◆ m_downlinkInSync

bool ns3::LteUePhy::m_downlinkInSync
private

when set, DL SINR evaluation for out-of-sync indications is conducted.

Definition at line 834 of file lte-ue-phy.h.

Referenced by DoStartInSyncDetection(), InitializeRlfParams(), and RlfDetection().

◆ m_enableRlfDetection

bool ns3::LteUePhy::m_enableRlfDetection
private

Flag to enable/disable RLF detection.

Definition at line 843 of file lte-ue-phy.h.

Referenced by GenerateCqiRsrpRsrq(), and GetTypeId().

◆ m_enableUplinkPowerControl

bool ns3::LteUePhy::m_enableUplinkPowerControl
private

The EnableUplinkPowerControl attribute.

If true, Uplink Power Control will be enabled.

Definition at line 661 of file lte-ue-phy.h.

Referenced by GetTypeId(), ReceiveLteControlMessageList(), ReportRsReceivedPower(), SendSrs(), and SubframeIndication().

◆ m_harqPhyModule

Ptr<LteHarqPhy> ns3::LteUePhy::m_harqPhyModule
private

HARQ phy module.

Definition at line 758 of file lte-ue-phy.h.

Referenced by ReceiveLteControlMessageList(), and SetHarqPhyModule().

◆ m_imsi

uint64_t ns3::LteUePhy::m_imsi
private

the IMSI of the UE

Definition at line 842 of file lte-ue-phy.h.

Referenced by DoSetImsi().

◆ m_isConnected

bool ns3::LteUePhy::m_isConnected
private

set when UE RRC is in CONNECTED_NORMALLY state

Definition at line 814 of file lte-ue-phy.h.

Referenced by DoNotifyConnectionSuccessful(), DoReset(), and GenerateCqiRsrpRsrq().

◆ m_noisePsd

Ptr<SpectrumValue> ns3::LteUePhy::m_noisePsd
private

Noise power spectral density for the configured bandwidth.

Definition at line 811 of file lte-ue-phy.h.

Referenced by DoSetDlBandwidth().

◆ m_numOfFrames

uint16_t ns3::LteUePhy::m_numOfFrames
private

count the number of frames for which the downlink radio link quality is estimated

Definition at line 838 of file lte-ue-phy.h.

Referenced by InitializeRlfParams(), and RlfDetection().

◆ m_numOfQinEvalSf

uint16_t ns3::LteUePhy::m_numOfQinEvalSf
private

the downlink radio link quality is estimated over this period for detecting in-syncs

Definition at line 831 of file lte-ue-phy.h.

Referenced by GetNumQinEvalSf(), RlfDetection(), and SetNumQinEvalSf().

◆ m_numOfQoutEvalSf

uint16_t ns3::LteUePhy::m_numOfQoutEvalSf
private

the downlink radio link quality is estimated over this period for detecting out-of-syncs

Definition at line 829 of file lte-ue-phy.h.

Referenced by GetNumQoutEvalSf(), RlfDetection(), and SetNumQoutEvalSf().

◆ m_numOfSubframes

uint16_t ns3::LteUePhy::m_numOfSubframes
private

count the number of subframes for which the downlink radio link quality is estimated

Definition at line 836 of file lte-ue-phy.h.

Referenced by InitializeRlfParams(), and RlfDetection().

◆ m_p10CqiLast

Time ns3::LteUePhy::m_p10CqiLast
private

last periodic CQI

Definition at line 667 of file lte-ue-phy.h.

Referenced by CreateDlCqiFeedbackMessage(), DoReset(), and GenerateCqiRsrpRsrq().

◆ m_p10CqiPeriodicity

Time ns3::LteUePhy::m_p10CqiPeriodicity
private

Wideband Periodic CQI. 2, 5, 10, 16, 20, 32, 40, 64, 80 or 160 ms.

Definition at line 666 of file lte-ue-phy.h.

Referenced by CreateDlCqiFeedbackMessage(), GenerateCqiRsrpRsrq(), and SetDownlinkCqiPeriodicity().

◆ m_paLinear

double ns3::LteUePhy::m_paLinear
private

PA linear.

Definition at line 693 of file lte-ue-phy.h.

Referenced by DoReset(), DoSetPa(), and GenerateMixedCqiReport().

◆ m_powerControl

◆ m_pssList

std::list<PssElement> ns3::LteUePhy::m_pssList
private

PSS list.

Definition at line 728 of file lte-ue-phy.h.

Referenced by DoReset(), GenerateCqiRsrpRsrq(), and ReceivePss().

◆ m_pssReceived

bool ns3::LteUePhy::m_pssReceived
private

PSS received?

Definition at line 718 of file lte-ue-phy.h.

Referenced by DoResetPhyAfterRlf(), GenerateCqiRsrpRsrq(), ReceivePss(), and SubframeIndication().

◆ m_pssReceptionThreshold

double ns3::LteUePhy::m_pssReceptionThreshold
private

The RsrqUeMeasThreshold attribute.

Receive threshold for PSS on RSRQ in dB.

Definition at line 734 of file lte-ue-phy.h.

Referenced by GenerateCqiRsrpRsrq(), and GetTypeId().

◆ m_qIn

double ns3::LteUePhy::m_qIn
private

The 'Qin' attribute.

corresponds to 2% block error rate of a hypothetical PDCCH transmission taking into account the PCFICH errors.

Definition at line 820 of file lte-ue-phy.h.

Referenced by GetTypeId(), and RlfDetection().

◆ m_qOut

double ns3::LteUePhy::m_qOut
private

The 'Qout' attribute.

corresponds to 2% block error rate of a hypothetical PDCCH transmission taking into account the PCFICH errors.

Definition at line 827 of file lte-ue-phy.h.

Referenced by GetTypeId(), and RlfDetection().

◆ m_raPreambleId

uint32_t ns3::LteUePhy::m_raPreambleId
private

RA preamble ID.

Definition at line 760 of file lte-ue-phy.h.

Referenced by DoReset(), DoSendRachPreamble(), and ReceiveLteControlMessageList().

◆ m_raRnti

uint32_t ns3::LteUePhy::m_raRnti
private

RA RNTI.

Definition at line 761 of file lte-ue-phy.h.

Referenced by DoReset(), DoSendRachPreamble(), and ReceiveLteControlMessageList().

◆ m_reportCurrentCellRsrpSinrTrace

TracedCallback<uint16_t, uint16_t, double, double, uint8_t> ns3::LteUePhy::m_reportCurrentCellRsrpSinrTrace
private

The ReportCurrentCellRsrpSinr trace source.

Trace information regarding RSRP and average SINR (see TS 36.214). Exporting cell ID, RNTI, RSRP, and SINR. Moreover it reports the m_componentCarrierId.

Definition at line 768 of file lte-ue-phy.h.

Referenced by GenerateCqiRsrpRsrq(), and GetTypeId().

◆ m_reportPowerSpectralDensity

TracedCallback<uint16_t, Ptr<SpectrumValue> > ns3::LteUePhy::m_reportPowerSpectralDensity
private

The ReportsPowerSpectralDensity trace source.

Contains trace information regarding Power Spectral Density. Exporting an RNTI of a UE and a pointer to Spectrum Values.

Definition at line 809 of file lte-ue-phy.h.

Referenced by CreateTxPowerSpectralDensity(), and GetTypeId().

◆ m_reportUeMeasurements

TracedCallback<uint16_t, uint16_t, double, double, bool, uint8_t> ns3::LteUePhy::m_reportUeMeasurements
private

The ReportUeMeasurements trace source.

Contains trace information regarding RSRP and RSRQ measured from a specific cell (see TS 36.214). Exporting RNTI, the ID of the measured cell, RSRP (in dBm), RSRQ (in dB), and whether the cell is the serving cell. Moreover it report the m_componentCarrierId.

Definition at line 786 of file lte-ue-phy.h.

Referenced by GetTypeId(), and ReportUeMeasurements().

◆ m_reportUlPhyResourceBlocks

TracedCallback<uint16_t, const std::vector<int>&> ns3::LteUePhy::m_reportUlPhyResourceBlocks
private

The ReportUlPhyResourceBlocks trace source.

Contains trace information regarding PHY stats from UL Resource Blocks (RBs). Exporting an RNTI of a UE and a vector containing the indices of the RBs used for UL.

Definition at line 802 of file lte-ue-phy.h.

Referenced by GetTypeId(), and ReceiveLteControlMessageList().

◆ m_rnti

◆ m_rsInterferencePower

SpectrumValue ns3::LteUePhy::m_rsInterferencePower
private

RS interference power.

Definition at line 713 of file lte-ue-phy.h.

Referenced by GenerateCqiRsrpRsrq(), and ReportInterference().

◆ m_rsInterferencePowerUpdated

bool ns3::LteUePhy::m_rsInterferencePowerUpdated
private

RS interference power updated?

Definition at line 712 of file lte-ue-phy.h.

Referenced by DoReset(), DoResetPhyAfterRlf(), GenerateCqiRsrpRsrq(), ReportInterference(), and SubframeIndication().

◆ m_rsReceivedPower

SpectrumValue ns3::LteUePhy::m_rsReceivedPower
private

RS receive power.

Definition at line 710 of file lte-ue-phy.h.

Referenced by GenerateCqiRsrpRsrq(), GenerateMixedCqiReport(), and ReportRsReceivedPower().

◆ m_rsReceivedPowerUpdated

bool ns3::LteUePhy::m_rsReceivedPowerUpdated
private

RS receive power updated?

Definition at line 709 of file lte-ue-phy.h.

Referenced by DoReset(), GenerateCqiRsrpRsrq(), ReportRsReceivedPower(), and SubframeIndication().

◆ m_rsrpSinrSampleCounter

uint16_t ns3::LteUePhy::m_rsrpSinrSampleCounter
private

The RsrpSinrSampleCounter attribute.

The sampling counter for reporting RSRP-SINR stats.

Definition at line 778 of file lte-ue-phy.h.

Referenced by DoReset(), and GenerateCqiRsrpRsrq().

◆ m_rsrpSinrSamplePeriod

uint16_t ns3::LteUePhy::m_rsrpSinrSamplePeriod
private

The RsrpSinrSamplePeriod attribute.

The sampling period for reporting RSRP-SINR stats.

Definition at line 773 of file lte-ue-phy.h.

Referenced by GenerateCqiRsrpRsrq(), and GetTypeId().

◆ m_sendSrsEvent

EventId ns3::LteUePhy::m_sendSrsEvent
private

send SRS event

Definition at line 788 of file lte-ue-phy.h.

Referenced by DoReset(), and SubframeIndication().

◆ m_sinrDbFrame

double ns3::LteUePhy::m_sinrDbFrame
private

the average SINR per radio frame

Definition at line 840 of file lte-ue-phy.h.

Referenced by InitializeRlfParams(), and RlfDetection().

◆ m_srsConfigured

bool ns3::LteUePhy::m_srsConfigured
private

SRS configured.

Definition at line 690 of file lte-ue-phy.h.

Referenced by DoReset(), DoSetSrsConfigurationIndex(), and SubframeIndication().

◆ m_srsPeriodicity

uint16_t ns3::LteUePhy::m_srsPeriodicity
private

SRS periodicity.

Definition at line 688 of file lte-ue-phy.h.

Referenced by DoReset(), DoSetSrsConfigurationIndex(), and SubframeIndication().

◆ m_srsStartTime

Time ns3::LteUePhy::m_srsStartTime
private

SRS start time.

Definition at line 691 of file lte-ue-phy.h.

Referenced by DoSetSrsConfigurationIndex(), and SubframeIndication().

◆ m_srsSubframeOffset

uint16_t ns3::LteUePhy::m_srsSubframeOffset
private

SRS subframe offset.

Definition at line 689 of file lte-ue-phy.h.

Referenced by DoSetSrsConfigurationIndex(), and SubframeIndication().

◆ m_state

State ns3::LteUePhy::m_state
private

The current UE PHY state.

Definition at line 699 of file lte-ue-phy.h.

Referenced by GenerateCqiRsrpRsrq(), GenerateMixedCqiReport(), GetState(), and SwitchToState().

◆ m_stateTransitionTrace

TracedCallback<uint16_t, uint16_t, State, State> ns3::LteUePhy::m_stateTransitionTrace
private

The StateTransition trace source.

Fired upon every UE PHY state transition. Exporting the serving cell ID, RNTI, old state, and new state.

Definition at line 704 of file lte-ue-phy.h.

Referenced by GetTypeId(), and SwitchToState().

◆ m_subChannelsForReception

std::vector<int> ns3::LteUePhy::m_subChannelsForReception
private

A list of sub channels to use in RX.

Definition at line 650 of file lte-ue-phy.h.

Referenced by GetSubChannelsForReception(), and SetSubChannelsForReception().

◆ m_subChannelsForTransmission

std::vector<int> ns3::LteUePhy::m_subChannelsForTransmission
private

A list of sub channels to use in TX.

Definition at line 648 of file lte-ue-phy.h.

Referenced by GetSubChannelsForTransmission(), and SetSubChannelsForTransmission().

◆ m_subChannelsForTransmissionQueue

std::vector<std::vector<int> > ns3::LteUePhy::m_subChannelsForTransmissionQueue
private

subchannels for transmission queue

Definition at line 653 of file lte-ue-phy.h.

Referenced by DoReset(), QueueSubChannelsForTransmission(), and SubframeIndication().

◆ m_subframeNo

uint8_t ns3::LteUePhy::m_subframeNo
private
Todo
Can be removed.

Definition at line 707 of file lte-ue-phy.h.

Referenced by SubframeIndication().

◆ m_transmissionMode

uint8_t ns3::LteUePhy::m_transmissionMode
private

the transmission mode

Definition at line 685 of file lte-ue-phy.h.

Referenced by CreateDlCqiFeedbackMessage(), DoReset(), and DoSetTransmissionMode().

◆ m_txModeGain

std::vector<double> ns3::LteUePhy::m_txModeGain
private

the transmit mode gain

Definition at line 686 of file lte-ue-phy.h.

Referenced by ~LteUePhy(), CreateDlCqiFeedbackMessage(), and SetTxModeGain().

◆ m_ueCphySapProvider

LteUeCphySapProvider* ns3::LteUePhy::m_ueCphySapProvider
private

UE CPhy SAP provider.

Definition at line 680 of file lte-ue-phy.h.

Referenced by LteUePhy(), DoDispose(), and GetLteUeCphySapProvider().

◆ m_ueCphySapUser

LteUeCphySapUser* ns3::LteUePhy::m_ueCphySapUser
private

UE CPhy SAP user.

Definition at line 681 of file lte-ue-phy.h.

Referenced by ReceiveLteControlMessageList(), ReportUeMeasurements(), RlfDetection(), and SetLteUeCphySapUser().

◆ m_ueMeasurementsFilterLast

Time ns3::LteUePhy::m_ueMeasurementsFilterLast
private
Todo
Can be removed.

Definition at line 756 of file lte-ue-phy.h.

◆ m_ueMeasurementsFilterPeriod

Time ns3::LteUePhy::m_ueMeasurementsFilterPeriod
private

The UeMeasurementsFilterPeriod attribute.

Time period for reporting UE measurements, i.e., the length of layer-1 filtering (default 200 ms).

Definition at line 754 of file lte-ue-phy.h.

Referenced by LteUePhy(), GetTypeId(), and ReportUeMeasurements().

◆ m_ueMeasurementsMap

std::map<uint16_t, UeMeasurementsElement> ns3::LteUePhy::m_ueMeasurementsMap
private

Store measurement results during the last layer-1 filtering period.

Indexed by the cell ID where the measurements come from.

Definition at line 749 of file lte-ue-phy.h.

Referenced by GenerateCqiRsrpRsrq(), ReceivePss(), and ReportUeMeasurements().

◆ m_uePhySapProvider

LteUePhySapProvider* ns3::LteUePhy::m_uePhySapProvider
private

UE Phy SAP provider.

Definition at line 677 of file lte-ue-phy.h.

Referenced by LteUePhy(), DoDispose(), and GetLteUePhySapProvider().

◆ m_uePhySapUser

LteUePhySapUser* ns3::LteUePhy::m_uePhySapUser
private

UE Phy SAP user.

Definition at line 678 of file lte-ue-phy.h.

Referenced by PhyPduReceived(), ReceiveLteControlMessageList(), SetLteUePhySapUser(), and SubframeIndication().

◆ m_ulConfigured

bool ns3::LteUePhy::m_ulConfigured
private

UL configured?

Definition at line 696 of file lte-ue-phy.h.

Referenced by DoConfigureUplink(), DoReset(), DoSynchronizeWithEnb(), GenerateCqiRsrpRsrq(), and SubframeIndication().

◆ m_ulPhyTransmission

TracedCallback<PhyTransmissionStatParameters> ns3::LteUePhy::m_ulPhyTransmission
private

The UlPhyTransmission trace source.

Contains trace information regarding PHY stats from UL Tx perspective. Exporting a structure with type PhyTransmissionStatParameters.

Definition at line 795 of file lte-ue-phy.h.

Referenced by GetTypeId(), and ReceiveLteControlMessageList().


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