5G-LENA  nr-v3.0-29-g83cc959
The 5G/NR module for the ns-3 simulator
ns3::NrUePhy Class Reference

The UE PHY class. More...

#include "nr-ue-phy.h"

+ Inheritance diagram for ns3::NrUePhy:
+ Collaboration diagram for ns3::NrUePhy:

Public Types

typedef void(* DlCtrlSinrTracedCallback) (uint16_t, uint16_t, double, uint16_t)
 
typedef void(* DlDataSinrTracedCallback) (uint16_t, uint16_t, double, uint16_t)
 
typedef void(* PowerSpectralDensityTracedCallback) (const SfnSf &sfnSf, Ptr< const SpectrumValue > v, const Time &time, uint16_t rnti, uint64_t imsi, uint16_t bwpId, uint16_t cellId)
 TracedCallback signature for power trace source. More...
 
typedef void(* RxedUePhyCtrlMsgsTracedCallback) (const SfnSf sfnSf, const uint16_t nodeId, const uint16_t rnti, const uint8_t bwpId, Ptr< NrControlMessage >)
 
typedef void(* RxedUePhyDlDciTracedCallback) (const SfnSf sfnSf, const uint16_t nodeId, const uint16_t rnti, const uint8_t bwpId, uint8_t harqId, uint32_t K1Delay)
 
typedef void(* TxedUePhyCtrlMsgsTracedCallback) (const SfnSf sfnSf, const uint16_t nodeId, const uint16_t rnti, const uint8_t bwpId, Ptr< NrControlMessage >)
 
typedef void(* TxedUePhyHarqFeedbackTracedCallback) (const SfnSf sfnSf, const uint16_t nodeId, const uint16_t rnti, const uint8_t bwpId, uint8_t harqId, uint32_t K1Delay)
 

Public Member Functions

 NrUePhy ()
 NrUePhy default constructor.
 
 ~NrUePhy () override
 ~NrUePhy
 
NrPmSearch::PmiUpdate CheckUpdatePmi ()
 Check if updates to wideband and/or subband PMI are necessary. This function is used to limit the frequency of PMI updates because computational complexity of PMI feedback can be very high, and because PMI feedback requires PUSCH/PUCCH resources.
 
uint8_t ComputeCqi (const SpectrumValue &sinr)
 Compute the CQI based on the SINR. More...
 
void EnqueueDlHarqFeedback (const DlHarqInfo &m)
 Get the HARQ feedback (on the transmission) from NrSpectrumPhy and send it through ideal PUCCH to gNB. More...
 
void GenerateDlCqiReport (const SpectrumValue &sinr)
 Generate a DL CQI report. More...
 
void GenerateDlCqiReportMimo (const std::vector< MimoSignalChunk > &mimoChunks)
 Generate DL CQI, PMI, and RI (channel quality precoding matrix and rank indicators) More...
 
BeamId GetBeamId (uint16_t rnti) const override
 Get the beam id for the specified user. More...
 
const SfnSfGetCurrentSfnSf () const override
 Get the current SfnSf. More...
 
Ptr< NrPmSearchGetPmSearch () const
 Get the precoding matrix search engine.
 
uint16_t GetRnti () const __attribute__((warn_unused_result))
 Get the current RNTI of the user. More...
 
double GetRsrp () const
 Returns the latest measured RSRP value Called by NrUePowerControl.
 
double GetTxPower () const override
 Retrieve the TX power of the UE. More...
 
LteUeCphySapProvider * GetUeCphySapProvider () __attribute__((warn_unused_result))
 Retrieve the pointer for the C PHY SAP provider (AKA the PHY interface towards the RRC) More...
 
Ptr< NrUePowerControlGetUplinkPowerControl () const
 Get LTE uplink power control entity. More...
 
void PhyCtrlMessagesReceived (const Ptr< NrControlMessage > &msg)
 Receive a list of CTRL messages. More...
 
void PhyDataPacketReceived (const Ptr< Packet > &p)
 Receive a PHY data packet. More...
 
void ReceivePss (uint16_t cellId, const Ptr< SpectrumValue > &p)
 Receive PSS and calculate RSRQ in dBm. More...
 
void RegisterToEnb (uint16_t bwpId)
 Register the UE to a certain Enb. More...
 
void ReportDlCtrlSinr (const SpectrumValue &sinr)
 Called when DlCtrlSinr is fired. More...
 
void ReportRsReceivedPower (const SpectrumValue &power)
 Called when rsReceivedPower is fired. More...
 
