A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 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...
 
std::list< UlDciLteControlMessageDequeueUlDci (void)
 
virtual void DoDispose (void)
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
virtual void DoInitialize (void)
 This method is called only once by Object::Initialize. 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...
 
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 > >)
 PhySpectrum received a new list of LteControlMessage. More...
 
virtual void ReceiveLteUlHarqFeedback (UlInfoListElement_s mes)
 PhySpectrum generated a new UL HARQ feedback. 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...
 
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 SetHarqPhyModule (Ptr< LteHarqPhy > harq)
 
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 ()
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
void DoSetCellId (uint16_t cellId)
 
std::list< Ptr
< LteControlMessage > > 
GetControlMessages (void)
 
Ptr< LteNetDeviceGetDevice ()
 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 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 ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 Run the DoDispose methods of this object and all the objects aggregated to it. More...
 
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)
 This method calls the virtual DoInitialize method on all the objects aggregated to this object. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. 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
 
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)
 
- Static Public Member Functions inherited from ns3::LtePhy
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. 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)
 
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)
 Queue the MAC PDU to be sent (according to m_macChTtiDelay) More...
 
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 DoSetSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 sib1)
 
void DoSetTransmissionMode (uint16_t rnti, uint8_t txMode)
 

Private Attributes

uint16_t m_currentSrsOffset
 
std::vector< int > m_dlDataRbMap
 
TracedCallback
< PhyTransmissionStatParameters
m_dlPhyTransmission
 Trace information regarding PHY stats from UL Tx perspective PhyTrasmissionStatParameters see lte-common.h. More...
 
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
 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. More...
 
TracedCallback< uint16_t,
uint16_t, double > 
m_reportUeSinr
 Trace reporting the linear average of SRS SINRs uint16_t cellId, uint16_t rnti, double sinrLinear. More...
 
LteRrcSap::SystemInformationBlockType1 m_sib1
 
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)
 This method is invoked whenever two sets of objects are aggregated together. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 
- 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
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::LteSpectrumPhy >
    • Flags: read
  • UlSpectrumPhy: The uplink LteSpectrumPhy associated to this LtePhy
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::LteSpectrumPhy >
    • Flags: read

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

References NS_FATAL_ERROR, and NS_LOG_FUNCTION.

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

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

References EnbMemberLteEnbPhySapProvider, ns3::LtePhy::m_downlinkSpectrumPhy, m_enbCphySapProvider, m_enbPhySapProvider, m_harqPhyModule, ns3::LtePhy::m_uplinkSpectrumPhy, ns3::Simulator::ScheduleNow(), and StartFrame().

+ Here is the call graph for this function:

ns3::LteEnbPhy::~LteEnbPhy ( )
virtual

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

Member Function Documentation

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

Definition at line 337 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 423 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
Returns
UL CQI feedback in the format usable by an FF MAC scheduler

Definition at line 789 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
Returns
UL CQI feedback in the format usable by an FF MAC scheduler

Definition at line 862 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 897 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 412 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:

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

Definition at line 355 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 930 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 843 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::Object.

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

uint8_t ns3::LteEnbPhy::DoGetMacChTtiDelay ( )
private

Definition at line 382 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 234 of file lte-enb-phy.cc.

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

+ Here is the call graph for this function:

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

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

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

Parameters
pthe MAC PDU to sent

Implements ns3::LtePhy.

Definition at line 375 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 834 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 985 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::DoSetSystemInformationBlockType1 ( LteRrcSap::SystemInformationBlockType1  sib1)
private

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

References m_sib1, and NS_LOG_FUNCTION.

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

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

References NS_LOG_FUNCTION.

void ns3::LteEnbPhy::EndFrame ( void  )

End a LTE frame.

Definition at line 740 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 725 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 748 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 760 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 325 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 405 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 263 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 250 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 319 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 291 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 277 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 331 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 389 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 923 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 440 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::ReceiveLteUlHarqFeedback ( UlInfoListElement_s  mes)
virtual

PhySpectrum generated a new UL HARQ feedback.

Definition at line 1008 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 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 768 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 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 781 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 691 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:

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

Send the PDSCH.

Parameters
pbthe PacketBurst to be sent

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

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

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

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

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

References m_enbCphySapUser, NS_LOG_FUNCTION, and s.

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

Set the PHY SAP User.

Parameters
sa pointer to the PHY SAP user

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

References m_enbPhySapUser, and s.

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

Definition at line 298 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
powthe noise figure in dB

Definition at line 284 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
powthe transmission power in dBm

Definition at line 270 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 505 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 524 of file lte-enb-phy.cc.

References DequeueUlDci(), ns3::DL_CTRL_DELAY_FROM_SUBFRAME_START, ns3::LteControlMessage::DL_DCI, EndSubFrame(), ns3::LtePhy::GetControlMessages(), ns3::Time::GetMilliSeconds(), ns3::LtePhy::GetPacketBurst(), ns3::LtePhy::GetRbgSize(), ns3::LtePhy::GetTti(), ns3::PhyTransmissionStatParameters::m_cellId, ns3::LtePhy::m_cellId, ns3::LtePhy::m_controlMessagesQueue, 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, 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(), 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

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 304 of file lte-enb-phy.h.

Referenced by CreateSrsCqiReport(), and StartSubFrame().

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

Definition at line 287 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 332 of file lte-enb-phy.h.

Referenced by GetTypeId(), and StartSubFrame().

LteEnbCphySapProvider* ns3::LteEnbPhy::m_enbCphySapProvider
private

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

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

LteEnbCphySapUser* ns3::LteEnbPhy::m_enbCphySapUser
private

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

Referenced by SetLteEnbCphySapUser().

LteEnbPhySapProvider* ns3::LteEnbPhy::m_enbPhySapProvider
private

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

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

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

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

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

uint16_t ns3::LteEnbPhy::m_interferenceSampleCounter
private

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

Referenced by ReportInterference().

uint16_t ns3::LteEnbPhy::m_interferenceSamplePeriod
private

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

Referenced by GetTypeId(), and ReportInterference().

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

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

Referenced by GetDownlinkSubChannels(), and SetDownlinkSubChannels().

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

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

Referenced by DoSetMasterInformationBlock(), and StartFrame().

uint32_t ns3::LteEnbPhy::m_nrFrames
private

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

Referenced by StartFrame(), and StartSubFrame().

uint32_t ns3::LteEnbPhy::m_nrSubFrames
private

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

Referenced by EndSubFrame(), SendControlChannels(), 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 324 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 315 of file lte-enb-phy.h.

Referenced by CreateSrsReport(), and GetTypeId().

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

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

Referenced by DoSetSystemInformationBlockType1(), and StartSubFrame().

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

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

Referenced by DoSetSrsConfigurationIndex().

uint16_t ns3::LteEnbPhy::m_srsPeriodicity
private

Definition at line 300 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 317 of file lte-enb-phy.h.

Referenced by CreateSrsReport().

uint16_t ns3::LteEnbPhy::m_srsSamplePeriod
private

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

Referenced by CreateSrsReport(), and GetTypeId().

Time ns3::LteEnbPhy::m_srsStartTime
private

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

Referenced by DoSetSrsConfigurationIndex(), and GenerateCtrlCqiReport().

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

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

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

std::set<uint16_t> ns3::LteEnbPhy::m_ueAttached
private
std::vector< std::list<UlDciLteControlMessage> > ns3::LteEnbPhy::m_ulDciQueue
private

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

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


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