LteEnbPhy models the physical layer for the eNodeB. More...
#include <lte-enb-phy.h>
Public Types | |
typedef void(* | ReportInterferenceTracedCallback) (const uint16_t cellId, const Ptr< const SpectrumValue > spectrumValue) |
TracedCallback signature for the linear average of SRS SINRs. More... | |
typedef void(* | ReportUeSinrTracedCallback) (const uint16_t cellId, const uint16_t rnti, const double sinrLinear) |
TracedCallback signature for the linear average of SRS SINRs. More... | |
Public Member Functions | |
LteEnbPhy () | |
LteEnbPhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy) | |
virtual | ~LteEnbPhy () |
void | CalcChannelQualityForUe (std::vector< double > sinr, Ptr< LteSpectrumPhy > ue) |
Calculate the channel quality for a given UE. More... | |
FfMacSchedSapProvider::SchedUlCqiInfoReqParameters | CreatePuschCqiReport (const SpectrumValue &sinr) |
Create the UL CQI feedback from SINR values perceived at the physical layer with the PUSCH signal received from eNB. More... | |
FfMacSchedSapProvider::SchedUlCqiInfoReqParameters | CreateSrsCqiReport (const SpectrumValue &sinr) |
Create the UL CQI feedback from SINR values perceived at the physical layer with the SRS signal received from eNB. More... | |
virtual Ptr< SpectrumValue > | CreateTxPowerSpectralDensity () |
Create the PSD for TX. More... | |
virtual Ptr< SpectrumValue > | CreateTxPowerSpectralDensityWithPowerAllocation () |
Create the PSD for TX with power allocation for each RB. More... | |
std::list< UlDciLteControlMessage > | DequeueUlDci (void) |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
int8_t | DoGetReferenceSignalPower () const |
virtual void | DoInitialize (void) |
Initialize() implementation. More... | |
void | EndFrame (void) |
End a LTE frame. More... | |
void | EndSubFrame (void) |
End a LTE sub frame. More... | |
virtual void | GenerateCtrlCqiReport (const SpectrumValue &sinr) |
generate a CQI report based on the given SINR of Ctrl frame More... | |
virtual void | GenerateDataCqiReport (const SpectrumValue &sinr) |
generate a CQI report based on the given SINR of Data frame (used for PUSCH CQIs) More... | |
void | GeneratePowerAllocationMap (uint16_t rnti, int rbId) |
Generate power allocation map (i.e. More... | |
Ptr< 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 | SetDownlinkSubChannelsWithPowerAllocation (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... | |
![]() | |
LtePhy () | |
LtePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy) | |
virtual | ~LtePhy () |
void | DoDispose () |
Destructor implementation. 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... | |
![]() | |
Object () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Implement the GetInstanceTypeId method defined in ObjectBase. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
![]() | |
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... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
bool | AddUePhy (uint16_t rnti) |
Add the given RNTI to the list of attached UE m_ueAttached. More... | |
void | CreateSrsReport (uint16_t rnti, double srs) |
bool | DeleteUePhy (uint16_t rnti) |
Remove the given RNTI from the list of attached UE m_ueAttached. More... | |
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 | DoSetPa (uint16_t rnti, double pa) |
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 |
The DlPhyTransmission trace source. More... | |
std::map< int, double > | m_dlPowerAllocationMap |
DL power allocation map. More... | |
LteEnbCphySapProvider * | m_enbCphySapProvider |
LteEnbCphySapUser * | m_enbCphySapUser |
LteEnbPhySapProvider * | m_enbPhySapProvider |
LteEnbPhySapUser * | m_enbPhySapUser |
Ptr< LteHarqPhy > | m_harqPhyModule |
uint16_t | m_interferenceSampleCounter |
uint16_t | m_interferenceSamplePeriod |
The InterferenceSamplePeriod attribute. More... | |
std::vector< int > | m_listOfDownlinkSubchannel |
A vector of integers, if the i-th value is j it means that the j-th resource block is used for transmission in the downlink. More... | |
LteRrcSap::MasterInformationBlock | m_mib |
The Master Information Block message to be broadcasted every frame. More... | |
uint32_t | m_nrFrames |
The frame number currently served. More... | |
uint32_t | m_nrSubFrames |
The subframe number currently served. More... | |
std::map< uint16_t, double > | m_paMap |
P_A per UE RNTI. More... | |
TracedCallback< uint16_t, Ptr< SpectrumValue > > | m_reportInterferenceTrace |
The ReportInterference trace source. More... | |
TracedCallback< uint16_t, uint16_t, double > | m_reportUeSinr |
The ReportUeSinr trace source. More... | |
LteRrcSap::SystemInformationBlockType1 | m_sib1 |
The System Information Block Type 1 message to be broadcasted. More... | |
std::map< uint16_t, uint16_t > | m_srsCounter |
uint16_t | m_srsPeriodicity |
std::map< uint16_t, uint16_t > | m_srsSampleCounterMap |
uint16_t | m_srsSamplePeriod |
The UeSinrSamplePeriod trace source. More... | |
Time | m_srsStartTime |
std::vector< uint16_t > | m_srsUeOffset |
std::set< uint16_t > | m_ueAttached |
List of RNTI of attached UEs. More... | |
std::vector< std::list< UlDciLteControlMessage > > | m_ulDciQueue |
For storing info on future receptions. More... | |
Friends | |
class | EnbMemberLteEnbPhySapProvider |
class | MemberLteEnbCphySapProvider< LteEnbPhy > |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
uint16_t | m_cellId |
Cell identifier. More... | |
std::vector< std::list< Ptr< LteControlMessage > > > | m_controlMessagesQueue |
A queue of control messages to be sent. More... | |
uint8_t | m_dlBandwidth |
The DL bandwidth in number of PRBs. More... | |
uint16_t | m_dlEarfcn |
The downlink carrier frequency. More... | |
Ptr< LteSpectrumPhy > | m_downlinkSpectrumPhy |
The downlink LteSpectrumPhy associated to this LtePhy. More... | |
uint8_t | m_macChTtiDelay |
Delay between MAC and channel layer in terms of TTIs. More... | |
Ptr< LteNetDevice > | m_netDevice |
Pointer to the NetDevice where this PHY layer is attached. More... | |
double | m_noiseFigure |
Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver. More... | |
std::vector< Ptr< PacketBurst > > | m_packetBurstQueue |
A queue of packet bursts to be sent. More... | |
uint8_t | m_rbgSize |
The RB gruop size according to the bandwidth. More... | |
double | m_tti |
Transmission time interval. More... | |
double | m_txPower |
Transmission power in dBm. More... | |
uint8_t | m_ulBandwidth |
The UL bandwidth in number of PRBs. More... | |
uint16_t | m_ulEarfcn |
The uplink carrier frequency. More... | |
Ptr< LteSpectrumPhy > | m_uplinkSpectrumPhy |
The uplink LteSpectrumPhy associated to this LtePhy. More... | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
LteEnbPhy models the physical layer for the eNodeB.
ns3::LteEnbPhy is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 632 bytes (on a 64-bit architecture).
Definition at line 47 of file lte-enb-phy.h.
typedef void(* ns3::LteEnbPhy::ReportInterferenceTracedCallback) (const uint16_t cellId, const Ptr< const SpectrumValue > spectrumValue) |
TracedCallback signature for the linear average of SRS SINRs.
[in] | cellId | |
[in] | spectrumValue |
Definition at line 303 of file lte-enb-phy.h.
typedef void(* ns3::LteEnbPhy::ReportUeSinrTracedCallback) (const uint16_t cellId, const uint16_t rnti, const double sinrLinear) |
TracedCallback signature for the linear average of SRS SINRs.
[in] | cellId | |
[in] | rnti | |
[in] | sinrLinear |
Definition at line 294 of file lte-enb-phy.h.
ns3::LteEnbPhy::LteEnbPhy | ( | ) |
Definition at line 133 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 139 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 233 of file lte-enb-phy.cc.
|
private |
Add the given RNTI to the list of attached UE m_ueAttached.
rnti | RNTI of a UE |
Definition at line 359 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 479 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 847 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 948 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 983 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 458 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().
|
virtual |
Create the PSD for TX with power allocation for each RB.
Definition at line 468 of file lte-enb-phy.cc.
References ns3::LteSpectrumValueHelper::CreateTxPowerSpectralDensity(), GetDownlinkSubChannels(), ns3::LtePhy::m_dlBandwidth, ns3::LtePhy::m_dlEarfcn, m_dlPowerAllocationMap, ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.
Referenced by SetDownlinkSubChannelsWithPowerAllocation().
|
private |
Remove the given RNTI from the list of attached UE m_ueAttached.
rnti | RNTI of a UE |
Definition at line 377 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 1016 of file lte-enb-phy.cc.
References m_ulDciQueue, and NS_LOG_FUNCTION.
Referenced by StartSubFrame().
|
private |
Definition at line 901 of file lte-enb-phy.cc.
References AddUePhy(), DoSetPa(), NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
virtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an 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 238 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 404 of file lte-enb-phy.cc.
References ns3::LtePhy::m_macChTtiDelay.
Referenced by ns3::EnbMemberLteEnbPhySapProvider::GetMacChTtiDelay().
int8_t ns3::LteEnbPhy::DoGetReferenceSignalPower | ( | ) | const |
Definition at line 299 of file lte-enb-phy.cc.
References ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.
|
virtual |
Initialize() implementation.
This method is called only once by Initialize(). If the user calls Initialize() multiple times, DoInitialize() is called only the first time.
Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject() and AggregateObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 249 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 913 of file lte-enb-phy.cc.
References DeleteUePhy(), m_paMap, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
private |
Definition at line 486 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 397 of file lte-enb-phy.cc.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetMacPdu().
Referenced by ns3::EnbMemberLteEnbPhySapProvider::SendMacPdu().
|
private |
Definition at line 869 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 892 of file lte-enb-phy.cc.
References ns3::LtePhy::m_dlEarfcn, ns3::LtePhy::m_ulEarfcn, and NS_LOG_FUNCTION.
|
private |
Definition at line 1071 of file lte-enb-phy.cc.
References m_mib, and NS_LOG_FUNCTION.
|
private |
Definition at line 930 of file lte-enb-phy.cc.
References m_paMap, and NS_LOG_FUNCTION.
Referenced by DoAddUe().
|
private |
Definition at line 1038 of file lte-enb-phy.cc.
References ns3::LtePhy::GetSrsPeriodicity(), ns3::LtePhy::GetSrsSubframeOffset(), ns3::LtePhy::m_macChTtiDelay, m_srsCounter, m_srsPeriodicity, m_srsStartTime, m_srsUeOffset, ns3::MilliSeconds(), ns3::Simulator::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
private |
Definition at line 1079 of file lte-enb-phy.cc.
References m_sib1, and NS_LOG_FUNCTION.
|
private |
Definition at line 1002 of file lte-enb-phy.cc.
References NS_LOG_FUNCTION.
void ns3::LteEnbPhy::EndFrame | ( | void | ) |
End a LTE frame.
Definition at line 798 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 783 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 806 of file lte-enb-phy.cc.
References CreateSrsCqiReport(), m_enbPhySapUser, m_srsStartTime, ns3::Simulator::Now(), NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::UlCqiReport().
Referenced by ns3::LteHelper::InstallSingleEnbDevice().
|
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 818 of file lte-enb-phy.cc.
References CreatePuschCqiReport(), m_enbPhySapUser, NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::UlCqiReport().
Referenced by ns3::LteHelper::InstallSingleEnbDevice().
void ns3::LteEnbPhy::GeneratePowerAllocationMap | ( | uint16_t | rnti, |
int | rbId | ||
) |
Generate power allocation map (i.e.
tx power level for each RB)
rnti | indicates which UE will occupy this RB |
rbId | indicates which RB UE is using, power level for this RB is power level of UE |
Definition at line 443 of file lte-enb-phy.cc.
References m_dlPowerAllocationMap, m_paMap, ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.
Referenced by StartSubFrame().
Ptr< LteSpectrumPhy > ns3::LteEnbPhy::GetDlSpectrumPhy | ( | ) | const |
Definition at line 347 of file lte-enb-phy.cc.
References ns3::LtePhy::m_downlinkSpectrumPhy.
Referenced by GetTypeId().
std::vector< int > ns3::LteEnbPhy::GetDownlinkSubChannels | ( | void | ) |
Definition at line 436 of file lte-enb-phy.cc.
References m_listOfDownlinkSubchannel, and NS_LOG_FUNCTION.
Referenced by CreateTxPowerSpectralDensity(), and CreateTxPowerSpectralDensityWithPowerAllocation().
LteEnbCphySapProvider * ns3::LteEnbPhy::GetLteEnbCphySapProvider | ( | ) |
Get the CPHY SAP provider.
Definition at line 278 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 265 of file lte-enb-phy.cc.
References m_enbPhySapProvider.
uint8_t ns3::LteEnbPhy::GetMacChDelay | ( | void | ) | const |
Definition at line 341 of file lte-enb-phy.cc.
References ns3::LtePhy::m_macChTtiDelay.
Referenced by GetTypeId().
double ns3::LteEnbPhy::GetNoiseFigure | ( | ) | const |
Definition at line 313 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 292 of file lte-enb-phy.cc.
References ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
static |
Definition at line 159 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::MakeDoubleAccessor(), ns3::MakePointerAccessor(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), SetMacChDelay(), SetNoiseFigure(), ns3::TypeId::SetParent(), and SetTxPower().
Ptr< LteSpectrumPhy > ns3::LteEnbPhy::GetUlSpectrumPhy | ( | ) | const |
Definition at line 353 of file lte-enb-phy.cc.
References ns3::LtePhy::m_uplinkSpectrumPhy.
Referenced by GetTypeId().
PhySpectrum received a new PHY-PDU.
Definition at line 411 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 1009 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 496 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 504 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 1094 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 826 of file lte-enb-phy.cc.
References ns3::LtePhy::m_cellId, m_interferenceSampleCounter, m_interferenceSamplePeriod, m_reportInterferenceTrace, and NS_LOG_FUNCTION.
Referenced by ns3::LteHelper::InstallSingleEnbDevice().
|
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 839 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 749 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 770 of file lte-enb-phy.cc.
References m_dlDataRbMap, ns3::LtePhy::m_downlinkSpectrumPhy, NS_LOG_LOGIC, and SetDownlinkSubChannelsWithPowerAllocation().
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 418 of file lte-enb-phy.cc.
References CreateTxPowerSpectralDensity(), ns3::LtePhy::m_downlinkSpectrumPhy, m_listOfDownlinkSubchannel, and NS_LOG_FUNCTION.
Referenced by SendControlChannels().
void ns3::LteEnbPhy::SetDownlinkSubChannelsWithPowerAllocation | ( | std::vector< int > | mask | ) |
set the resource blocks (a.k.a.
sub channels) and its power to be used in the downlink for transmission
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 427 of file lte-enb-phy.cc.
References CreateTxPowerSpectralDensityWithPowerAllocation(), ns3::LtePhy::m_downlinkSpectrumPhy, m_listOfDownlinkSubchannel, and NS_LOG_FUNCTION.
Referenced by SendDataChannels().
void ns3::LteEnbPhy::SetHarqPhyModule | ( | Ptr< LteHarqPhy > | harq | ) |
Definition at line 1087 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 271 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 259 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 320 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 306 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 285 of file lte-enb-phy.cc.
References ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.
Referenced by LteHandoverTargetTestCase::CellShutdownCallback(), and GetTypeId().
void ns3::LteEnbPhy::StartFrame | ( | void | ) |
Start a LTE frame.
Definition at line 561 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 580 of file lte-enb-phy.cc.
References DequeueUlDci(), ns3::LteControlMessage::DL_DCI, EndSubFrame(), GeneratePowerAllocationMap(), 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_dlPowerAllocationMap, 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(), ns3::Seconds(), 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 387 of file lte-enb-phy.h.
Referenced by CreateSrsCqiReport(), and StartSubFrame().
|
private |
Definition at line 360 of file lte-enb-phy.h.
Referenced by SendDataChannels(), and StartSubFrame().
|
private |
The DlPhyTransmission
trace source.
Contains trace information regarding PHY stats from DL Tx perspective. Exporting a structure with type PhyTransmissionStatParameters.
Definition at line 434 of file lte-enb-phy.h.
Referenced by GetTypeId(), and StartSubFrame().
|
private |
DL power allocation map.
Definition at line 350 of file lte-enb-phy.h.
Referenced by CreateTxPowerSpectralDensityWithPowerAllocation(), GeneratePowerAllocationMap(), and StartSubFrame().
|
private |
Definition at line 368 of file lte-enb-phy.h.
Referenced by DoDispose(), GetLteEnbCphySapProvider(), and LteEnbPhy().
|
private |
Definition at line 369 of file lte-enb-phy.h.
Referenced by SetLteEnbCphySapUser().
|
private |
Definition at line 365 of file lte-enb-phy.h.
Referenced by DoDispose(), GetLteEnbPhySapProvider(), and LteEnbPhy().
|
private |
Definition at line 366 of file lte-enb-phy.h.
Referenced by GenerateCtrlCqiReport(), GenerateDataCqiReport(), PhyPduReceived(), ReceiveLteControlMessage(), ReceiveLteControlMessageList(), ReceiveLteUlHarqFeedback(), SetLteEnbPhySapUser(), and StartSubFrame().
|
private |
Definition at line 401 of file lte-enb-phy.h.
Referenced by LteEnbPhy(), SetHarqPhyModule(), and StartSubFrame().
|
private |
Definition at line 427 of file lte-enb-phy.h.
Referenced by ReportInterference().
|
private |
The InterferenceSamplePeriod
attribute.
The sampling period for reporting interference stats.
Definition at line 426 of file lte-enb-phy.h.
Referenced by GetTypeId(), and ReportInterference().
|
private |
A vector of integers, if the i-th value is j it means that the j-th resource block is used for transmission in the downlink.
If there is no i such that the value of the i-th element is j, it means that RB j is not used.
Definition at line 358 of file lte-enb-phy.h.
Referenced by GetDownlinkSubChannels(), SetDownlinkSubChannels(), and SetDownlinkSubChannelsWithPowerAllocation().
|
private |
The Master Information Block message to be broadcasted every frame.
The message content is specified by the upper layer through the RRC SAP.
Definition at line 393 of file lte-enb-phy.h.
Referenced by DoSetMasterInformationBlock(), and StartFrame().
|
private |
The frame number currently served.
In ns-3, frame number starts from 1. In contrast, the 3GPP standard's frame number starts from 0.
Definition at line 375 of file lte-enb-phy.h.
Referenced by StartFrame(), and StartSubFrame().
|
private |
The subframe number currently served.
In ns-3, subframe number starts from 1. In contrast, the 3GPP standard's subframe number starts from 0. The number resets to the beginning again after 10 subframes.
Definition at line 381 of file lte-enb-phy.h.
Referenced by EndSubFrame(), SendControlChannels(), StartFrame(), and StartSubFrame().
|
private |
P_A per UE RNTI.
Definition at line 347 of file lte-enb-phy.h.
Referenced by DoRemoveUe(), DoSetPa(), and GeneratePowerAllocationMap().
|
private |
The ReportInterference
trace source.
Reporting the interference per PHY RB (TS 36.214 section 5.2.2, measured on DATA). Exporting cell ID and interference linear power per RB basis.
Definition at line 420 of file lte-enb-phy.h.
Referenced by GetTypeId(), and ReportInterference().
|
private |
The ReportUeSinr
trace source.
Reporting the linear average of SRS SINR. Exporting cell ID, RNTI, and SINR in linear unit.
Definition at line 407 of file lte-enb-phy.h.
Referenced by CreateSrsReport(), and GetTypeId().
|
private |
The System Information Block Type 1 message to be broadcasted.
SIB1 is broadcasted every 6th subframe of every odd-numbered radio frame. The message content is specified by the upper layer through the RRC SAP.
Definition at line 399 of file lte-enb-phy.h.
Referenced by DoSetSystemInformationBlockType1(), and StartSubFrame().
|
private |
Definition at line 385 of file lte-enb-phy.h.
Referenced by DoSetSrsConfigurationIndex().
|
private |
Definition at line 383 of file lte-enb-phy.h.
Referenced by DoSetSrsConfigurationIndex(), and StartSubFrame().
|
private |
Definition at line 413 of file lte-enb-phy.h.
Referenced by CreateSrsReport().
|
private |
The UeSinrSamplePeriod
trace source.
The sampling period for reporting UEs' SINR stats.
Definition at line 412 of file lte-enb-phy.h.
Referenced by CreateSrsReport(), and GetTypeId().
|
private |
Definition at line 384 of file lte-enb-phy.h.
Referenced by DoSetSrsConfigurationIndex(), and GenerateCtrlCqiReport().
|
private |
Definition at line 386 of file lte-enb-phy.h.
Referenced by CreateSrsCqiReport(), DoDispose(), and DoSetSrsConfigurationIndex().
|
private |
List of RNTI of attached UEs.
Used for quickly determining whether a UE is attached to this eNodeB or not.
Definition at line 343 of file lte-enb-phy.h.
Referenced by AddUePhy(), DeleteUePhy(), DoDispose(), ReceiveLteControlMessageList(), and StartSubFrame().
|
private |
For storing info on future receptions.
Definition at line 363 of file lte-enb-phy.h.
Referenced by DequeueUlDci(), QueueUlDci(), and SetMacChDelay().