LteEnbPhy models the physical layer for the eNodeB. More...
#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. 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< SpectrumValue > | CreateTxPowerSpectralDensity () |
Create the PSD for TX. More... | |
std::list< UlDciLteControlMessage > | DequeueUlDci (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< LteSpectrumPhy > | GetDlSpectrumPhy () const |
std::vector< int > | GetDownlinkSubChannels (void) |
LteEnbCphySapProvider * | GetLteEnbCphySapProvider () |
Get the CPHY SAP provider. More... | |
LteEnbPhySapProvider * | GetLteEnbPhySapProvider () |
Get the PHY SAP provider. More... | |
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. 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< LteNetDevice > | GetDevice () |
Get the device where the phy layer is attached. More... | |
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. 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... | |
SimpleRefCount & | operator= (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) |
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< 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 127 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 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().
|
virtual |
Definition at line 218 of file lte-enb-phy.cc.
|
private |
Definition at line 337 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 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.
sinr | SINR values vector |
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().
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 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().
|
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().
|
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().
|
private |
Definition at line 355 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 930 of file lte-enb-phy.cc.
References m_ulDciQueue, and NS_LOG_FUNCTION.
Referenced by StartSubFrame().
|
private |
Definition at line 843 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::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.
|
private |
Definition at line 382 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 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.
|
private |
Definition at line 852 of file lte-enb-phy.cc.
References DeleteUePhy(), NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
private |
Definition at line 430 of file lte-enb-phy.cc.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetControlMessages().
Referenced by ns3::EnbMemberLteEnbPhySapProvider::SendLteControlMessage().
Queue the MAC PDU to be sent (according to m_macChTtiDelay)
p | the 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().
|
private |
Definition at line 811 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 834 of file lte-enb-phy.cc.
References ns3::LtePhy::m_dlEarfcn, ns3::LtePhy::m_ulEarfcn, and NS_LOG_FUNCTION.
|
private |
Definition at line 985 of file lte-enb-phy.cc.
References m_mib, and NS_LOG_FUNCTION.
|
private |
Definition at line 952 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::Simulator::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
private |
Definition at line 993 of file lte-enb-phy.cc.
References m_sib1, and NS_LOG_FUNCTION.
|
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().
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().
|
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 748 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 760 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 325 of file lte-enb-phy.cc.
References ns3::LtePhy::m_downlinkSpectrumPhy.
Referenced by GetTypeId().
std::vector< int > ns3::LteEnbPhy::GetDownlinkSubChannels | ( | void | ) |
Definition at line 405 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 263 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 250 of file lte-enb-phy.cc.
References m_enbPhySapProvider.
uint8_t ns3::LteEnbPhy::GetMacChDelay | ( | void | ) | const |
Definition at line 319 of file lte-enb-phy.cc.
References ns3::LtePhy::m_macChTtiDelay.
Referenced by GetTypeId().
double ns3::LteEnbPhy::GetNoiseFigure | ( | ) | const |
Definition at line 291 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 277 of file lte-enb-phy.cc.
References ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
static |
Definition at line 153 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 331 of file lte-enb-phy.cc.
References ns3::LtePhy::m_uplinkSpectrumPhy.
Referenced by GetTypeId().
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().
void ns3::LteEnbPhy::QueueUlDci | ( | UlDciLteControlMessage | m | ) |
m | the 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().
|
virtual |
Receive the control message.
msg | the 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().
|
virtual |
PhySpectrum received a new list of LteControlMessage.
Definition at line 448 of file lte-enb-phy.cc.
References ns3::LteControlMessage::BSR, ns3::LteControlMessage::DL_CQI, ns3::LteControlMessage::DL_HARQ, m_enbPhySapUser, ns3::MacCeListElement_s::m_rnti, ns3::DlInfoListElement_s::m_rnti, ns3::CqiListElement_s::m_rnti, m_ueAttached, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::LteControlMessage::RACH_PREAMBLE, ns3::LteEnbPhySapUser::ReceiveLteControlMessage(), and ns3::LteEnbPhySapUser::ReceiveRachPreamble().
Referenced by ns3::LteHelper::InstallSingleEnbDevice().
|
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().
|
virtual |
generate a report based on the linear interference and noise power perceived during DATA frame NOTE: used only by eNB
interf | the 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.
|
virtual |
generate a report based on the linear RS power perceived during CTRL frame NOTE: used only by UE for evaluating RSRP
power | the 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.
ctrlMsgList | the 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().
void ns3::LteEnbPhy::SendDataChannels | ( | Ptr< PacketBurst > | pb | ) |
Send the PDSCH.
pb | the 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().
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 396 of file lte-enb-phy.cc.
References CreateTxPowerSpectralDensity(), ns3::LtePhy::m_downlinkSpectrumPhy, m_listOfDownlinkSubchannel, and NS_LOG_FUNCTION.
Referenced by SendControlChannels(), and SendDataChannels().
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.
s | a 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.
s | a 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 | ) |
delay | the 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().
void ns3::LteEnbPhy::SetNoiseFigure | ( | double | pow | ) |
pow | the 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().
void ns3::LteEnbPhy::SetTxPower | ( | double | pow | ) |
pow | the 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().
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().
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().
|
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 304 of file lte-enb-phy.h.
Referenced by CreateSrsCqiReport(), and StartSubFrame().
|
private |
Definition at line 287 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 332 of file lte-enb-phy.h.
Referenced by GetTypeId(), and StartSubFrame().
|
private |
Definition at line 294 of file lte-enb-phy.h.
Referenced by DoDispose(), GetLteEnbCphySapProvider(), and LteEnbPhy().
|
private |
Definition at line 295 of file lte-enb-phy.h.
Referenced by SetLteEnbCphySapUser().
|
private |
Definition at line 291 of file lte-enb-phy.h.
Referenced by DoDispose(), GetLteEnbPhySapProvider(), and LteEnbPhy().
|
private |
Definition at line 292 of file lte-enb-phy.h.
Referenced by GenerateCtrlCqiReport(), GenerateDataCqiReport(), PhyPduReceived(), ReceiveLteControlMessage(), ReceiveLteControlMessageList(), ReceiveLteUlHarqFeedback(), SetLteEnbPhySapUser(), and StartSubFrame().
|
private |
Definition at line 309 of file lte-enb-phy.h.
Referenced by LteEnbPhy(), SetHarqPhyModule(), and StartSubFrame().
|
private |
Definition at line 326 of file lte-enb-phy.h.
Referenced by ReportInterference().
|
private |
Definition at line 325 of file lte-enb-phy.h.
Referenced by GetTypeId(), and ReportInterference().
|
private |
Definition at line 285 of file lte-enb-phy.h.
Referenced by GetDownlinkSubChannels(), and SetDownlinkSubChannels().
|
private |
Definition at line 306 of file lte-enb-phy.h.
Referenced by DoSetMasterInformationBlock(), and StartFrame().
|
private |
Definition at line 297 of file lte-enb-phy.h.
Referenced by StartFrame(), and StartSubFrame().
|
private |
Definition at line 298 of file lte-enb-phy.h.
Referenced by EndSubFrame(), SendControlChannels(), 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 324 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 315 of file lte-enb-phy.h.
Referenced by CreateSrsReport(), and GetTypeId().
|
private |
Definition at line 307 of file lte-enb-phy.h.
Referenced by DoSetSystemInformationBlockType1(), and StartSubFrame().
|
private |
Definition at line 302 of file lte-enb-phy.h.
Referenced by DoSetSrsConfigurationIndex().
|
private |
Definition at line 300 of file lte-enb-phy.h.
Referenced by DoSetSrsConfigurationIndex(), and StartSubFrame().
|
private |
Definition at line 317 of file lte-enb-phy.h.
Referenced by CreateSrsReport().
|
private |
Definition at line 316 of file lte-enb-phy.h.
Referenced by CreateSrsReport(), and GetTypeId().
|
private |
Definition at line 301 of file lte-enb-phy.h.
Referenced by DoSetSrsConfigurationIndex(), and GenerateCtrlCqiReport().
|
private |
Definition at line 303 of file lte-enb-phy.h.
Referenced by CreateSrsCqiReport(), DoDispose(), and DoSetSrsConfigurationIndex().
|
private |
Definition at line 283 of file lte-enb-phy.h.
Referenced by AddUePhy(), DeleteUePhy(), DoDispose(), ReceiveLteControlMessageList(), and StartSubFrame().
|
private |
Definition at line 289 of file lte-enb-phy.h.
Referenced by DequeueUlDci(), QueueUlDci(), and SetMacChDelay().