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

LteEnbPhy models the physical layer for the eNodeB. More...

#include "lte-enb-phy.h"

+ Inheritance diagram for ns3::LteEnbPhy:
+ Collaboration diagram for ns3::LteEnbPhy:

Public Types

typedef void(* ReportInterferenceTracedCallback) (uint16_t cellId, Ptr< SpectrumValue > spectrumValue)
 TracedCallback signature for the linear average of SRS SINRs.
 
typedef void(* ReportUeSinrTracedCallback) (uint16_t cellId, uint16_t rnti, double sinrLinear, uint8_t componentCarrierId)
 TracedCallback signature for the linear average of SRS SINRs.
 

Public Member Functions

 LteEnbPhy ()
 
 LteEnbPhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy)
 
 ~LteEnbPhy () override
 
void CalcChannelQualityForUe (std::vector< double > sinr, Ptr< LteSpectrumPhy > ue)
 Calculate the channel quality for a given UE.
 
FfMacSchedSapProvider::SchedUlCqiInfoReqParameters CreatePuschCqiReport (const SpectrumValue &sinr)
 Create the UL CQI feedback from SINR values perceived at the physical layer with the PUSCH signal received from eNB.
 
FfMacSchedSapProvider::SchedUlCqiInfoReqParameters CreateSrsCqiReport (const SpectrumValue &sinr)
 Create the UL CQI feedback from SINR values perceived at the physical layer with the SRS signal received from eNB.
 
Ptr< SpectrumValueCreateTxPowerSpectralDensity () override
 Create the PSD for TX.
 
virtual Ptr< SpectrumValueCreateTxPowerSpectralDensityWithPowerAllocation ()
 Create the PSD for TX with power allocation for each RB.
 
std::list< UlDciLteControlMessageDequeueUlDci ()
 
void DoDispose () override
 Destructor implementation.
 
int8_t DoGetReferenceSignalPower () const
 
void DoInitialize () override
 Initialize() implementation.
 
void EndFrame ()
 End a LTE frame.
 
void EndSubFrame ()
 End a LTE sub frame.
 
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)
 
void GeneratePowerAllocationMap (uint16_t rnti, int rbId)
 Generate power allocation map (i.e.
 
Ptr< LteSpectrumPhyGetDlSpectrumPhy () const
 
std::vector< int > GetDownlinkSubChannels ()
 
LteEnbCphySapProviderGetLteEnbCphySapProvider ()
 Get the CPHY SAP provider.
 
LteEnbPhySapProviderGetLteEnbPhySapProvider ()
 Get the PHY SAP provider.
 
uint8_t GetMacChDelay () const
 
double GetNoiseFigure () const
 
double GetTxPower () const
 
Ptr< LteSpectrumPhyGetUlSpectrumPhy () const
 
void PhyPduReceived (Ptr< Packet > p)
 PhySpectrum received a new PHY-PDU.
 
void QueueUlDci (UlDciLteControlMessage m)
 
virtual void ReceiveLteControlMessage (Ptr< LteControlMessage > msg)
 Receive the control message.
 
virtual void ReceiveLteControlMessageList (std::list< Ptr< LteControlMessage > > msgList)
 PhySpectrum received a new list of LteControlMessage.
 
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
 
virtual void ReportUlHarqFeedback (UlInfoListElement_s mes)
 Report the uplink HARQ feedback generated by LteSpectrumPhy to MAC.
 
void SendControlChannels (std::list< Ptr< LteControlMessage > > ctrlMsgList)
 Send the PDCCH and PCFICH in the first 3 symbols.
 
void SendDataChannels (Ptr< PacketBurst > pb)
 Send the PDSCH.
 
void SetDownlinkSubChannels (std::vector< int > mask)
 set the resource blocks (a.k.a.
 
void SetDownlinkSubChannelsWithPowerAllocation (std::vector< int > mask)
 set the resource blocks (a.k.a.
 
void SetHarqPhyModule (Ptr< LteHarqPhy > harq)
 Set the HARQ Phy module.
 
void SetLteEnbCphySapUser (LteEnbCphySapUser *s)
 Set the CPHY SAP User.
 
void SetLteEnbPhySapUser (LteEnbPhySapUser *s)
 Set the PHY SAP User.
 
void SetMacChDelay (uint8_t delay)
 
void SetNoiseFigure (double pow)
 
void SetTxPower (double pow)
 
void StartFrame ()
 Start a LTE frame.
 
void StartSubFrame ()
 Start a LTE sub frame.
 
- Public Member Functions inherited from ns3::LtePhy
 LtePhy ()
 
 LtePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy)
 
 ~LtePhy () override
 
void DoDispose () override
 Destructor implementation.
 
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

bool AddUePhy (uint16_t rnti)
 Add the given RNTI to the list of attached UE m_ueAttached.
 
void CreateSrsReport (uint16_t rnti, double srs)
 Create SRS report function.
 
bool DeleteUePhy (uint16_t rnti)
 Remove the given RNTI from the list of attached UE m_ueAttached.
 
void DoAddUe (uint16_t rnti)
 Add UE.
 
uint8_t DoGetMacChTtiDelay ()
 Get MAC ch TTI delay function.
 
void DoRemoveUe (uint16_t rnti)
 Remove UE.
 
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)
 
void DoSetBandwidth (uint16_t ulBandwidth, uint16_t dlBandwidth)
 Set bandwidth function.
 
void DoSetEarfcn (uint32_t dlEarfcn, uint32_t ulEarfcn)
 Set EARFCN.
 
void DoSetMasterInformationBlock (LteRrcSap::MasterInformationBlock mib)
 Set master information block.
 
void DoSetPa (uint16_t rnti, double pa)
 Set PA.
 
void DoSetSrsConfigurationIndex (uint16_t rnti, uint16_t srcCi)
 Set source configuration index.
 
void DoSetSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 sib1)
 Set system information block.
 
void DoSetTransmissionMode (uint16_t rnti, uint8_t txMode)
 Set transmission mode.
 

