A Discrete-Event Network Simulator
API
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. More...
 
typedef void(* ReportUeSinrTracedCallback) (uint16_t cellId, uint16_t rnti, double sinrLinear, uint8_t componentCarrierId)
 TracedCallback signature for the linear average of SRS SINRs. More...
 

Public Member Functions

 LteEnbPhy ()
 
 LteEnbPhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy)
 
virtual ~LteEnbPhy ()
 
void CalcChannelQualityForUe (std::vector< double > sinr, Ptr< LteSpectrumPhy > ue)
 Calculate the channel quality for a given UE. More...
 
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. More...
 
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. More...
 
virtual Ptr< SpectrumValueCreateTxPowerSpectralDensity ()
 Create the PSD for TX. More...
 
virtual Ptr< SpectrumValueCreateTxPowerSpectralDensityWithPowerAllocation ()
 Create the PSD for TX with power allocation for each RB. More...
 
std::list< UlDciLteControlMessageDequeueUlDci (void)
 
virtual void DoDispose (void)
 Destructor implementation. More...
 
int8_t DoGetReferenceSignalPower () const
 
virtual void DoInitialize (void)
 Initialize() implementation. More...
 
void EndFrame (void)
 End a LTE frame. More...
 
void EndSubFrame (void)
 End a LTE sub frame. More...
 
virtual void GenerateCtrlCqiReport (const SpectrumValue &sinr)
 generate a CQI report based on the given SINR of Ctrl frame More...
 
virtual void GenerateDataCqiReport (const SpectrumValue &sinr)
 generate a CQI report based on the given SINR of Data frame (used for PUSCH CQIs) More...
 
