#include <lte-enb-phy.h>
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< SpectrumValue > | CreateTxPowerSpectralDensity () |
Create the PSD for TX. | |
std::list< UlDciLteControlMessage > | DequeueUlDci (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< LteSpectrumPhy > | GetDlSpectrumPhy () const |
std::vector< int > | GetDownlinkSubChannels (void) |
LteEnbCphySapProvider * | GetLteEnbCphySapProvider () |
Get the CPHY SAP provider. | |
LteEnbPhySapProvider * | GetLteEnbPhySapProvider () |
Get the PHY SAP provider. | |
uint8_t | GetMacChDelay (void) const |
double | GetNoiseFigure () const |
double | GetTxPower () const |
Ptr< LteSpectrumPhy > | GetUlSpectrumPhy () 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. | |
![]() | |
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< LteNetDevice > | GetDevice () |
Get the device where the phy layer is attached. | |
Ptr< LteSpectrumPhy > | GetDownlinkSpectrumPhy () |
Ptr< PacketBurst > | GetPacketBurst (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< LteSpectrumPhy > | GetUplinkSpectrumPhy () |
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) |
![]() | |
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) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
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 |
LteEnbCphySapProvider * | m_enbCphySapProvider |
LteEnbCphySapUser * | m_enbCphySapUser |
LteEnbPhySapProvider * | m_enbPhySapProvider |
LteEnbPhySapUser * | m_enbPhySapUser |
Ptr< LteHarqPhy > | m_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 | |
![]() | |
Object (const Object &o) | |
virtual void | NotifyNewAggregate (void) |
![]() | |
uint16_t | m_cellId |
std::vector< std::list< Ptr < LteControlMessage > > > | m_controlMessagesQueue |
uint8_t | m_dlBandwidth |
uint16_t | m_dlEarfcn |
Ptr< LteSpectrumPhy > | m_downlinkSpectrumPhy |
uint8_t | m_macChTtiDelay |
Ptr< LteNetDevice > | m_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< LteSpectrumPhy > | m_uplinkSpectrumPhy |
LteEnbPhy models the physical layer for the eNodeB
ns3::LteEnbPhy is accessible through the following paths with Config::Set and Config::Connect:
Definition at line 47 of file lte-enb-phy.h.
ns3::LteEnbPhy::LteEnbPhy | ( | ) |
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 | ||
) |
dlPhy | the downlink LteSpectrumPhy instance |
ulPhy | the uplink LteSpectrumPhy instance |
Definition at line 131 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(), ns3::LteSpectrumPhy::SetHarqPhyModule(), and StartFrame().
|
virtual |
Definition at line 216 of file lte-enb-phy.cc.
|
private |
Definition at line 335 of file lte-enb-phy.cc.
References m_ueAttached, NS_LOG_ERROR, and NS_LOG_FUNCTION.
Referenced by DoAddUe().
void ns3::LteEnbPhy::CalcChannelQualityForUe | ( | std::vector< double > | sinr, |
Ptr< LteSpectrumPhy > | ue | ||
) |
Calculate the channel quality for a given UE.
sinr | a list of computed SINR |
ue | the 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.
sinr | SINR 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().
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.
sinr | SINR 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().
|
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().
|
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().
|
private |
Definition at line 353 of file lte-enb-phy.cc.
References m_ueAttached, NS_LOG_ERROR, and NS_LOG_FUNCTION.
Referenced by DoRemoveUe().
std::list< UlDciLteControlMessage > ns3::LteEnbPhy::DequeueUlDci | ( | void | ) |
Definition at line 875 of file lte-enb-phy.cc.
References m_ulDciQueue, and NS_LOG_FUNCTION.
Referenced by StartSubFrame().
|
private |
Definition at line 789 of file lte-enb-phy.cc.
References AddUePhy(), NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
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.
|
private |
Definition at line 380 of file lte-enb-phy.cc.
References ns3::LtePhy::m_macChTtiDelay.
Referenced by ns3::EnbMemberLteEnbPhySapProvider::GetMacChTtiDelay().
|
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().
|
private |
Definition at line 798 of file lte-enb-phy.cc.
References DeleteUePhy(), NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
private |
Definition at line 428 of file lte-enb-phy.cc.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetControlMessages().
Referenced by ns3::EnbMemberLteEnbPhySapProvider::SendLteControlMessage().
Definition at line 373 of file lte-enb-phy.cc.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetMacPdu().
Referenced by ns3::EnbMemberLteEnbPhySapProvider::SendMacPdu().
|
private |
Definition at line 757 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().
|
private |
Definition at line 780 of file lte-enb-phy.cc.
References ns3::LtePhy::m_dlEarfcn, ns3::LtePhy::m_ulEarfcn, and NS_LOG_FUNCTION.
|
private |
Definition at line 930 of file lte-enb-phy.cc.
References m_mib, and NS_LOG_FUNCTION.
|
private |
Definition at line 897 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::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
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().
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().
|
virtual |
generate a CQI report based on the given SINR of Ctrl frame
sinr | the 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().
|
virtual |
generate a CQI report based on the given SINR of Data frame (used for PUSCH CQIs)
sinr | the 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().
Ptr< LteSpectrumPhy > ns3::LteEnbPhy::GetDlSpectrumPhy | ( | ) | const |
Definition at line 323 of file lte-enb-phy.cc.
References ns3::LtePhy::m_downlinkSpectrumPhy.
Referenced by GetTypeId().
std::vector< int > ns3::LteEnbPhy::GetDownlinkSubChannels | ( | void | ) |
Definition at line 403 of file lte-enb-phy.cc.
References m_listOfDownlinkSubchannel, and NS_LOG_FUNCTION.
Referenced by CreateTxPowerSpectralDensity().
LteEnbCphySapProvider * ns3::LteEnbPhy::GetLteEnbCphySapProvider | ( | ) |
Get the CPHY 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.
Definition at line 248 of file lte-enb-phy.cc.
References m_enbPhySapProvider.
uint8_t ns3::LteEnbPhy::GetMacChDelay | ( | void | ) | const |
Definition at line 317 of file lte-enb-phy.cc.
References ns3::LtePhy::m_macChTtiDelay.
Referenced by GetTypeId().
double ns3::LteEnbPhy::GetNoiseFigure | ( | ) | const |
Definition at line 289 of file lte-enb-phy.cc.
References ns3::LtePhy::m_noiseFigure, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
double ns3::LteEnbPhy::GetTxPower | ( | ) | const |
Definition at line 275 of file lte-enb-phy.cc.
References ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
static |
Reimplemented from ns3::LtePhy.
Definition at line 151 of file lte-enb-phy.cc.
References ns3::TypeId::ATTR_GET, GetDlSpectrumPhy(), GetMacChDelay(), GetNoiseFigure(), GetTxPower(), GetUlSpectrumPhy(), m_dlPhyTransmission, m_interferenceSamplePeriod, m_reportInterferenceTrace, m_reportUeSinr, m_srsSamplePeriod, ns3::MakeTraceSourceAccessor(), SetMacChDelay(), SetNoiseFigure(), ns3::TypeId::SetParent(), and SetTxPower().
Ptr< LteSpectrumPhy > ns3::LteEnbPhy::GetUlSpectrumPhy | ( | ) | const |
Definition at line 329 of file lte-enb-phy.cc.
References ns3::LtePhy::m_uplinkSpectrumPhy.
Referenced by GetTypeId().
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().
void ns3::LteEnbPhy::QueueUlDci | ( | UlDciLteControlMessage | m | ) |
m | the 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().
|
virtual |
Receive the control message.
msg | the 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().
|
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().
|
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().
|
virtual |
generate a report based on the linear interference and noise power perceived during DATA frame NOTE: used only by eNB
sinr | the 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.
|
virtual |
generate a report based on the linear RS power perceived during CTRL frame NOTE: used only by UE for evaluating RSRP
sinr | the 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.
ctrlMsgList | the 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().
void ns3::LteEnbPhy::SendDataChannels | ( | Ptr< PacketBurst > | pb | ) |
Send the PDSCH.
pb | the 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().
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
mask | 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 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().
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.
s | a 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.
s | a 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 | ) |
delay | the 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().
void ns3::LteEnbPhy::SetNoiseFigure | ( | double | pow | ) |
pw | the 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().
void ns3::LteEnbPhy::SetTxPower | ( | double | pow | ) |
pw | the 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().
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().
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().
|
friend |
Definition at line 49 of file lte-enb-phy.h.
Referenced by LteEnbPhy().
|
friend |
Definition at line 50 of file lte-enb-phy.h.
|
private |
Definition at line 301 of file lte-enb-phy.h.
Referenced by CreateSrsCqiReport(), and StartSubFrame().
|
private |
Definition at line 284 of file lte-enb-phy.h.
Referenced by SendDataChannels(), and StartSubFrame().
|
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().
|
private |
Definition at line 291 of file lte-enb-phy.h.
Referenced by DoDispose(), GetLteEnbCphySapProvider(), and LteEnbPhy().
|
private |
Definition at line 292 of file lte-enb-phy.h.
Referenced by SetLteEnbCphySapUser().
|
private |
Definition at line 288 of file lte-enb-phy.h.
Referenced by DoDispose(), GetLteEnbPhySapProvider(), and LteEnbPhy().
|
private |
Definition at line 289 of file lte-enb-phy.h.
Referenced by GenerateCtrlCqiReport(), GenerateDataCqiReport(), PhyPduReceived(), ReceiveLteControlMessage(), ReceiveLteControlMessageList(), ReceiveLteUlHarqFeedback(), SetLteEnbPhySapUser(), and StartSubFrame().
|
private |
Definition at line 305 of file lte-enb-phy.h.
Referenced by LteEnbPhy(), SetHarqPhyModule(), and StartSubFrame().
|
private |
Definition at line 322 of file lte-enb-phy.h.
Referenced by ReportInterference().
|
private |
Definition at line 321 of file lte-enb-phy.h.
Referenced by GetTypeId(), and ReportInterference().
|
private |
Definition at line 282 of file lte-enb-phy.h.
Referenced by GetDownlinkSubChannels(), and SetDownlinkSubChannels().
|
private |
Definition at line 303 of file lte-enb-phy.h.
Referenced by DoSetMasterInformationBlock(), and StartFrame().
|
private |
Definition at line 294 of file lte-enb-phy.h.
Referenced by StartFrame(), and StartSubFrame().
|
private |
Definition at line 295 of file lte-enb-phy.h.
Referenced by EndSubFrame(), StartFrame(), and StartSubFrame().
|
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().
|
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().
|
private |
Definition at line 299 of file lte-enb-phy.h.
Referenced by DoSetSrsConfigurationIndex().
|
private |
Definition at line 297 of file lte-enb-phy.h.
Referenced by DoSetSrsConfigurationIndex(), and StartSubFrame().
|
private |
Definition at line 313 of file lte-enb-phy.h.
Referenced by CreateSrsReport().
|
private |
Definition at line 312 of file lte-enb-phy.h.
Referenced by CreateSrsReport(), and GetTypeId().
|
private |
Definition at line 298 of file lte-enb-phy.h.
Referenced by DoSetSrsConfigurationIndex(), and GenerateCtrlCqiReport().
|
private |
Definition at line 300 of file lte-enb-phy.h.
Referenced by CreateSrsCqiReport(), DoDispose(), and DoSetSrsConfigurationIndex().
|
private |
Definition at line 280 of file lte-enb-phy.h.
Referenced by AddUePhy(), DeleteUePhy(), DoDispose(), and StartSubFrame().
|
private |
Definition at line 286 of file lte-enb-phy.h.
Referenced by DequeueUlDci(), QueueUlDci(), and SetMacChDelay().