Private Attributes

uint16_t m_currentSrsOffset
 current SRS offset
 
std::vector< int > m_dlDataRbMap
 DL data RB map.
 
TracedCallback< PhyTransmissionStatParametersm_dlPhyTransmission
 The DlPhyTransmission trace source.
 
std::map< int, doublem_dlPowerAllocationMap
 DL power allocation map.
 
LteEnbCphySapProviderm_enbCphySapProvider
 ENB CPhy SAP provider.
 
LteEnbCphySapUserm_enbCphySapUser
 ENB CPhy SAP user.
 
LteEnbPhySapProviderm_enbPhySapProvider
 ENB Phy SAP provider.
 
LteEnbPhySapUserm_enbPhySapUser
 ENB Phy SAP user.
 
Ptr< LteHarqPhym_harqPhyModule
 HARQ Phy module.
 
uint16_t m_interferenceSampleCounter
 interference sample counter
 
uint16_t m_interferenceSamplePeriod
 The InterferenceSamplePeriod attribute.
 
std::vector< int > m_listOfDownlinkSubchannel
 A vector of integers, if the i-th value is j it means that the j-th resource block is used for transmission in the downlink.
 
LteRrcSap::MasterInformationBlock m_mib
 The Master Information Block message to be broadcasted every frame.
 
uint32_t m_nrFrames
 The frame number currently served.
 
uint32_t m_nrSubFrames
 The subframe number currently served.
 
std::map< uint16_t, doublem_paMap
 P_A per UE RNTI.
 
TracedCallback< uint16_t, Ptr< SpectrumValue > > m_reportInterferenceTrace
 The ReportInterference trace source.
 
TracedCallback< uint16_t, uint16_t, double, uint8_t > m_reportUeSinr
 The ReportUeSinr trace source.
 
LteRrcSap::SystemInformationBlockType1 m_sib1
 The System Information Block Type 1 message to be broadcasted.
 
std::map< uint16_t, uint16_t > m_srsCounter
 SRS counter.
 
uint16_t m_srsPeriodicity
 SRS periodicity.
 
std::map< uint16_t, uint16_t > m_srsSampleCounterMap
 SRS sample counter map.
 
uint16_t m_srsSamplePeriod
 The UeSinrSamplePeriod trace source.
 
Time m_srsStartTime
 SRS start time.
 
std::vector< uint16_t > m_srsUeOffset
 SRS UE offset.
 
std::set< uint16_t > m_ueAttached
 List of RNTI of attached UEs.
 
std::vector< std::list< UlDciLteControlMessage > > m_ulDciQueue
 For storing info on future receptions.
 

Friends

class EnbMemberLteEnbPhySapProvider
 allow EnbMemberLteEnbPhySapProvider class friend access
 
class MemberLteEnbCphySapProvider< LteEnbPhy >
 allow MemberLteEnbCphySapProvider<LteEnbPhy> 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

LteEnbPhy models the physical layer for the eNodeB.

Config Paths

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

  • "/NodeList/[i]/DeviceList/[i]/$ns3::LteEnbNetDevice/ComponentCarrierMap/[i]/LteEnbPhy"
  • "/NodeList/[i]/DeviceList/[i]/$ns3::LteNetDevice/$ns3::LteEnbNetDevice/ComponentCarrierMap/[i]/LteEnbPhy"

Attributes

  • DlSpectrumPhy: The downlink LteSpectrumPhy associated to this LtePhy
  • InterferenceSamplePeriod: The sampling period for reporting interference stats
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 1
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • MacToChannelDelay: The delay in TTI units that occurs between a scheduling decision in the MAC and the actual start of the transmission by the PHY. This is intended to be used to model the latency of real PHY and MAC implementations.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 0:255
    • Initial value: 2
    • 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: 5
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • TxPower: Transmission power in dBm
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 30
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • UeSinrSamplePeriod: The sampling period for reporting UEs' SINR stats.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 1
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • UlSpectrumPhy: The uplink LteSpectrumPhy associated to this LtePhy

TraceSources

Group: Lte

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

Definition at line 33 of file lte-enb-phy.h.

Member Typedef Documentation

◆ ReportInterferenceTracedCallback

typedef void(* ns3::LteEnbPhy::ReportInterferenceTracedCallback) (uint16_t cellId, Ptr< SpectrumValue > spectrumValue)

TracedCallback signature for the linear average of SRS SINRs.

Parameters
[in]cellId
[in]spectrumValue
Deprecated
The non-const Ptr<SpectrumValue> argument is deprecated and will be changed to Ptr<const SpectrumValue> in a future release.

Definition at line 307 of file lte-enb-phy.h.

◆ ReportUeSinrTracedCallback

typedef void(* ns3::LteEnbPhy::ReportUeSinrTracedCallback) (uint16_t cellId, uint16_t rnti, double sinrLinear, uint8_t componentCarrierId)

TracedCallback signature for the linear average of SRS SINRs.

Parameters
[in]cellId
[in]rnti
[in]sinrLinear

Definition at line 293 of file lte-enb-phy.h.

Constructor & Destructor Documentation

◆ LteEnbPhy() [1/2]

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

Definition at line 130 of file lte-enb-phy.cc.

References NS_FATAL_ERROR, and NS_LOG_FUNCTION.

◆ LteEnbPhy() [2/2]

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

Definition at line 136 of file lte-enb-phy.cc.

References ns3::Create(), EnbMemberLteEnbPhySapProvider, ns3::LtePhy::m_downlinkSpectrumPhy, m_enbCphySapProvider, m_enbPhySapProvider, m_harqPhyModule, ns3::LtePhy::m_uplinkSpectrumPhy, and MemberLteEnbCphySapProvider< LteEnbPhy >.

+ Here is the call graph for this function:

◆ ~LteEnbPhy()

ns3::LteEnbPhy::~LteEnbPhy ( )
override

Definition at line 228 of file lte-enb-phy.cc.