void ReportRsrpSinrTrace (const SpectrumValue &sinr)
 Report the SINR value in the RSRP and SINR trace. In OSS code, this functionality is piggy-backed onto GenerateDlCqiReport. The RSRP is unknown and reported as 0.0, like in OSS code. More...
 
void ScheduleStartEventLoop (uint32_t nodeId, uint16_t frame, uint8_t subframe, uint16_t slot) override
 Start the ue Event Loop. More...
 
void SetCam (const Ptr< NrChAccessManager > &cam)
 Set the channel access manager interface for this instance of the PHY. More...
 
void SetDlAmc (const Ptr< const NrAmc > &amc)
 Set the AMC pointer from the GNB. More...
 
void SetDlCtrlSyms (uint8_t dlCtrlSyms)
 Set the number of DL CTRL symbols. More...
 
void SetEnableUplinkPowerControl (bool enable)
 
void SetNumRbPerRbg (uint32_t numRbPerRbg)
 Function that sets the number of RBs per RBG. This function will be soon deprecated, as soon as all the functions at gNb PHY, MAC and UE PHY that work with DCI bitmask start to work on level of RBs instead of RBGs. This function is configured by helper. More...
 
void SetPattern (const std::string &pattern)
 Set the UE pattern. More...
 
void SetPhySapUser (NrUePhySapUser *ptr)
 Install the PHY sap user (AKA the UE MAC) More...
 
void SetPmSearch (Ptr< NrPmSearch > pmSearch)
 Set the precoding matrix search engine. More...
 
void SetTxPower (double pow)
 Set the transmission power for the UE. More...
 
void SetUeCphySapUser (LteUeCphySapUser *s)
 Install ue C PHY SAP user (AKA the PHY interface towards the RRC) More...
 
void SetUlCtrlSyms (uint8_t ulCtrlSyms)
 Set the number of UL CTRL symbols. More...
 
void SetUplinkPowerControl (Ptr< NrUePowerControl > pc)
 Allow configuration of uplink power control algorithm. E.g. necessary in FDD, when measurements are received in downlink BWP, but they are used in uplink BWP NOTE: This way of configuring is a temporal solution until BWP manager has this function implemented for UL PC, FFR, algorithm and similar algorithms, in which is needed to have a pair of DL and UL BWPs. In future this function will be called only by a friend class. More...
 
- Public Member Functions inherited from ns3::NrPhy
 NrPhy ()
 NrPhy constructor.
 
 ~NrPhy () override
 ~NrPhy
 
void DoSetCellId (uint16_t cellId)
 Set the cell ID. More...
 
void EncodeCtrlMsg (const Ptr< NrControlMessage > &msg)
 Take the control messages, and put it in a list that will be sent at the first occasion. More...
 
void EnqueueCtrlMessage (const Ptr< NrControlMessage > &m)
 Enqueue a ctrl message, keeping in consideration L1L2CtrlDelay. More...
 
uint16_t GetBwpId () const
 
uint16_t GetCellId () const
 
double GetCentralFrequency () const
 Retrieve the frequency (in Hz) of this PHY's channel. More...
 
uint32_t GetChannelBandwidth () const
 Retrieve the channel bandwidth, in Hz. More...
 
uint32_t GetL1L2CtrlLatency () const
 
double GetNoiseFigure () const
 Get the NoiseFigure value. More...
 
uint16_t GetNumerology () const
 Get the configured numerology. More...
 
NrPhySapProviderGetPhySapProvider ()
 Retrieve a pointer to an instance of NrPhySapProvider. More...
 
enum NrSpectrumValueHelper::PowerAllocationType GetPowerAllocationType () const
 Get the power allocation type.
 
uint32_t GetRbNum () const
 Get the number of Resource block configured. More...
 
double GetRbOverhead () const
 Get the bandwidth overhead used when calculating the usable RB number. More...
 
Time GetSlotPeriod () const
 Get the slot period. More...
 
Ptr< const SpectrumModel > GetSpectrumModel ()
 Get the spectrum model of the PHY. More...
 
Ptr< NrSpectrumPhyGetSpectrumPhy () const
 Retrieve the SpectrumPhy pointer. More...
 
uint32_t GetSubcarrierSpacing () const
 Retrieve the subcarrier spacing in Hz. Subcarrier spacing is updated when the numerology is being updated. More...
 
Time GetSymbolPeriod () const
 Get SymbolPeriod. More...
 