void GeneratePowerAllocationMap (uint16_t rnti, int rbId)
 Generate power allocation map (i.e. More...
 
Ptr< LteSpectrumPhyGetDlSpectrumPhy () const
 
std::vector< int > GetDownlinkSubChannels (void)
 
LteEnbCphySapProviderGetLteEnbCphySapProvider ()
 Get the CPHY SAP provider. More...
 
LteEnbPhySapProviderGetLteEnbPhySapProvider ()
 Get the PHY SAP provider. More...
 
uint8_t GetMacChDelay (void) const
 
double GetNoiseFigure () const
 
double GetTxPower () const
 
Ptr< LteSpectrumPhyGetUlSpectrumPhy () const
 
void PhyPduReceived (Ptr< Packet > p)
 PhySpectrum received a new PHY-PDU. More...
 
void QueueUlDci (UlDciLteControlMessage m)
 
virtual void ReceiveLteControlMessage (Ptr< LteControlMessage > msg)
 Receive the control message. More...
 
virtual void ReceiveLteControlMessageList (std::list< Ptr< LteControlMessage > > msgList)
 PhySpectrum received a new list of LteControlMessage. More...
 
virtual void ReportInterference (const SpectrumValue &interf)
 generate a report based on the linear interference and noise power perceived during DATA frame NOTE: used only by eNB More...
 
virtual void ReportRsReceivedPower (const SpectrumValue &power)
 generate a report based on the linear RS power perceived during CTRL frame NOTE: used only by UE for evaluating RSRP More...
 
virtual void ReportUlHarqFeedback (UlInfoListElement_s mes)
 Report the uplink HARQ feedback generated by LteSpectrumPhy to MAC. More...
 
void SendControlChannels (std::list< Ptr< LteControlMessage > > ctrlMsgList)
 Send the PDCCH and PCFICH in the first 3 symbols. More...
 
void SendDataChannels (Ptr< PacketBurst > pb)
 Send the PDSCH. More...
 
void SetDownlinkSubChannels (std::vector< int > mask)
 set the resource blocks (a.k.a. More...
 
void SetDownlinkSubChannelsWithPowerAllocation (std::vector< int > mask)
 set the resource blocks (a.k.a. More...
 
void SetHarqPhyModule (Ptr< LteHarqPhy > harq)
 Set the HARQ Phy module. More...
 
void SetLteEnbCphySapUser (LteEnbCphySapUser *s)
 Set the CPHY SAP User. More...
 
void SetLteEnbPhySapUser (LteEnbPhySapUser *s)
 Set the PHY SAP User. More...
 
void SetMacChDelay (uint8_t delay)
 
void SetNoiseFigure (double pow)
 
void SetTxPower (double pow)
 
void StartFrame (void)
 Start a LTE frame. More...
 
void StartSubFrame (void)
 Start a LTE sub frame. More...
 
- Public Member Functions inherited from ns3::LtePhy
 LtePhy ()
 
 LtePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy)
 
virtual ~LtePhy ()
 
void DoDispose ()
 Destructor implementation. More...
 
void DoSetCellId (uint16_t cellId)
 
uint8_t GetComponentCarrierId ()
 Get the component carrier ID. More...
 
std::list< Ptr< LteControlMessage > > GetControlMessages (void)
 
Ptr< LteNetDeviceGetDevice () const
 Get the device where the phy layer is attached. More...
 
Ptr< LteSpectrumPhyGetDownlinkSpectrumPhy ()
 
Ptr< PacketBurstGetPacketBurst (void)
 
uint8_t GetRbgSize (void) const
 
uint16_t GetSrsPeriodicity (uint16_t srcCi) const
 
uint16_t GetSrsSubframeOffset (uint16_t srcCi) const
 
double GetTti (void) const
 
Ptr< LteSpectrumPhyGetUplinkSpectrumPhy ()
 
void SetComponentCarrierId (uint8_t index)
 Set the component carrier ID. More...
 
void SetControlMessages (Ptr< LteControlMessage > m)
 
void SetDevice (Ptr< LteNetDevice > d)
 Set the device where the phy layer is attached. More...
 
void SetDownlinkChannel (Ptr< SpectrumChannel > c)
 Set the downlink channel. More...
 
void SetMacPdu (Ptr< Packet > p)
 
void SetTti (double tti)
 
void SetUplinkChannel (Ptr< SpectrumChannel > c)
 Set the uplink channel. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose (void)
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator (void) const
 Get an iterator to the Objects aggregated to this one. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the most derived TypeId for this Object. More...
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
void Initialize (void)
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized (void) const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= ([[maybe_unused]] const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising erros. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

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

Private Member Functions

bool AddUePhy (uint16_t rnti)
 Add the given RNTI to the list of attached UE m_ueAttached. More...
 
void CreateSrsReport (uint16_t rnti, double srs)
 Create SRS report function. More...
 
bool DeleteUePhy (uint16_t rnti)
 Remove the given RNTI from the list of attached UE m_ueAttached. More...
 
void DoAddUe (uint16_t rnti)
 Add UE. More...
 
uint8_t DoGetMacChTtiDelay ()
 Get MAC ch TTI delay function. More...
 
void DoRemoveUe (uint16_t rnti)
 Remove UE. More...
 
void DoSendLteControlMessage (Ptr< LteControlMessage > msg)
 Send LTE Control Message function. More...
 
void DoSendMacPdu (Ptr< Packet > p)
 Queue the MAC PDU to be sent (according to m_macChTtiDelay) More...
 
void DoSetBandwidth (uint16_t ulBandwidth, uint16_t dlBandwidth)
 Set bandwidth function. More...
 
void DoSetEarfcn (uint32_t dlEarfcn, uint32_t ulEarfcn)
 Set EARFCN. More...
 
void DoSetMasterInformationBlock (LteRrcSap::MasterInformationBlock mib)
 Set master information block. More...
 
void DoSetPa (uint16_t rnti, double pa)
 Set PA. More...
 
void DoSetSrsConfigurationIndex (uint16_t rnti, uint16_t srcCi)
 Set source configuration index. More...
 
void DoSetSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 sib1)
 Set system information block. More...
 
void DoSetTransmissionMode (uint16_t rnti, uint8_t txMode)
 Set transmission mode. More...
 

Private Attributes

uint16_t m_currentSrsOffset
 current SRS offset More...
 
std::vector< int > m_dlDataRbMap
 DL data RB map. More...
 
TracedCallback< PhyTransmissionStatParametersm_dlPhyTransmission
 The DlPhyTransmission trace source. More...
 
std::map< int, double > m_dlPowerAllocationMap
 DL power allocation map. More...
 
LteEnbCphySapProviderm_enbCphySapProvider
 ENB CPhy SAP provider. More...
 
LteEnbCphySapUserm_enbCphySapUser
 ENB CPhy SAP user. More...
 
LteEnbPhySapProviderm_enbPhySapProvider
 ENB Phy SAP provider. More...
 
LteEnbPhySapUserm_enbPhySapUser
 ENB Phy SAP user. More...
 
Ptr< LteHarqPhym_harqPhyModule
 HARQ Phy module. More...
 
uint16_t m_interferenceSampleCounter
 interference sample counter More...
 
uint16_t m_interferenceSamplePeriod
 The InterferenceSamplePeriod attribute. More...
 
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. More...
 
LteRrcSap::MasterInformationBlock m_mib
 The Master Information Block message to be broadcasted every frame. More...
 
uint32_t m_nrFrames
 The frame number currently served. More...
 
uint32_t m_nrSubFrames
 The subframe number currently served. More...
 
std::map< uint16_t, double > m_paMap
 P_A per UE RNTI. More...
 
TracedCallback< uint16_t, Ptr< SpectrumValue > > m_reportInterferenceTrace
 The ReportInterference trace source. More...
 
TracedCallback< uint16_t, uint16_t, double, uint8_t > m_reportUeSinr
 The ReportUeSinr trace source. More...
 
LteRrcSap::SystemInformationBlockType1 m_sib1
 The System Information Block Type 1 message to be broadcasted. More...
 
std::map< uint16_t, uint16_t > m_srsCounter
 SRS counter. More...
 
uint16_t m_srsPeriodicity
 SRS periodicity. More...
 
std::map< uint16_t, uint16_t > m_srsSampleCounterMap
 SRS sample counter map. More...
 
uint16_t m_srsSamplePeriod
 The UeSinrSamplePeriod trace source. More...
 
Time m_srsStartTime
 SRS start time. More...
 
std::vector< uint16_t > m_srsUeOffset
 SRS UE offset. More...
 
std::set< uint16_t > m_ueAttached
 List of RNTI of attached UEs. More...
 
std::vector< std::list< UlDciLteControlMessage > > m_ulDciQueue
 For storing info on future receptions. More...
 

Friends

class EnbMemberLteEnbPhySapProvider
 allow EnbMemberLteEnbPhySapProvider class friend access More...
 
class MemberLteEnbCphySapProvider< LteEnbPhy >
 allow MemberLteEnbCphySapProvider<LteEnbPhy> class friend access More...
 

Additional Inherited Members

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

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

  • TxPower: Transmission power in dBm
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 30
    • 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
  • 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: construct write read
  • UeSinrSamplePeriod: The sampling period for reporting UEs' SINR stats.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 1
    • Flags: construct write read
  • InterferenceSamplePeriod: The sampling period for reporting interference stats
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 1
    • Flags: construct write read
  • DlSpectrumPhy: The downlink LteSpectrumPhy associated to this LtePhy
  • UlSpectrumPhy: The uplink LteSpectrumPhy associated to this LtePhy

TraceSources

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

Definition at line 47 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 321 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 310 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 146 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 
)

◆ ~LteEnbPhy()

ns3::LteEnbPhy::~LteEnbPhy ( )
virtual

Definition at line 246 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 382 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 502 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 871 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 1024 of file lte-enb-phy.cc.

References ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), 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 1059 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 ( )
virtual