Member Function Documentation

◆ AddUePhy()

bool ns3::LteEnbPhy::AddUePhy ( uint16_t rnti)
private

Add the given RNTI to the list of attached UE m_ueAttached.

Parameters
rntiRNTI of a UE
Returns
true if the RNTI has not existed before, or false otherwise.

Definition at line 367 of file lte-enb-phy.cc.

References m_ueAttached, NS_LOG_ERROR, and NS_LOG_FUNCTION.

Referenced by DoAddUe().

+ Here is the caller graph for this function:

◆ CalcChannelQualityForUe()

void ns3::LteEnbPhy::CalcChannelQualityForUe ( std::vector< double > sinr,
Ptr< LteSpectrumPhy > ue )

Calculate the channel quality for a given UE.

Parameters
sinra list of computed SINR
uethe UE

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

References NS_LOG_FUNCTION.

◆ CreatePuschCqiReport()

FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ns3::LteEnbPhy::CreatePuschCqiReport ( const SpectrumValue & sinr)

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

Parameters
sinrSINR values vector
Returns
UL CQI feedback in the format usable by an FF MAC scheduler

Definition at line 850 of file lte-enb-phy.cc.

References ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), ns3::LteFfConverter::double2fpS11dot3(), ns3::UlCqi_s::m_sinr, ns3::FfMacSchedSapProvider::SchedUlCqiInfoReqParameters::m_ulCqi, NS_LOG_FUNCTION, and ns3::UlCqi_s::PUSCH.

Referenced by GenerateDataCqiReport().

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

◆ CreateSrsCqiReport()

FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ns3::LteEnbPhy::CreateSrsCqiReport ( const SpectrumValue & sinr)

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

Parameters
sinrSINR values vector
Returns
UL CQI feedback in the format usable by an FF MAC scheduler

Definition at line 995 of file lte-enb-phy.cc.

References ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), ns3::Create(), CreateSrsReport(), ns3::LteFfConverter::double2fpS11dot3(), m_currentSrsOffset, ns3::VendorSpecificListElement_s::m_length, ns3::UlCqi_s::m_sinr, m_srsUeOffset, ns3::VendorSpecificListElement_s::m_type, ns3::FfMacSchedSapProvider::SchedUlCqiInfoReqParameters::m_ulCqi, ns3::VendorSpecificListElement_s::m_value, ns3::FfMacSchedSapProvider::SchedUlCqiInfoReqParameters::m_vendorSpecificList, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::UlCqi_s::SRS, and SRS_CQI_RNTI_VSP.

Referenced by GenerateCtrlCqiReport().

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

◆ CreateSrsReport()

void ns3::LteEnbPhy::CreateSrsReport ( uint16_t rnti,
double srs )
private

Create SRS report function.

Parameters
rntithe RNTI
srsthe SRS

Definition at line 1026 of file lte-enb-phy.cc.

References ns3::LtePhy::m_cellId, ns3::LtePhy::m_componentCarrierId, m_reportUeSinr, m_srsSampleCounterMap, m_srsSamplePeriod, and NS_LOG_FUNCTION.

Referenced by CreateSrsCqiReport().

+ Here is the caller graph for this function:

◆ CreateTxPowerSpectralDensity()

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

Create the PSD for TX.

Returns
the PSD

Implements ns3::LtePhy.

Definition at line 461 of file lte-enb-phy.cc.

References ns3::LteSpectrumValueHelper::CreateTxPowerSpectralDensity(), GetDownlinkSubChannels(), ns3::LtePhy::m_dlBandwidth, ns3::LtePhy::m_dlEarfcn, ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.

Referenced by SetDownlinkSubChannels().

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

◆ CreateTxPowerSpectralDensityWithPowerAllocation()

Ptr< SpectrumValue > ns3::LteEnbPhy::CreateTxPowerSpectralDensityWithPowerAllocation ( )
virtual

Create the PSD for TX with power allocation for each RB.

Returns
the PSD

Definition at line 475 of file lte-enb-phy.cc.

References ns3::LteSpectrumValueHelper::CreateTxPowerSpectralDensity(), GetDownlinkSubChannels(), ns3::LtePhy::m_dlBandwidth, ns3::LtePhy::m_dlEarfcn, m_dlPowerAllocationMap, ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.

Referenced by SetDownlinkSubChannelsWithPowerAllocation().

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

◆ DeleteUePhy()

bool ns3::LteEnbPhy::DeleteUePhy ( uint16_t rnti)
private

Remove the given RNTI from the list of attached UE m_ueAttached.

Parameters
rntiRNTI of a UE
Returns
true if the RNTI has existed before, or false otherwise.

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

References m_ueAttached, NS_LOG_ERROR, and NS_LOG_FUNCTION.

Referenced by DoRemoveUe().

+ Here is the caller graph for this function:

◆ DequeueUlDci()

std::list< UlDciLteControlMessage > ns3::LteEnbPhy::DequeueUlDci ( )
Returns
the list of UL-CQI to be processed

Definition at line 1059 of file lte-enb-phy.cc.

References m_ulDciQueue, and NS_LOG_FUNCTION.

Referenced by StartSubFrame().

+ Here is the caller graph for this function:

◆ DoAddUe()

void ns3::LteEnbPhy::DoAddUe ( uint16_t rnti)
private

Add UE.

Parameters
rntiRNTI

Definition at line 898 of file lte-enb-phy.cc.

References AddUePhy(), DoSetPa(), NS_ASSERT_MSG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ DoDispose()

void ns3::LteEnbPhy::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::Object.

Definition at line 233 of file lte-enb-phy.cc.

References ns3::LtePhy::DoDispose(), m_enbCphySapProvider, m_enbPhySapProvider, m_srsUeOffset, m_ueAttached, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ DoGetMacChTtiDelay()

uint8_t ns3::LteEnbPhy::DoGetMacChTtiDelay ( )
private

Get MAC ch TTI delay function.

Returns
delay value