uint32_t GetSymbolsPerSlot () const
 Get the number of symbols in a slot. More...
 
virtual Time GetTbDecodeLatency () const
 Returns Transport Block decode latency. More...
 
bool HasDlSlot () const
 Go through the current pattern and see if at least one slot is DL, F or S. More...
 
bool HasUlSlot () const
 Go through the current pattern and see if at least one slot is UL, F or S. More...
 
void InstallCentralFrequency (double f)
 Install the PHY over a particular central frequency. More...
 
void InstallSpectrumPhy (const Ptr< NrSpectrumPhy > &spectrumPhy)
 Set the SpectrumPhy associated with this PHY. More...
 
void NotifyConnectionSuccessful ()
 Notify PHY about the successful RRC connection establishment.
 
void PushBackSlotAllocInfo (const SlotAllocInfo &slotAllocInfo)
 Store the slot allocation info. More...
 
void SendRachPreamble (uint32_t PreambleId, uint32_t Rnti)
 Send the RachPreamble. More...
 
void SetBwpId (uint16_t bwpId)
 Set the bwp id. Called by helper.
 
void SetDevice (Ptr< NrNetDevice > d)
 Set the owner device. More...
 
void SetMacPdu (const Ptr< Packet > &p, const SfnSf &sfn, uint8_t symStart, uint16_t rnti)
 Store a MAC PDU. More...
 
void SetNoiseFigure (double d)
 Set the NoiseFigure value. More...
 
void SetNumerology (uint16_t numerology)
 Set GNB or UE numerology. More...
 
void SetPowerAllocationType (enum NrSpectrumValueHelper::PowerAllocationType powerAllocationType)
 Set power allocation type. There are currently supported two types: one that distributes uniformly energy among all bandwidth (all RBs), and another only over used or active RBs. More...
 
void SetRbOverhead (double oh)
 Set the bandwidth overhead for calculating the usable RB number. More...
 
void SetSymbolsPerSlot (uint16_t symbolsPerSlot)
 Set the number of symbol per slot. More...
 
virtual void SetTbDecodeLatency (const Time &us)
 Configures TB decode latency. More...
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the object TypeId. More...
 
- Static Public Member Functions inherited from ns3::NrPhy
static std::string GetPattern (const std::vector< LteNrTddSlotType > &pattern)
 Get a string representation of a pattern. More...
 
static TypeId GetTypeId ()
 Get the TypeId of the Object. More...
 
static bool HasDlSlot (const std::vector< LteNrTddSlotType > &pattern)
 See if at least one slot is DL, F or S. More...
 
static bool HasUlSlot (const std::vector< LteNrTddSlotType > &pattern)
 See if at least one slot is UL, F or S. More...
 

Protected Member Functions

void DoDispose () override
 DoDispose method inherited from Object.
 
uint32_t GetNumRbPerRbg () const override
 Protected function that is used to get the number of resource blocks per resource block group. More...
 
- Protected Member Functions inherited from ns3::NrPhy
void DoDispose () override
 DoDispose method inherited from Object.
 
void DoUpdateRbNum ()
 Update the number of RB. Usually called after bandwidth changes.
 
void EnqueueCtrlMsgNow (const Ptr< NrControlMessage > &msg)
 Enqueue a CTRL message without considering L1L2CtrlLatency. More...
 
void EnqueueCtrlMsgNow (const std::list< Ptr< NrControlMessage >> &listOfMsgs)
 Enqueue a CTRL message without considering L1L2CtrlLatency. More...
 
std::vector< int > FromRBGBitmaskToRBAssignment (const std::vector< uint8_t > rbgBitmask) const
 Transform a MAC-made vector of RBG to a PHY-ready vector of SINR indices. More...
 
Ptr< SpectrumValue > GetNoisePowerSpectralDensity ()
 Create Noise Power Spectral density. More...
 
Ptr< PacketBurst > GetPacketBurst (SfnSf sf, uint8_t sym, uint16_t rnti)
 Retrieve the PacketBurst at the slot/symbol specified. More...
 
Ptr< SpectrumValue > GetTxPowerSpectralDensity (const std::vector< int > &rbIndexVector)
 
void InitializeMessageList ()
 Initialize the message list.
 
bool IsCtrlMsgListEmpty () const
 Check if there are no control messages queued for this slot. More...
 
SlotAllocInfoPeekSlotAllocInfo (const SfnSf &sfnsf)
 Peek the SlotAllocInfo at the SfnSf specified. More...
 
