A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::LteEnbPhy Class Reference

#include <lte-enb-phy.h>

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

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.
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.
virtual Ptr< SpectrumValueCreateTxPowerSpectralDensity ()
 Create the PSD for TX.
std::list< UlDciLteControlMessageDequeueUlDci (void)
virtual void DoDispose (void)
virtual void DoInitialize (void)
void EndFrame (void)
 End a LTE frame.
void EndSubFrame (void)
 End a LTE sub frame.
virtual void GenerateCtrlCqiReport (const SpectrumValue &sinr)
virtual void GenerateDataCqiReport (const SpectrumValue &sinr)
Ptr< LteSpectrumPhyGetDlSpectrumPhy () const
std::vector< int > GetDownlinkSubChannels (void)
LteEnbCphySapProviderGetLteEnbCphySapProvider ()
 Get the CPHY SAP provider.
LteEnbPhySapProviderGetLteEnbPhySapProvider ()
 Get the PHY SAP provider.
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.
void QueueUlDci (UlDciLteControlMessage m)
virtual void ReceiveLteControlMessage (Ptr< LteControlMessage > msg)
 Receive the control message.
virtual void ReceiveLteControlMessageList (std::list< Ptr< LteControlMessage > >)
 PhySpectrum received a new list of LteControlMessage.
virtual void ReceiveLteUlHarqFeedback (UlInfoListElement_s mes)
 PhySpectrum generated a new UL HARQ feedback.
virtual void ReportInterference (const SpectrumValue &interf)
virtual void ReportRsReceivedPower (const SpectrumValue &interf)
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. sub channels) to be used in the downlink for transmission
void SetHarqPhyModule (Ptr< LteHarqPhy > harq)
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 (void)
 Start a LTE frame.
void StartSubFrame (void)
 Start a LTE sub frame.
- Public Member Functions inherited from ns3::LtePhy
 LtePhy ()
 LtePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy)
virtual ~LtePhy ()
virtual void DoSendMacPdu (Ptr< Packet > p)=0
 Queue the MAC PDU to be sent (according to m_macChTtiDelay)
void DoSetCellId (uint16_t cellId)
std::list< Ptr
< LteControlMessage > > 
GetControlMessages (void)
Ptr< LteNetDeviceGetDevice ()
 Get the device where the phy layer is attached.
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 SetControlMessages (Ptr< LteControlMessage > m)
void SetDevice (Ptr< LteNetDevice > d)
 Set the device where the phy layer is attached.
void SetDownlinkChannel (Ptr< SpectrumChannel > c)
void SetMacPdu (Ptr< Packet > p)
void SetTti (double tti)
 Receive SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.
void SetUplinkChannel (Ptr< SpectrumChannel > c)
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~Object ()
void AggregateObject (Ptr< Object > other)
void Dispose (void)
AggregateIterator GetAggregateIterator (void) const
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Initialize (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Static Public Member Functions

static TypeId GetTypeId (void)

Private Member Functions

bool AddUePhy (uint16_t rnti)
void CreateSrsReport (uint16_t rnti, double srs)
bool DeleteUePhy (uint16_t rnti)
void DoAddUe (uint16_t rnti)
uint8_t DoGetMacChTtiDelay ()
void DoRemoveUe (uint16_t rnti)
void DoSendLteControlMessage (Ptr< LteControlMessage > msg)
void DoSendMacPdu (Ptr< Packet > p)
void DoSetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth)
void DoSetEarfcn (uint16_t dlEarfcn, uint16_t ulEarfcn)
void DoSetMasterInformationBlock (LteRrcSap::MasterInformationBlock mib)
void DoSetSrsConfigurationIndex (uint16_t rnti, uint16_t srcCi)
void DoSetTransmissionMode (uint16_t rnti, uint8_t txMode)

Private Attributes