Definition at line 408 of file lte-enb-phy.cc.

References ns3::LtePhy::m_macChTtiDelay.

Referenced by ns3::EnbMemberLteEnbPhySapProvider::GetMacChTtiDelay().

+ Here is the caller graph for this function:

◆ DoGetReferenceSignalPower()

int8_t ns3::LteEnbPhy::DoGetReferenceSignalPower ( ) const
Returns
the transmission power in dBm

Definition at line 307 of file lte-enb-phy.cc.

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

◆ DoInitialize()

void ns3::LteEnbPhy::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 244 of file lte-enb-phy.cc.

References ns3::LteSpectrumValueHelper::CreateNoisePowerSpectralDensity(), ns3::Object::DoInitialize(), ns3::LtePhy::m_netDevice, ns3::LtePhy::m_noiseFigure, ns3::LtePhy::m_ulBandwidth, ns3::LtePhy::m_ulEarfcn, ns3::LtePhy::m_uplinkSpectrumPhy, NS_ABORT_MSG_IF, NS_LOG_FUNCTION, ns3::Simulator::ScheduleWithContext(), ns3::Seconds(), and StartFrame().

+ Here is the call graph for this function:

◆ DoRemoveUe()

void ns3::LteEnbPhy::DoRemoveUe ( uint16_t rnti)
private

Remove UE.

Parameters
rntiRNTI

Definition at line 910 of file lte-enb-phy.cc.

References DeleteUePhy(), ns3::LteControlMessage::DL_DCI, ns3::DynamicCast(), ns3::LtePhy::m_cellId, ns3::LtePhy::m_controlMessagesQueue, m_paMap, m_srsSampleCounterMap, ns3::LtePhy::m_uplinkSpectrumPhy, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, and ns3::LteControlMessage::UL_DCI.

+ Here is the call graph for this function:

◆ DoSendLteControlMessage()

void ns3::LteEnbPhy::DoSendLteControlMessage ( Ptr< LteControlMessage > msg)
private

Send LTE Control Message function.

Parameters
msgLTE control message

Definition at line 496 of file lte-enb-phy.cc.

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

Referenced by ns3::EnbMemberLteEnbPhySapProvider::SendLteControlMessage().

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

◆ DoSendMacPdu()

void ns3::LteEnbPhy::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 401 of file lte-enb-phy.cc.

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

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

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

◆ DoSetBandwidth()

void ns3::LteEnbPhy::DoSetBandwidth ( uint16_t ulBandwidth,
uint16_t dlBandwidth )
private

Set bandwidth function.

Parameters
ulBandwidthUL bandwidth
dlBandwidthDL bandwidth

Definition at line 867 of file lte-enb-phy.cc.

References ns3::LtePhy::m_dlBandwidth, ns3::LtePhy::m_rbgSize, ns3::LtePhy::m_ulBandwidth, NS_LOG_FUNCTION, and ns3::Type0AllocationRbg.

Referenced by ns3::EnbMemberLteEnbPhySapProvider::SetBandwidth().

+ Here is the caller graph for this function:

◆ DoSetEarfcn()

void ns3::LteEnbPhy::DoSetEarfcn ( uint32_t dlEarfcn,
uint32_t ulEarfcn )
private

Set EARFCN.

Parameters
dlEarfcnDL EARFCN
ulEarfcnUL EARFCN

Definition at line 890 of file lte-enb-phy.cc.

References ns3::LtePhy::m_dlEarfcn, ns3::LtePhy::m_ulEarfcn, and NS_LOG_FUNCTION.

◆ DoSetMasterInformationBlock()

void ns3::LteEnbPhy::DoSetMasterInformationBlock ( LteRrcSap::MasterInformationBlock mib)
private

Set master information block.

Parameters
mibLteRrcSap::MasterInformationBlock

Definition at line 1113 of file lte-enb-phy.cc.

References m_mib, and NS_LOG_FUNCTION.

◆ DoSetPa()

void ns3::LteEnbPhy::DoSetPa ( uint16_t rnti,
double pa )
private

Set PA.

Parameters
rntiRNTI
paPA

Definition at line 978 of file lte-enb-phy.cc.

References m_paMap, and NS_LOG_FUNCTION.

Referenced by DoAddUe().

+ Here is the caller graph for this function:

◆ DoSetSrsConfigurationIndex()

void ns3::LteEnbPhy::DoSetSrsConfigurationIndex ( uint16_t rnti,
uint16_t srcCi )
private

Set source configuration index.

Parameters
rntiRNTI
srcCisource configuration index

Definition at line 1081 of file lte-enb-phy.cc.

References ns3::LtePhy::GetSrsPeriodicity(), ns3::LtePhy::GetSrsSubframeOffset(), ns3::LtePhy::m_macChTtiDelay, m_srsCounter, m_srsPeriodicity, m_srsStartTime, m_srsUeOffset, ns3::MilliSeconds(), ns3::Simulator::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ DoSetSystemInformationBlockType1()

void ns3::LteEnbPhy::DoSetSystemInformationBlockType1 ( LteRrcSap::SystemInformationBlockType1 sib1)
private

Set system information block.

Parameters
sib1LteRrcSap::SystemInformationBlockType1

Definition at line 1120 of file lte-enb-phy.cc.

References m_sib1, and NS_LOG_FUNCTION.

◆ DoSetTransmissionMode()

void ns3::LteEnbPhy::DoSetTransmissionMode ( uint16_t rnti,
uint8_t txMode )
private

Set transmission mode.

Parameters
rntiRNTI
txModetransmit mode

Definition at line 1045 of file lte-enb-phy.cc.

References NS_LOG_FUNCTION.

◆ EndFrame()

void ns3::LteEnbPhy::EndFrame ( )

End a LTE frame.

Definition at line 804 of file lte-enb-phy.cc.

References ns3::Simulator::Now(), NS_LOG_FUNCTION, ns3::Time::S, ns3::Simulator::ScheduleNow(), and StartFrame().