virtual std::list< Ptr< NrControlMessage > > PopCurrentSlotCtrlMsgs ()
 Extract and return the message list that is at the beginning of the queue. More...
 
void PushFrontSlotAllocInfo (const SfnSf &newSfnSf, const SlotAllocInfo &slotAllocInfo)
 Store the slot allocation info at the front. More...
 
SlotAllocInfo RetrieveSlotAllocInfo ()
 Get the head for the slot allocation info, and delete it from the internal list. More...
 
SlotAllocInfo RetrieveSlotAllocInfo (const SfnSf &sfnsf)
 Get the SlotAllocationInfo for the specified slot, and delete it from the internal list. More...
 
void SetChannelBandwidth (uint16_t bandwidth)
 Function to set the channel bandwidth, used also by child classes, i.e., see functions DoSetDlBanwidth in NrUePhy and DoSetBandwidth in NrGnbPhy. This function is also called by NrHelper when creating gNB and UE devices. See CreateGnbPhy and CreateUePhy in NrHelper. This function updates the number of RBs and thus the spectrum model, i.e., for noise PSD and for future transmissions. More...
 
bool SlotAllocInfoExists (const SfnSf &sfnsf) const
 Check if the SlotAllocationInfo for that slot exists. More...
 
size_t SlotAllocInfoSize () const
 Retrieve the size of the SlotAllocInfo list. More...
 

Friends

class MemberLteUeCphySapProvider< NrUePhy >
 
class UeMemberLteUePhySapProvider
 

Additional Inherited Members

- Static Protected Member Functions inherited from ns3::NrPhy
static bool IsTdd (const std::vector< LteNrTddSlotType > &pattern)
 Check if a pattern is TDD. More...
 
- Protected Attributes inherited from ns3::NrPhy
std::list< Ptr< NrControlMessage > > m_ctrlMsgs
 CTRL messages to be sent.
 
SlotAllocInfo m_currSlotAllocInfo
 Current slot allocation.
 
Ptr< NrNetDevicem_netDevice
 Pointer to the owner netDevice.
 
double m_noiseFigure {0.0}
 Noise figure (attribute)
 
std::unordered_map< uint64_t, Ptr< PacketBurst > > m_packetBurstMap
 Map between SfnSf and PacketBurst.
 
NrPhySapProviderm_phySapProvider
 Pointer to the MAC.
 
uint32_t m_raPreambleId {0}
 Preamble ID.
 
Ptr< NrSpectrumPhym_spectrumPhy
 Pointer to the (owned) spectrum phy.
 
std::vector< LteNrTddSlotTypem_tddPattern = {F, F, F, F, F, F, F, F, F, F}
 Pattern.
 
double m_txPower {0.0}
 Transmission power (attribute)
 

Detailed Description

The UE PHY class.

This class represents the PHY in the User Equipment. Much of the processing and scheduling is done inside the gNb, so the user is a mere "executor" of the decision of the base station.

The slot processing is the same as the gnb phy, working as a state machine in which the processing is done at the beginning of the slot.

Configuration

The attributes of this class (described in the section Attributes) can be configured through a direct call to SetAttribute or, before the PHY creation, with the helper method NrHelper::SetUePhyAttribute().

Attachment to a GNB

In theory, much of the configuration should pass through RRC, and through messages that come from the gNb. However, we still are not at this level, and we have to rely on direct calls to configure the same values between the gnb and the ue. At this moment, the call that the helper has to perform are in NrHelper::AttachToEnb().

To initialize the class, you must call also SetSpectrumPhy() and StartEventLoop(). Usually, this is taken care inside the helper.

See also
NrPhy::SetSpectrumPhy()
NrPhy::StartEventLoop()

Config Paths

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

  • /NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrUeNetDevice/ComponentCarrierMapUe/[i]/NrUePhy
  • /NodeList/[i]/DeviceList/[i]/$ns3::NrUeNetDevice/ComponentCarrierMapUe/[i]/NrUePhy

Attributes

  • TxPower: Transmission power in dBm
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 2
    • Flags: construct write read
  • 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: 5
    • Flags: construct write read
  • SpectrumPhy: The SpectrumPhy associated to this NrPhy
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::NrSpectrumPhy>
    • Flags: read
  • LBTThresholdForCtrl: After a DL/UL transmission, if we have less than this value to send the UL CTRL, we consider the channel as granted
    • Set with class: ns3::TimeValue
    • Underlying type: Time –9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +25000.0ns
    • Flags: construct write read
  • TbDecodeLatency: Transport block decode latency
    • Set with class: ns3::TimeValue
    • Underlying type: Time –9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +100000.0ns
    • Flags: construct write read