uint16_t m_currentSrsOffset
std::vector< int > m_dlDataRbMap
TracedCallback
< PhyTransmissionStatParameters
m_dlPhyTransmission
LteEnbCphySapProviderm_enbCphySapProvider
LteEnbCphySapUserm_enbCphySapUser
LteEnbPhySapProviderm_enbPhySapProvider
LteEnbPhySapUserm_enbPhySapUser
Ptr< LteHarqPhym_harqPhyModule
uint16_t m_interferenceSampleCounter
uint16_t m_interferenceSamplePeriod
std::vector< int > m_listOfDownlinkSubchannel
LteRrcSap::MasterInformationBlock m_mib
uint32_t m_nrFrames
uint32_t m_nrSubFrames
TracedCallback< uint16_t, Ptr
< SpectrumValue > > 
m_reportInterferenceTrace
TracedCallback< uint16_t,
uint16_t, double > 
m_reportUeSinr
std::map< uint16_t, uint16_t > m_srsCounter
uint16_t m_srsPeriodicity
std::map< uint16_t, uint16_t > m_srsSampleCounterMap
uint16_t m_srsSamplePeriod
Time m_srsStartTime
std::vector< uint16_t > m_srsUeOffset
std::set< uint16_t > m_ueAttached
std::vector< std::list
< UlDciLteControlMessage > > 
m_ulDciQueue

Friends

class EnbMemberLteEnbPhySapProvider
class MemberLteEnbCphySapProvider< LteEnbPhy >

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void NotifyNewAggregate (void)
- Protected Attributes inherited from ns3::LtePhy
uint16_t m_cellId
std::vector< std::list< Ptr
< LteControlMessage > > > 
m_controlMessagesQueue
uint8_t m_dlBandwidth
uint16_t m_dlEarfcn
Ptr< LteSpectrumPhym_downlinkSpectrumPhy
uint8_t m_macChTtiDelay
Ptr< LteNetDevicem_netDevice
double m_noiseFigure
std::vector< Ptr< PacketBurst > > m_packetBurstQueue
uint8_t m_rbgSize
double m_tti
double m_txPower
uint8_t m_ulBandwidth
uint16_t m_ulEarfcn
Ptr< LteSpectrumPhym_uplinkSpectrumPhy

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/LteEnbPhy
  • /NodeList/[i]/DeviceList/[i]/$ns3::LteNetDevice/$ns3::LteEnbNetDevice/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.
  • UeSinrSamplePeriod: The sampling period for reporting UEs' SINR stats (default value 1)
  • InterferenceSamplePeriod: The sampling period for reporting interference stats (default value 1)
  • DlSpectrumPhy: The downlink LteSpectrumPhy associated to this LtePhy
  • UlSpectrumPhy: The uplink LteSpectrumPhy associated to this LtePhy

TraceSources

  • ReportUeSinr: Report UEs' averaged linear SINR
  • ReportInterference: Report linear interference power per PHY RB
  • DlPhyTransmission: DL transmission PHY layer statistics.

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

Constructor & Destructor Documentation

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

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

References NS_FATAL_ERROR, and NS_LOG_FUNCTION.

ns3::LteEnbPhy::LteEnbPhy ( Ptr< LteSpectrumPhy dlPhy,
Ptr< LteSpectrumPhy ulPhy 
)
ns3::LteEnbPhy::~LteEnbPhy ( )
virtual

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

Member Function Documentation

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

Definition at line 335 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:

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

References NS_LOG_FUNCTION.

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

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

References ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), ns3::LteFfConverter::double2fpS11dot3(), ns3::UlCqi_s::m_sinr, ns3::UlCqi_s::m_type, 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:

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

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

References ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), CreateSrsReport(), ns3::LteFfConverter::double2fpS11dot3(), m_currentSrsOffset, ns3::UlCqi_s::m_sinr, m_srsUeOffset, ns3::VendorSpecificListElement_s::m_type, ns3::UlCqi_s::m_type, ns3::FfMacSchedSapProvider::SchedUlCqiInfoReqParameters::m_ulCqi, 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:

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

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

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

Referenced by CreateSrsCqiReport().

+ Here is the caller graph for this function:

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

Create the PSD for TX.

Implements ns3::LtePhy.

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

References 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:

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

Definition at line 353 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:

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

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

References m_ulDciQueue, and NS_LOG_FUNCTION.

Referenced by StartSubFrame().

+ Here is the caller graph for this function:

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

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

References AddUePhy(), NS_ASSERT_MSG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

void ns3::LteEnbPhy::DoDispose ( void  )
virtual

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

Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.

It is safe to call GetObject from within this method.

Reimplemented from ns3::LtePhy.

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

References m_enbCphySapProvider, m_enbPhySapProvider, m_srsUeOffset, m_ueAttached, and NS_LOG_FUNCTION.

uint8_t ns3::LteEnbPhy::DoGetMacChTtiDelay ( )
private

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