Referenced by EndSubFrame().

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

◆ EndSubFrame()

void ns3::LteEnbPhy::EndSubFrame ( )

End a LTE sub frame.

Definition at line 790 of file lte-enb-phy.cc.

References EndFrame(), m_nrSubFrames, ns3::Simulator::Now(), NS_LOG_FUNCTION, ns3::Time::S, ns3::Simulator::ScheduleNow(), and StartSubFrame().

Referenced by StartSubFrame().

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

◆ GenerateCtrlCqiReport()

void ns3::LteEnbPhy::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

Implements ns3::LtePhy.

Definition at line 811 of file lte-enb-phy.cc.

References CreateSrsCqiReport(), m_enbPhySapUser, m_srsStartTime, ns3::Simulator::Now(), NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::UlCqiReport().

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

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

◆ GenerateDataCqiReport()

void ns3::LteEnbPhy::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 823 of file lte-enb-phy.cc.

References CreatePuschCqiReport(), m_enbPhySapUser, NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::UlCqiReport().

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

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

◆ GeneratePowerAllocationMap()

void ns3::LteEnbPhy::GeneratePowerAllocationMap ( uint16_t rnti,
int rbId )

Generate power allocation map (i.e.

tx power level for each RB)

Parameters
rntiindicates which UE will occupy this RB
rbIdindicates which RB UE is using, power level for this RB is power level of UE

Definition at line 446 of file lte-enb-phy.cc.

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

Referenced by StartSubFrame().

+ Here is the caller graph for this function:

◆ GetDlSpectrumPhy()

Ptr< LteSpectrumPhy > ns3::LteEnbPhy::GetDlSpectrumPhy ( ) const
Returns
a pointer to the LteSpectrumPhy instance relative to the downlink

Definition at line 355 of file lte-enb-phy.cc.

References ns3::LtePhy::m_downlinkSpectrumPhy.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetDownlinkSubChannels()

std::vector< int > ns3::LteEnbPhy::GetDownlinkSubChannels ( )
Returns
a vector of integers, if the i-th value is j it means that the j-th resource block is used for transmission in the downlink. If there is no i such that the value of the i-th element is j, it means that RB j is not used.

Definition at line 439 of file lte-enb-phy.cc.

References m_listOfDownlinkSubchannel, and NS_LOG_FUNCTION.

Referenced by CreateTxPowerSpectralDensity(), and CreateTxPowerSpectralDensityWithPowerAllocation().

+ Here is the caller graph for this function:

◆ GetLteEnbCphySapProvider()

LteEnbCphySapProvider * ns3::LteEnbPhy::GetLteEnbCphySapProvider ( )

Get the CPHY SAP provider.

Returns
a pointer to the SAP Provider

Definition at line 286 of file lte-enb-phy.cc.

References m_enbCphySapProvider, and NS_LOG_FUNCTION.

◆ GetLteEnbPhySapProvider()

LteEnbPhySapProvider * ns3::LteEnbPhy::GetLteEnbPhySapProvider ( )

Get the PHY SAP provider.

Returns
a pointer to the SAP Provider of the PHY

Definition at line 273 of file lte-enb-phy.cc.

References m_enbPhySapProvider.

◆ GetMacChDelay()

uint8_t ns3::LteEnbPhy::GetMacChDelay ( ) const
Returns
the TTI delay between MAC and channel

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

References ns3::LtePhy::m_macChTtiDelay.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetNoiseFigure()

double ns3::LteEnbPhy::GetNoiseFigure ( ) const
Returns
the noise figure in dB

Definition at line 321 of file lte-enb-phy.cc.

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

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetTxPower()

double ns3::LteEnbPhy::GetTxPower ( ) const
Returns
the transmission power in dBm

Definition at line 300 of file lte-enb-phy.cc.

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

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetTypeId()

TypeId ns3::LteEnbPhy::GetTypeId ( )
static

◆ GetUlSpectrumPhy()

Ptr< LteSpectrumPhy > ns3::LteEnbPhy::GetUlSpectrumPhy ( ) const
Returns
a pointer to the LteSpectrumPhy instance relative to the uplink

Definition at line 361 of file lte-enb-phy.cc.

References ns3::LtePhy::m_uplinkSpectrumPhy.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ PhyPduReceived()

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

PhySpectrum received a new PHY-PDU.

Parameters
pthe packet received

Definition at line 414 of file lte-enb-phy.cc.

References m_enbPhySapUser, NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::ReceivePhyPdu().

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

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

◆ QueueUlDci()

void ns3::LteEnbPhy::QueueUlDci ( UlDciLteControlMessage m)
Parameters
mthe UL-CQI to be queued

Definition at line 1052 of file lte-enb-phy.cc.

References m_ulDciQueue, NS_LOG_FUNCTION, and UL_PUSCH_TTIS_DELAY.

Referenced by StartSubFrame().

+ Here is the caller graph for this function:

◆ ReceiveLteControlMessage()

void ns3::LteEnbPhy::ReceiveLteControlMessage ( Ptr< LteControlMessage > msg)
virtual

Receive the control message.

Parameters
msgthe received message

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

References m_enbPhySapUser, NS_FATAL_ERROR, NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::ReceiveLteControlMessage().

+ Here is the call graph for this function:

◆ ReceiveLteControlMessageList()

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

PhySpectrum received a new list of LteControlMessage.

Parameters
msgListList of control messages

Definition at line 512 of file lte-enb-phy.cc.

References ns3::LteControlMessage::BSR, ns3::LteControlMessage::DL_CQI, ns3::LteControlMessage::DL_HARQ, ns3::DynamicCast(), m_enbPhySapUser, ns3::CqiListElement_s::m_rnti, ns3::DlInfoListElement_s::m_rnti, ns3::MacCeListElement_s::m_rnti, m_ueAttached, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::LteControlMessage::RACH_PREAMBLE, ns3::LteEnbPhySapUser::ReceiveLteControlMessage(), and ns3::LteEnbPhySapUser::ReceiveRachPreamble().

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

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