TraceSources

  • DlDataSinr: SINR statistics.
    Callback signature: ns3::DlDataSinr::TracedCallback
  • ReportUplinkTbSize: Report allocated uplink TB size for trace.
    Callback signature: ns3::UlTbSize::TracedCallback
  • ReportDownlinkTbSize: Report allocated downlink TB size for trace.
    Callback signature: ns3::DlTbSize::TracedCallback
  • UePhyRxedCtrlMsgsTrace: Ue PHY Control Messages Traces.
    Callback signature: ns3::NrPhyRxTrace::RxedUePhyCtrlMsgsTracedCallback
  • UePhyTxedCtrlMsgsTrace: Ue PHY Control Messages Traces.
    Callback signature: ns3::NrPhyRxTrace::TxedUePhyCtrlMsgsTracedCallback
  • UePhyRxedDlDciTrace: Ue PHY DL DCI Traces.
    Callback signature: ns3::NrPhyRxTrace::RxedUePhyDlDciTracedCallback
  • UePhyTxedHarqFeedbackTrace: Ue PHY DL HARQ Feedback Traces.
    Callback signature: ns3::NrPhyRxTrace::TxedUePhyHarqFeedbackTracedCallback

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

Definition at line 61 of file nr-ue-phy.h.

Member Typedef Documentation

◆ DlCtrlSinrTracedCallback

typedef void(* ns3::NrUePhy::DlCtrlSinrTracedCallback) (uint16_t, uint16_t, double, uint16_t)

TracedCallback signature for DL CTRL SINR trace callback

Parameters
[in]cellId
[in]rnti
[in]sinr
[in]bwpId

Definition at line 264 of file nr-ue-phy.h.

◆ DlDataSinrTracedCallback

typedef void(* ns3::NrUePhy::DlDataSinrTracedCallback) (uint16_t, uint16_t, double, uint16_t)

TracedCallback signature for DL DATA SINR trace callback

Parameters
[in]cellId
[in]rnti
[in]sinr
[in]bwpId

Definition at line 274 of file nr-ue-phy.h.

◆ PowerSpectralDensityTracedCallback

typedef void(* ns3::NrUePhy::PowerSpectralDensityTracedCallback) (const SfnSf &sfnSf, Ptr< const SpectrumValue > v, const Time &time, uint16_t rnti, uint64_t imsi, uint16_t bwpId, uint16_t cellId)

TracedCallback signature for power trace source.

It depends on the TxPower configured attribute, and the number of RB allocated.

Parameters
[in]sfnSfSlot number
[in]vPower Spectral Density
[in]timeTime for which this power is set
[in]rntiRNTI of the UE
[in]imsiIMSI of the UE
[in]bwpIdReference BWP ID
[in]cellIdReference Cell ID

Definition at line 423 of file nr-ue-phy.h.

◆ RxedUePhyCtrlMsgsTracedCallback

typedef void(* ns3::NrUePhy::RxedUePhyCtrlMsgsTracedCallback) (const SfnSf sfnSf, const uint16_t nodeId, const uint16_t rnti, const uint8_t bwpId, Ptr< NrControlMessage >)

TracedCallback signature for Ue Phy Received Control Messages.

Parameters
[in]frameFrame number.
[in]subframeSubframe number.
[in]slotnumber.
[in]VarTti
[in]nodeId
[in]rnti
[in]bwpId
[in]pointerto msg to get the msg type

Definition at line 288 of file nr-ue-phy.h.

◆ RxedUePhyDlDciTracedCallback

typedef void(* ns3::NrUePhy::RxedUePhyDlDciTracedCallback) (const SfnSf sfnSf, const uint16_t nodeId, const uint16_t rnti, const uint8_t bwpId, uint8_t harqId, uint32_t K1Delay)

TracedCallback signature for Ue Phy DL DCI reception.

Parameters
[in]frameFrame number.
[in]subframeSubframe number.
[in]slotnumber.
[in]VarTti
[in]nodeId
[in]rnti
[in]bwpId
[in]harqID
[in]K1Delay

Definition at line 325 of file nr-ue-phy.h.

◆ TxedUePhyCtrlMsgsTracedCallback

typedef void(* ns3::NrUePhy::TxedUePhyCtrlMsgsTracedCallback) (const SfnSf sfnSf, const uint16_t nodeId, const uint16_t rnti, const uint8_t bwpId, Ptr< NrControlMessage >)