References ns3::LtePhy::m_macChTtiDelay.

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

+ Here is the caller graph for this function:

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

This method is called only once by Object::Initialize. If the user calls Object::Initialize multiple times, DoInitialize is called only the first time.

Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject and AggregateObject from within this method.

Reimplemented from ns3::Object.

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

References ns3::LteSpectrumValueHelper::CreateNoisePowerSpectralDensity(), ns3::LtePhy::m_noiseFigure, ns3::LtePhy::m_ulBandwidth, ns3::LtePhy::m_ulEarfcn, ns3::LtePhy::m_uplinkSpectrumPhy, NS_LOG_FUNCTION, and ns3::LteSpectrumPhy::SetNoisePowerSpectralDensity().

+ Here is the call graph for this function:

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

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

References DeleteUePhy(), NS_ASSERT_MSG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

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

Definition at line 428 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:

void ns3::LteEnbPhy::DoSendMacPdu ( Ptr< Packet p)
private

Definition at line 373 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:

void ns3::LteEnbPhy::DoSetBandwidth ( uint8_t  ulBandwidth,
uint8_t  dlBandwidth 
)
private
void ns3::LteEnbPhy::DoSetEarfcn ( uint16_t  dlEarfcn,
uint16_t  ulEarfcn 
)
private

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

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

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

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

References m_mib, and NS_LOG_FUNCTION.

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

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

References NS_LOG_FUNCTION.

void ns3::LteEnbPhy::EndFrame ( void  )

End a LTE frame.

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

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

Referenced by EndSubFrame().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbPhy::EndSubFrame ( void  )

End a LTE sub frame.

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

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

Referenced by StartSubFrame().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

+ Here is the call graph for this function:

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

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

+ Here is the call graph for this function:

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

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

References ns3::LtePhy::m_downlinkSpectrumPhy.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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

References m_listOfDownlinkSubchannel, and NS_LOG_FUNCTION.

Referenced by CreateTxPowerSpectralDensity().

+ Here is the caller graph for this function:

LteEnbCphySapProvider * ns3::LteEnbPhy::GetLteEnbCphySapProvider ( )

Get the CPHY SAP provider.

Returns
a pointer to the SAP Provider

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

References m_enbCphySapProvider, and NS_LOG_FUNCTION.

LteEnbPhySapProvider * ns3::LteEnbPhy::GetLteEnbPhySapProvider ( )

Get the PHY SAP provider.

Returns
a pointer to the SAP Provider of the PHY

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

References m_enbPhySapProvider.

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

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

References ns3::LtePhy::m_macChTtiDelay.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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

Definition at line 289 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:

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

Definition at line 275 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:

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

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

References ns3::LtePhy::m_uplinkSpectrumPhy.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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

PhySpectrum received a new PHY-PDU.

Definition at line 387 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:

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

Definition at line 868 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:

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

Receive the control message.

Parameters
msgthe received message

Definition at line 438 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:

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

PhySpectrum received a new list of LteControlMessage.

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

References m_enbPhySapUser, 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:

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

PhySpectrum generated a new UL HARQ feedback.

Definition at line 945 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:

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

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

Parameters
sinrthe interference + noise power measured by the device

Implements ns3::LtePhy.

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

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

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

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

Parameters
sinrthe RS power measured by the device

Implements ns3::LtePhy.

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

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

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

Referenced by StartSubFrame().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Send the PDSCH.

Parameters
pbthe PacketBurst to be sent

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

References ns3::DL_DATA_DURATION, m_dlDataRbMap, ns3::LtePhy::m_downlinkSpectrumPhy, NS_LOG_LOGIC, SetDownlinkSubChannels(), and ns3::LteSpectrumPhy::StartTxDataFrame().

Referenced by StartSubFrame().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

Referenced by SendControlChannels(), and SendDataChannels().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

References m_harqPhyModule.

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

Set the CPHY SAP User.

Parameters
sa pointer to the SAP user

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

References m_enbCphySapUser, and NS_LOG_FUNCTION.

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

Set the PHY SAP User.

Parameters
sa pointer to the PHY SAP user

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

References m_enbPhySapUser.

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

Definition at line 296 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:

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

Definition at line 282 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:

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

Definition at line 268 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:

void ns3::LteEnbPhy::StartFrame ( void  )

Start a LTE frame.

Definition at line 471 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 EndFrame(), and LteEnbPhy().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbPhy::StartSubFrame ( void  )