◆ ReportInterference()

void ns3::LteEnbPhy::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 831 of file lte-enb-phy.cc.

References ns3::Create(), ns3::LtePhy::m_cellId, m_interferenceSampleCounter, m_interferenceSamplePeriod, m_reportInterferenceTrace, and NS_LOG_FUNCTION.

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

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

◆ ReportRsReceivedPower()

void ns3::LteEnbPhy::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 844 of file lte-enb-phy.cc.

◆ ReportUlHarqFeedback()

void ns3::LteEnbPhy::ReportUlHarqFeedback ( UlInfoListElement_s mes)
virtual

Report the uplink HARQ feedback generated by LteSpectrumPhy to MAC.

Parameters
mesUlInfoListElement_s

Definition at line 1133 of file lte-enb-phy.cc.

References m_enbPhySapUser, NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::UlInfoListElementHarqFeedback().

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

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

◆ SendControlChannels()

void ns3::LteEnbPhy::SendControlChannels ( std::list< Ptr< LteControlMessage > > ctrlMsgList)

Send the PDCCH and PCFICH in the first 3 symbols.

Parameters
ctrlMsgListthe list of control messages of PDCCH

Definition at line 758 of file lte-enb-phy.cc.

References ns3::LtePhy::m_cellId, ns3::LtePhy::m_dlBandwidth, ns3::LtePhy::m_downlinkSpectrumPhy, m_nrSubFrames, NS_LOG_FUNCTION, NS_LOG_LOGIC, and SetDownlinkSubChannels().

Referenced by StartSubFrame().

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

◆ SendDataChannels()

void ns3::LteEnbPhy::SendDataChannels ( Ptr< PacketBurst > pb)

Send the PDSCH.

Parameters
pbthe PacketBurst to be sent

Definition at line 778 of file lte-enb-phy.cc.

References ns3::DL_DATA_DURATION, m_dlDataRbMap, ns3::LtePhy::m_downlinkSpectrumPhy, NS_LOG_LOGIC, and SetDownlinkSubChannelsWithPowerAllocation().

Referenced by StartSubFrame().

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

◆ SetDownlinkSubChannels()

void ns3::LteEnbPhy::SetDownlinkSubChannels ( std::vector< int > mask)

set the resource blocks (a.k.a.

sub channels) to be used in the downlink for transmission

Parameters
maska vector of integers, if the i-th value is j it means that the j-th resource block is used for transmission in the downlink. If there is no i such that the value of the i-th element is j, it means that RB j is not used.

Definition at line 421 of file lte-enb-phy.cc.

References CreateTxPowerSpectralDensity(), ns3::LtePhy::m_downlinkSpectrumPhy, m_listOfDownlinkSubchannel, and NS_LOG_FUNCTION.

Referenced by SendControlChannels().

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

◆ SetDownlinkSubChannelsWithPowerAllocation()

void ns3::LteEnbPhy::SetDownlinkSubChannelsWithPowerAllocation ( std::vector< int > mask)

set the resource blocks (a.k.a.

sub channels) and its power to be used in the downlink for transmission

Parameters
maska vector of integers, if the i-th value is j it means that the j-th resource block is used for transmission in the downlink. If there is no i such that the value of the i-th element is j, it means that RB j is not used.

Definition at line 430 of file lte-enb-phy.cc.

References CreateTxPowerSpectralDensityWithPowerAllocation(), ns3::LtePhy::m_downlinkSpectrumPhy, m_listOfDownlinkSubchannel, and NS_LOG_FUNCTION.

Referenced by SendDataChannels().

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

◆ SetHarqPhyModule()

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

Set the HARQ Phy module.

Parameters
harqthe HARQ Phy

Definition at line 1127 of file lte-enb-phy.cc.

References m_harqPhyModule.

◆ SetLteEnbCphySapUser()

void ns3::LteEnbPhy::SetLteEnbCphySapUser ( LteEnbCphySapUser * s)

Set the CPHY SAP User.

Parameters
sa pointer to the SAP user

Definition at line 279 of file lte-enb-phy.cc.

References m_enbCphySapUser, and NS_LOG_FUNCTION.

◆ SetLteEnbPhySapUser()

void ns3::LteEnbPhy::SetLteEnbPhySapUser ( LteEnbPhySapUser * s)

Set the PHY SAP User.

Parameters
sa pointer to the PHY SAP user

Definition at line 267 of file lte-enb-phy.cc.

References m_enbPhySapUser.

◆ SetMacChDelay()

void ns3::LteEnbPhy::SetMacChDelay ( uint8_t delay)
Parameters
delaythe TTI delay between MAC and channel

Definition at line 328 of file lte-enb-phy.cc.

References ns3::CreateObject(), ns3::LtePhy::m_controlMessagesQueue, ns3::LtePhy::m_macChTtiDelay, ns3::LtePhy::m_packetBurstQueue, m_ulDciQueue, NS_LOG_FUNCTION, and UL_PUSCH_TTIS_DELAY.

Referenced by GetTypeId().

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

◆ SetNoiseFigure()

void ns3::LteEnbPhy::SetNoiseFigure ( double pow)
Parameters
powthe noise figure in dB

Definition at line 314 of file lte-enb-phy.cc.

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

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetTxPower()

void ns3::LteEnbPhy::SetTxPower ( double pow)
Parameters
powthe transmission power in dBm

Definition at line 293 of file lte-enb-phy.cc.

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

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ StartFrame()

void ns3::LteEnbPhy::StartFrame ( )

Start a LTE frame.

Definition at line 564 of file lte-enb-phy.cc.

References ns3::Create(), ns3::LtePhy::m_controlMessagesQueue, m_mib, m_nrFrames, m_nrSubFrames, NS_LOG_FUNCTION, NS_LOG_INFO, StartSubFrame(), and ns3::LteRrcSap::MasterInformationBlock::systemFrameNumber.