TracedCallback signature for Ue Phy Transmitted Control Messages.

Parameters
[in]frameFrame number.
[in]subframeSubframe number.
[in]slotnumber.
[in]VarTti
[in]nodeId
[in]rnti
[in]bwpId
[in]pointerto msg to get the msg type

Definition at line 306 of file nr-ue-phy.h.

◆ TxedUePhyHarqFeedbackTracedCallback

typedef void(* ns3::NrUePhy::TxedUePhyHarqFeedbackTracedCallback) (const SfnSf sfnSf, const uint16_t nodeId, const uint16_t rnti, const uint8_t bwpId, uint8_t harqId, uint32_t K1Delay)

TracedCallback signature for Ue Phy DL HARQ Feedback transmission.

Parameters
[in]frameFrame number.
[in]subframeSubframe number.
[in]slotnumber.
[in]VarTti
[in]nodeId
[in]rnti
[in]bwpId
[in]harqID
[in]K1Delay

Definition at line 345 of file nr-ue-phy.h.

Member Function Documentation

◆ ComputeCqi()

uint8_t ns3::NrUePhy::ComputeCqi ( const SpectrumValue &  sinr)

Compute the CQI based on the SINR.

The function was implemented to assist mainly the NrSpectrumPhy class to include the CQI in RxPacketTraceUe trace.

Parameters
sinrthe sinr PSD
Returns
The CQI

Definition at line 1401 of file nr-ue-phy.cc.

◆ EnqueueDlHarqFeedback()

void ns3::NrUePhy::EnqueueDlHarqFeedback ( const DlHarqInfo m)

Get the HARQ feedback (on the transmission) from NrSpectrumPhy and send it through ideal PUCCH to gNB.

Connected by the helper to a spectrum phy callback

Parameters
mthe HARQ feedback

Definition at line 1156 of file nr-ue-phy.cc.

References ns3::NrPhy::GetBwpId(), ns3::NrPhy::GetSlotPeriod(), and ns3::HarqInfo::m_harqProcessId.

+ Here is the call graph for this function:

◆ GenerateDlCqiReport()

void ns3::NrUePhy::GenerateDlCqiReport ( const SpectrumValue &  sinr)

Generate a DL CQI report.

Connected by the helper to a callback in corresponding ChunkProcessor

Parameters
sinrthe SINR

Definition at line 1135 of file nr-ue-phy.cc.

References ns3::NrPhy::GetBwpId(), and ns3::NrPhy::GetCellId().

+ Here is the call graph for this function:

◆ GenerateDlCqiReportMimo()

void ns3::NrUePhy::GenerateDlCqiReportMimo ( const std::vector< MimoSignalChunk > &  mimoChunks)

Generate DL CQI, PMI, and RI (channel quality precoding matrix and rank indicators)

Parameters
mimoChunksa vector of parameters of the received signals and interference

Definition at line 1570 of file nr-ue-phy.cc.

References CheckUpdatePmi(), ns3::NrPhy::GetBwpId(), and ns3::DlCqiInfo::m_rnti.

+ Here is the call graph for this function:

◆ GetBeamId()

BeamId ns3::NrUePhy::GetBeamId ( uint16_t  rnti) const
overridevirtual

Get the beam id for the specified user.

Parameters
rntiRNTI
Returns
the BeamId associated to the specified RNTI

Implements ns3::NrPhy.

Definition at line 1245 of file nr-ue-phy.cc.

◆ GetCurrentSfnSf()

const SfnSf & ns3::NrUePhy::GetCurrentSfnSf ( ) const
overridevirtual

Get the current SfnSf.

Returns
the current SfnSf

Implements ns3::NrPhy.

Definition at line 1193 of file nr-ue-phy.cc.

◆ GetNumRbPerRbg()

uint32_t ns3::NrUePhy::GetNumRbPerRbg ( ) const
overrideprotectedvirtual

Protected function that is used to get the number of resource blocks per resource block group.

Returns
Returns the number of RBs per RBG

Implements ns3::NrPhy.

Definition at line 402 of file nr-ue-phy.cc.

◆ GetRnti()

uint16_t ns3::NrUePhy::GetRnti ( ) const

Get the current RNTI of the user.

Returns
the current RNTI of the user

Definition at line 1199 of file nr-ue-phy.cc.

◆ GetTxPower()

double ns3::NrUePhy::GetTxPower ( ) const
overridevirtual