Create the PSD for TX.

Returns
the PSD

Implements ns3::LtePhy.

Definition at line 481 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 491 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 400 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 ( void  )
Returns
the list of UL-CQI to be processed

Definition at line 1092 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 925 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 ( void  )
virtual

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 250 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 427 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 322 of file lte-enb-phy.cc.

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

◆ DoInitialize()

void ns3::LteEnbPhy::DoInitialize ( void  )
virtual

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 261 of file lte-enb-phy.cc.

References ns3::LteSpectrumValueHelper::CreateNoisePowerSpectralDensity(), ns3::Object::DoInitialize(), ns3::Node::GetId(), 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

◆ DoSendLteControlMessage()

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

Send LTE Control Message function.

Parameters
msgLTE control message

Definition at line 509 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)
privatevirtual

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

Parameters
pthe MAC PDU to sent

Implements ns3::LtePhy.

Definition at line 420 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 893 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 916 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 1147 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 1006 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 1114 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 1155 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 1078 of file lte-enb-phy.cc.

References NS_LOG_FUNCTION.

◆ EndFrame()

void ns3::LteEnbPhy::EndFrame ( void  )

End a LTE frame.

Definition at line 822 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 ( void  )

End a LTE sub frame.

Definition at line 807 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)
virtual

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 830 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)
virtual

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 842 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 466 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 370 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 ( void  )
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 459 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 301 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 288 of file lte-enb-phy.cc.