Referenced by DoInitialize(), and EndFrame().

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

◆ StartSubFrame()

void ns3::LteEnbPhy::StartSubFrame ( )

Start a LTE sub frame.

Definition at line 582 of file lte-enb-phy.cc.

References ns3::Create(), DequeueUlDci(), ns3::DL_CTRL_DELAY_FROM_SUBFRAME_START, ns3::LteControlMessage::DL_DCI, ns3::DynamicCast(), EndSubFrame(), GeneratePowerAllocationMap(), ns3::LtePhy::GetControlMessages(), ns3::Time::GetMilliSeconds(), ns3::LtePhy::GetPacketBurst(), ns3::LtePhy::GetRbgSize(), ns3::LtePhy::GetTti(), ns3::LtePhy::m_cellId, ns3::LtePhy::m_componentCarrierId, ns3::LtePhy::m_controlMessagesQueue, ns3::UlDciListElement_s::m_cqiRequest, ns3::UlGrant_s::m_cqiRequest, m_currentSrsOffset, m_dlDataRbMap, m_dlPhyTransmission, m_dlPowerAllocationMap, m_enbPhySapUser, m_harqPhyModule, ns3::UlDciListElement_s::m_hopping, ns3::UlGrant_s::m_hopping, ns3::UlDciListElement_s::m_mcs, ns3::UlGrant_s::m_mcs, ns3::UlDciListElement_s::m_ndi, m_nrFrames, m_nrSubFrames, ns3::UlDciListElement_s::m_rbLen, ns3::UlGrant_s::m_rbLen, ns3::UlDciListElement_s::m_rbStart, ns3::UlGrant_s::m_rbStart, ns3::UlDciListElement_s::m_rnti, ns3::UlGrant_s::m_rnti, m_sib1, m_srsPeriodicity, ns3::UlDciListElement_s::m_tbSize, ns3::UlGrant_s::m_tbSize, ns3::UlDciListElement_s::m_tpc, ns3::UlGrant_s::m_tpc, m_ueAttached, ns3::LtePhy::m_uplinkSpectrumPhy, ns3::Simulator::Now(), NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, QueueUlDci(), ns3::LteControlMessage::RAR, ns3::Simulator::Schedule(), ns3::Seconds(), SendControlChannels(), SendDataChannels(), ns3::UlDciLteControlMessage::SetDci(), ns3::LteEnbPhySapUser::SubframeIndication(), and ns3::LteControlMessage::UL_DCI.

Referenced by EndSubFrame(), and StartFrame().

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

Friends And Related Symbol Documentation

◆ EnbMemberLteEnbPhySapProvider

friend class EnbMemberLteEnbPhySapProvider
friend

allow EnbMemberLteEnbPhySapProvider class friend access

Definition at line 36 of file lte-enb-phy.h.

Referenced by LteEnbPhy().

◆ MemberLteEnbCphySapProvider< LteEnbPhy >

friend class MemberLteEnbCphySapProvider< LteEnbPhy >
friend

allow MemberLteEnbCphySapProvider<LteEnbPhy> class friend access

Definition at line 36 of file lte-enb-phy.h.

Referenced by LteEnbPhy().

Member Data Documentation

◆ m_currentSrsOffset

uint16_t ns3::LteEnbPhy::m_currentSrsOffset
private

current SRS offset

Definition at line 455 of file lte-enb-phy.h.

Referenced by CreateSrsCqiReport(), and StartSubFrame().

◆ m_dlDataRbMap

std::vector<int> ns3::LteEnbPhy::m_dlDataRbMap
private

DL data RB map.

Definition at line 428 of file lte-enb-phy.h.

Referenced by SendDataChannels(), and StartSubFrame().

◆ m_dlPhyTransmission

TracedCallback<PhyTransmissionStatParameters> ns3::LteEnbPhy::m_dlPhyTransmission
private

The DlPhyTransmission trace source.

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

Definition at line 505 of file lte-enb-phy.h.

Referenced by GetTypeId(), and StartSubFrame().

◆ m_dlPowerAllocationMap

std::map<int, double> ns3::LteEnbPhy::m_dlPowerAllocationMap
private

DL power allocation map.

Definition at line 418 of file lte-enb-phy.h.

Referenced by CreateTxPowerSpectralDensityWithPowerAllocation(), GeneratePowerAllocationMap(), and StartSubFrame().

◆ m_enbCphySapProvider

LteEnbCphySapProvider* ns3::LteEnbPhy::m_enbCphySapProvider
private

ENB CPhy SAP provider.

Definition at line 436 of file lte-enb-phy.h.

Referenced by LteEnbPhy(), DoDispose(), and GetLteEnbCphySapProvider().

◆ m_enbCphySapUser

LteEnbCphySapUser* ns3::LteEnbPhy::m_enbCphySapUser
private

ENB CPhy SAP user.

Definition at line 437 of file lte-enb-phy.h.

Referenced by SetLteEnbCphySapUser().

◆ m_enbPhySapProvider

LteEnbPhySapProvider* ns3::LteEnbPhy::m_enbPhySapProvider
private

ENB Phy SAP provider.

Definition at line 433 of file lte-enb-phy.h.

Referenced by LteEnbPhy(), DoDispose(), and GetLteEnbPhySapProvider().

◆ m_enbPhySapUser

◆ m_harqPhyModule

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

HARQ Phy module.

Definition at line 469 of file lte-enb-phy.h.

Referenced by LteEnbPhy(), SetHarqPhyModule(), and StartSubFrame().

◆ m_interferenceSampleCounter

uint16_t ns3::LteEnbPhy::m_interferenceSampleCounter
private

interference sample counter

Definition at line 498 of file lte-enb-phy.h.

Referenced by ReportInterference().

◆ m_interferenceSamplePeriod

uint16_t ns3::LteEnbPhy::m_interferenceSamplePeriod
private

The InterferenceSamplePeriod attribute.

The sampling period for reporting interference stats.

Todo
In what unit is this?