Retrieve the TX power of the UE.

Please note that there is also an attribute ("NrGnbPhy::TxPower")

Returns
the TX power of the UE

Implements ns3::NrPhy.

Definition at line 240 of file nr-ue-phy.cc.

References ns3::NrPhy::m_txPower.

◆ GetTypeId()

TypeId ns3::NrUePhy::GetTypeId ( )
static

Get the object TypeId.

Returns
the object type id

Definition at line 77 of file nr-ue-phy.cc.

References ns3::NrPhy::GetNoiseFigure(), ns3::NrPhy::GetPowerAllocationType(), ns3::NrPhy::GetSpectrumPhy(), ns3::NrPhy::GetTbDecodeLatency(), ns3::NrPhy::m_txPower, ns3::NrPhy::SetNoiseFigure(), ns3::NrPhy::SetPowerAllocationType(), and ns3::NrPhy::SetTbDecodeLatency().

Referenced by ns3::NrHelper::NrHelper().

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

◆ GetUeCphySapProvider()

LteUeCphySapProvider * ns3::NrUePhy::GetUeCphySapProvider ( )

Retrieve the pointer for the C PHY SAP provider (AKA the PHY interface towards the RRC)

Returns
the C PHY SAP pointer

Definition at line 220 of file nr-ue-phy.cc.

◆ GetUplinkPowerControl()

Ptr< NrUePowerControl > ns3::NrUePhy::GetUplinkPowerControl ( ) const

Get LTE uplink power control entity.

Returns
ptr pointer to LTE uplink power control entity

Definition at line 252 of file nr-ue-phy.cc.

◆ PhyCtrlMessagesReceived()

void ns3::NrUePhy::PhyCtrlMessagesReceived ( const Ptr< NrControlMessage > &  msg)

◆ PhyDataPacketReceived()

void ns3::NrUePhy::PhyDataPacketReceived ( const Ptr< Packet > &  p)

Receive a PHY data packet.

Connected by the helper to a callback of the spectrum.

Parameters
pReceived packet

Definition at line 1081 of file nr-ue-phy.cc.

References ns3::NrPhy::GetTbDecodeLatency(), ns3::NrPhy::m_netDevice, and ns3::NrUePhySapUser::ReceivePhyPdu().

+ Here is the call graph for this function:

◆ ReceivePss()

void ns3::NrUePhy::ReceivePss ( uint16_t  cellId,
const Ptr< SpectrumValue > &  p 
)

Receive PSS and calculate RSRQ in dBm.

Parameters
cellIdthe cell ID
pPSS list

Definition at line 1280 of file nr-ue-phy.cc.

References ns3::NrPhy::GetNumerology().

+ Here is the call graph for this function:

◆ RegisterToEnb()

void ns3::NrUePhy::RegisterToEnb ( uint16_t  bwpId)

Register the UE to a certain Enb.

Install the configuration parameters in the UE.

Parameters
bwpIdthe bwp id to which this PHY is attaching to

Definition at line 344 of file nr-ue-phy.cc.

References ns3::NrPhy::DoSetCellId(), and ns3::NrPhy::InitializeMessageList().

+ Here is the call graph for this function:

◆ ReportDlCtrlSinr()

void ns3::NrUePhy::ReportDlCtrlSinr ( const SpectrumValue &  sinr)

Called when DlCtrlSinr is fired.

Parameters
sinrthe sinr PSD

Definition at line 1380 of file nr-ue-phy.cc.

References ns3::NrPhy::GetBwpId(), and ns3::NrPhy::GetCellId().

+ Here is the call graph for this function:

◆ ReportRsReceivedPower()

void ns3::NrUePhy::ReportRsReceivedPower ( const SpectrumValue &  power)

Called when rsReceivedPower is fired.

Parameters
powerthe power received

Definition at line 1266 of file nr-ue-phy.cc.

References ns3::NrPhy::GetCellId().

+ Here is the call graph for this function:

◆ ReportRsrpSinrTrace()

void ns3::NrUePhy::ReportRsrpSinrTrace ( const SpectrumValue &  sinr)

Report the SINR value in the RSRP and SINR trace. In OSS code, this functionality is piggy-backed onto GenerateDlCqiReport. The RSRP is unknown and reported as 0.0, like in OSS code.

Parameters
sinrthe SINR

◆ ScheduleStartEventLoop()

void ns3::NrUePhy::ScheduleStartEventLoop ( uint32_t  nodeId,
uint16_t  frame,
uint8_t  subframe,
uint16_t  slot 
)
overridevirtual