Start a LTE sub frame.

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

References ns3::LteSpectrumPhy::AddExpectedTb(), DequeueUlDci(), ns3::DL_CTRL_DELAY_FROM_SUBFRAME_START, ns3::LteControlMessage::DL_DCI, EndSubFrame(), ns3::LtePhy::GetControlMessages(), ns3::LteControlMessage::GetMessageType(), ns3::Time::GetMilliSeconds(), ns3::LtePhy::GetPacketBurst(), ns3::LtePhy::GetRbgSize(), ns3::LtePhy::GetTti(), ns3::PhyTransmissionStatParameters::m_cellId, ns3::LtePhy::m_cellId, ns3::UlDciListElement_s::m_cqiRequest, ns3::UlGrant_s::m_cqiRequest, m_currentSrsOffset, m_dlDataRbMap, m_dlPhyTransmission, m_enbPhySapUser, m_harqPhyModule, ns3::UlDciListElement_s::m_hopping, ns3::UlGrant_s::m_hopping, ns3::PhyTransmissionStatParameters::m_imsi, ns3::PhyTransmissionStatParameters::m_layer, ns3::PhyTransmissionStatParameters::m_mcs, ns3::UlDciListElement_s::m_mcs, ns3::UlGrant_s::m_mcs, ns3::PhyTransmissionStatParameters::m_ndi, 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::PhyTransmissionStatParameters::m_rnti, ns3::UlDciListElement_s::m_rnti, ns3::UlGrant_s::m_rnti, ns3::PhyTransmissionStatParameters::m_rv, 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::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::LteHarqPhy::SubframeIndication(), 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

friend class EnbMemberLteEnbPhySapProvider
friend

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

Referenced by LteEnbPhy().

friend class MemberLteEnbCphySapProvider< LteEnbPhy >
friend

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

Member Data Documentation

uint16_t ns3::LteEnbPhy::m_currentSrsOffset
private

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

Referenced by CreateSrsCqiReport(), and StartSubFrame().

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

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

Referenced by SendDataChannels(), and StartSubFrame().

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

Trace information regarding PHY stats from UL Tx perspective PhyTrasmissionStatParameters see lte-common.h

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

Referenced by GetTypeId(), and StartSubFrame().

LteEnbCphySapProvider* ns3::LteEnbPhy::m_enbCphySapProvider
private

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

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

LteEnbCphySapUser* ns3::LteEnbPhy::m_enbCphySapUser
private

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

Referenced by SetLteEnbCphySapUser().

LteEnbPhySapProvider* ns3::LteEnbPhy::m_enbPhySapProvider
private

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

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

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

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

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

uint16_t ns3::LteEnbPhy::m_interferenceSampleCounter
private

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

Referenced by ReportInterference().

uint16_t ns3::LteEnbPhy::m_interferenceSamplePeriod
private

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

Referenced by GetTypeId(), and ReportInterference().

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

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

Referenced by GetDownlinkSubChannels(), and SetDownlinkSubChannels().

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

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

Referenced by DoSetMasterInformationBlock(), and StartFrame().

uint32_t ns3::LteEnbPhy::m_nrFrames
private

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

Referenced by StartFrame(), and StartSubFrame().

uint32_t ns3::LteEnbPhy::m_nrSubFrames
private

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

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

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

Trace reporting the interference per PHY RB (TS 36.214 section 5.2.2, measured on DATA) uint16_t cellId, Ptr<SpectrumValue> interference linear power per RB basis

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

Referenced by GetTypeId(), and ReportInterference().

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

Trace reporting the linear average of SRS SINRs uint16_t cellId, uint16_t rnti, double sinrLinear

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

Referenced by CreateSrsReport(), and GetTypeId().

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

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

Referenced by DoSetSrsConfigurationIndex().

uint16_t ns3::LteEnbPhy::m_srsPeriodicity
private

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

Referenced by DoSetSrsConfigurationIndex(), and StartSubFrame().

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

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

Referenced by CreateSrsReport().

uint16_t ns3::LteEnbPhy::m_srsSamplePeriod
private

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

Referenced by CreateSrsReport(), and GetTypeId().

Time ns3::LteEnbPhy::m_srsStartTime
private

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

Referenced by DoSetSrsConfigurationIndex(), and GenerateCtrlCqiReport().

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

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

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

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

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

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

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

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

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


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