Definition at line 497 of file lte-enb-phy.h.

Referenced by GetTypeId(), and ReportInterference().

◆ m_listOfDownlinkSubchannel

std::vector<int> ns3::LteEnbPhy::m_listOfDownlinkSubchannel
private

A vector of integers, if the i-th value is j it means that the j-th resource block is used for transmission in the downlink.

If there is no i such that the value of the i-th element is j, it means that RB j is not used.

Definition at line 426 of file lte-enb-phy.h.

Referenced by GetDownlinkSubChannels(), SetDownlinkSubChannels(), and SetDownlinkSubChannelsWithPowerAllocation().

◆ m_mib

LteRrcSap::MasterInformationBlock ns3::LteEnbPhy::m_mib
private

The Master Information Block message to be broadcasted every frame.

The message content is specified by the upper layer through the RRC SAP.

Definition at line 461 of file lte-enb-phy.h.

Referenced by DoSetMasterInformationBlock(), and StartFrame().

◆ m_nrFrames

uint32_t ns3::LteEnbPhy::m_nrFrames
private

The frame number currently served.

In ns-3, frame number starts from 1. In contrast, the 3GPP standard's frame number starts from 0.

Definition at line 443 of file lte-enb-phy.h.

Referenced by StartFrame(), and StartSubFrame().

◆ m_nrSubFrames

uint32_t ns3::LteEnbPhy::m_nrSubFrames
private

The subframe number currently served.

In ns-3, subframe number starts from 1. In contrast, the 3GPP standard's subframe number starts from 0. The number resets to the beginning again after 10 subframes.

Definition at line 449 of file lte-enb-phy.h.

Referenced by EndSubFrame(), SendControlChannels(), StartFrame(), and StartSubFrame().

◆ m_paMap

std::map<uint16_t, double> ns3::LteEnbPhy::m_paMap
private

P_A per UE RNTI.

Definition at line 415 of file lte-enb-phy.h.

Referenced by DoRemoveUe(), DoSetPa(), and GeneratePowerAllocationMap().

◆ m_reportInterferenceTrace

TracedCallback<uint16_t, Ptr<SpectrumValue> > ns3::LteEnbPhy::m_reportInterferenceTrace
private

The ReportInterference trace source.

Reporting the interference per PHY RB (TS 36.214 section 5.2.2, measured on DATA). Exporting cell ID and interference linear power per RB basis.

Deprecated
The non-const Ptr<SpectrumValue> argument is deprecated and will be changed to Ptr<const SpectrumValue> in a future release.

Definition at line 491 of file lte-enb-phy.h.

Referenced by GetTypeId(), and ReportInterference().

◆ m_reportUeSinr

TracedCallback<uint16_t, uint16_t, double, uint8_t> ns3::LteEnbPhy::m_reportUeSinr
private

The ReportUeSinr trace source.

Reporting the linear average of SRS SINR. Exporting cell ID, RNTI, SINR in linear unit and ComponentCarrierId

Definition at line 475 of file lte-enb-phy.h.

Referenced by CreateSrsReport(), and GetTypeId().

◆ m_sib1

LteRrcSap::SystemInformationBlockType1 ns3::LteEnbPhy::m_sib1
private

The System Information Block Type 1 message to be broadcasted.

SIB1 is broadcasted every 6th subframe of every odd-numbered radio frame. The message content is specified by the upper layer through the RRC SAP.

Definition at line 467 of file lte-enb-phy.h.

Referenced by DoSetSystemInformationBlockType1(), and StartSubFrame().

◆ m_srsCounter

std::map<uint16_t, uint16_t> ns3::LteEnbPhy::m_srsCounter
private

SRS counter.

Definition at line 453 of file lte-enb-phy.h.

Referenced by DoSetSrsConfigurationIndex().

◆ m_srsPeriodicity

uint16_t ns3::LteEnbPhy::m_srsPeriodicity
private

SRS periodicity.

Definition at line 451 of file lte-enb-phy.h.

Referenced by DoSetSrsConfigurationIndex(), and StartSubFrame().

◆ m_srsSampleCounterMap

std::map<uint16_t, uint16_t> ns3::LteEnbPhy::m_srsSampleCounterMap
private

SRS sample counter map.

Definition at line 481 of file lte-enb-phy.h.

Referenced by CreateSrsReport(), and DoRemoveUe().

◆ m_srsSamplePeriod

uint16_t ns3::LteEnbPhy::m_srsSamplePeriod
private

The UeSinrSamplePeriod trace source.

The sampling period for reporting UEs' SINR stats.

Definition at line 480 of file lte-enb-phy.h.

Referenced by CreateSrsReport(), and GetTypeId().

◆ m_srsStartTime

Time ns3::LteEnbPhy::m_srsStartTime
private

SRS start time.

Definition at line 452 of file lte-enb-phy.h.

Referenced by DoSetSrsConfigurationIndex(), and GenerateCtrlCqiReport().

◆ m_srsUeOffset

std::vector<uint16_t> ns3::LteEnbPhy::m_srsUeOffset
private

SRS UE offset.

Definition at line 454 of file lte-enb-phy.h.

Referenced by CreateSrsCqiReport(), DoDispose(), and DoSetSrsConfigurationIndex().

◆ m_ueAttached

std::set<uint16_t> ns3::LteEnbPhy::m_ueAttached
private

List of RNTI of attached UEs.

Used for quickly determining whether a UE is attached to this eNodeB or not.

Definition at line 412 of file lte-enb-phy.h.

Referenced by AddUePhy(), DeleteUePhy(), DoDispose(), ReceiveLteControlMessageList(), and StartSubFrame().

◆ m_ulDciQueue

std::vector<std::list<UlDciLteControlMessage> > ns3::LteEnbPhy::m_ulDciQueue
private

For storing info on future receptions.

Definition at line 431 of file lte-enb-phy.h.

Referenced by DequeueUlDci(), QueueUlDci(), and SetMacChDelay().


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