Start the ue Event Loop.

As parameters, there are the initial values for some variables.

Parameters
nodeIdthe UE nodeId
frameFrame
subframeSubF.
slotSlot

Implements ns3::NrPhy.

Definition at line 1253 of file nr-ue-phy.cc.

◆ SetCam()

void ns3::NrUePhy::SetCam ( const Ptr< NrChAccessManager > &  cam)

Set the channel access manager interface for this instance of the PHY.

Parameters
camthe pointer to the interface

Definition at line 1182 of file nr-ue-phy.cc.

◆ SetDlAmc()

void ns3::NrUePhy::SetDlAmc ( const Ptr< const NrAmc > &  amc)

Set the AMC pointer from the GNB.

Parameters
amcThe DL AMC of the GNB. This will be used to create the DL CQI that will be sent to the GNB.

This function will be soon deprecated, hopefully with some values that comes from RRC. For the moment, it is called by the helper at the registration time.

Definition at line 265 of file nr-ue-phy.cc.

◆ SetDlCtrlSyms()

void ns3::NrUePhy::SetDlCtrlSyms ( uint8_t  dlCtrlSyms)

Set the number of DL CTRL symbols.

Parameters
dlCtrlSymsvalue

This function will be soon deprecated, hopefully with a value that comes from RRC. For the moment, it is called by the helper at the registration time.

Definition at line 359 of file nr-ue-phy.cc.

◆ SetNumRbPerRbg()

void ns3::NrUePhy::SetNumRbPerRbg ( uint32_t  numRbPerRbg)

Function that sets the number of RBs per RBG. This function will be soon deprecated, as soon as all the functions at gNb PHY, MAC and UE PHY that work with DCI bitmask start to work on level of RBs instead of RBGs. This function is configured by helper.

Parameters
numRbPerRbgNumber of RBs per RBG

Definition at line 365 of file nr-ue-phy.cc.

◆ SetPattern()

void ns3::NrUePhy::SetPattern ( const std::string &  pattern)

Set the UE pattern.

Temporary.

Parameters
patternThe UE pattern

Definition at line 371 of file nr-ue-phy.cc.

References ns3::DL, ns3::F, ns3::NrPhy::m_tddPattern, ns3::S, and ns3::UL.

◆ SetPhySapUser()

void ns3::NrUePhy::SetPhySapUser ( NrUePhySapUser ptr)

Install the PHY sap user (AKA the UE MAC)

Parameters
ptrthe PHY SAP user pointer to install

Definition at line 1536 of file nr-ue-phy.cc.

◆ SetPmSearch()

void ns3::NrUePhy::SetPmSearch ( Ptr< NrPmSearch pmSearch)

Set the precoding matrix search engine.

Parameters
pmSearchthe PM search engine

Definition at line 1637 of file nr-ue-phy.cc.

◆ SetTxPower()

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

Set the transmission power for the UE.

Please note that there is also an attribute ("NrUePhy::TxPower")

Parameters
powpower

Definition at line 233 of file nr-ue-phy.cc.

References ns3::NrPhy::m_txPower.

◆ SetUeCphySapUser()

void ns3::NrUePhy::SetUeCphySapUser ( LteUeCphySapUser *  s)

Install ue C PHY SAP user (AKA the PHY interface towards the RRC)

Parameters
sthe C PHY SAP user pointer to install

Definition at line 213 of file nr-ue-phy.cc.

◆ SetUlCtrlSyms()

void ns3::NrUePhy::SetUlCtrlSyms ( uint8_t  ulCtrlSyms)

Set the number of UL CTRL symbols.

Parameters
ulCtrlSymsvalue

This function will be soon deprecated, hopefully with a value that comes from RRC. For the moment, it is called by the helper at the registration time.

Definition at line 353 of file nr-ue-phy.cc.

◆ SetUplinkPowerControl()

void ns3::NrUePhy::SetUplinkPowerControl ( Ptr< NrUePowerControl pc)

Allow configuration of uplink power control algorithm. E.g. necessary in FDD, when measurements are received in downlink BWP, but they are used in uplink BWP NOTE: This way of configuring is a temporal solution until BWP manager has this function implemented for UL PC, FFR, algorithm and similar algorithms, in which is needed to have a pair of DL and UL BWPs. In future this function will be called only by a friend class.

Parameters
pcPointer to NrUePowerControl

Definition at line 259 of file nr-ue-phy.cc.


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