References m_enbPhySapProvider.

◆ GetMacChDelay()

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

Definition at line 364 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 336 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 315 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()

◆ GetUlSpectrumPhy()

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

Definition at line 376 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 434 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 1085 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 519 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

◆ ReportInterference()

void ns3::LteEnbPhy::ReportInterference ( const SpectrumValue interf)
virtual

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 850 of file lte-enb-phy.cc.

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

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

+ Here is the caller graph for this function:

◆ ReportRsReceivedPower()

void ns3::LteEnbPhy::ReportRsReceivedPower ( const SpectrumValue power)
virtual

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 863 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 1170 of file lte-enb-phy.cc.

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

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 773 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 794 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 441 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 450 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 1163 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 294 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 282 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 343 of file lte-enb-phy.cc.

References 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 caller graph for this function:

◆ SetNoiseFigure()

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

Definition at line 329 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 308 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 ( void  )

Start a LTE frame.

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

References 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 ( void  )

Start a LTE sub frame.

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

References DequeueUlDci(), ns3::DL_CTRL_DELAY_FROM_SUBFRAME_START, ns3::LteControlMessage::DL_DCI, EndSubFrame(), GeneratePowerAllocationMap(), ns3::LtePhy::GetControlMessages(), ns3::Time::GetMilliSeconds(), ns3::LtePhy::GetPacketBurst(), ns3::LtePhy::GetRbgSize(), ns3::LtePhy::GetTti(), bianchi11ax::k, ns3::PhyTransmissionStatParameters::m_ccId, ns3::PhyTransmissionStatParameters::m_cellId, 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::PhyTransmissionStatParameters::m_imsi, ns3::PhyTransmissionStatParameters::m_layer, ns3::UlDciListElement_s::m_mcs, ns3::UlGrant_s::m_mcs, ns3::PhyTransmissionStatParameters::m_mcs, ns3::UlDciListElement_s::m_ndi, ns3::PhyTransmissionStatParameters::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, ns3::PhyTransmissionStatParameters::m_rnti, ns3::PhyTransmissionStatParameters::m_rv, m_sib1, ns3::PhyTransmissionStatParameters::m_size, m_srsPeriodicity, ns3::UlDciListElement_s::m_tbSize, ns3::UlGrant_s::m_tbSize, ns3::PhyTransmissionStatParameters::m_timestamp, ns3::UlDciListElement_s::m_tpc, ns3::UlGrant_s::m_tpc, ns3::PhyTransmissionStatParameters::m_txMode, 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 Function Documentation

◆ EnbMemberLteEnbPhySapProvider

friend class EnbMemberLteEnbPhySapProvider
friend

allow EnbMemberLteEnbPhySapProvider class friend access

Definition at line 50 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 50 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 471 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 444 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 520 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 434 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 452 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 453 of file lte-enb-phy.h.

Referenced by SetLteEnbCphySapUser().

◆ m_enbPhySapProvider

LteEnbPhySapProvider* ns3::LteEnbPhy::m_enbPhySapProvider
private

ENB Phy SAP provider.

Definition at line 449 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 485 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 513 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 512 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 442 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 477 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 459 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 465 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 431 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 506 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 491 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 483 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 469 of file lte-enb-phy.h.

Referenced by DoSetSrsConfigurationIndex().

◆ m_srsPeriodicity

uint16_t ns3::LteEnbPhy::m_srsPeriodicity
private

SRS periodicity.

Definition at line 467 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 497 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 496 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 468 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 470 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 427 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 447 of file lte-enb-phy.h.

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


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