#include <lte-phy.h>
Public Member Functions | |
LtePhy () | |
LtePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy) | |
virtual | ~LtePhy () |
virtual Ptr< SpectrumValue > | CreateTxPowerSpectralDensity ()=0 |
Compute the TX Power Spectral Density. | |
void | DoDispose () |
virtual void | DoSendMacPdu (Ptr< Packet > p)=0 |
Queue the MAC PDU to be sent (according to m_macChTtiDelay) | |
void | DoSetCellId (uint16_t cellId) |
virtual void | GenerateCtrlCqiReport (const SpectrumValue &sinr)=0 |
virtual void | GenerateDataCqiReport (const SpectrumValue &sinr)=0 |
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 () |
virtual void | ReportInterference (const SpectrumValue &power)=0 |
virtual void | ReportRsReceivedPower (const SpectrumValue &interf)=0 |
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) |
Protected Attributes | |
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 |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
The LtePhy models the physical layer of LTE. It is composed by two LteSpectrumPhy, one for the downlink and one for the uplink.
Doxygen introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.
ns3::LtePhy::LtePhy | ( | ) |
Definition at line 39 of file lte-phy.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
ns3::LtePhy::LtePhy | ( | Ptr< LteSpectrumPhy > | dlPhy, |
Ptr< LteSpectrumPhy > | ulPhy | ||
) |
dlPhy | the downlink LteSpectrumPhy instance |
ulPhy | the uplink LteSpectrumPhy instance |
Definition at line 45 of file lte-phy.cc.
References NS_LOG_FUNCTION.
|
virtual |
Definition at line 69 of file lte-phy.cc.
References NS_LOG_FUNCTION.
|
pure virtual |
Compute the TX Power Spectral Density.
Implemented in ns3::LteEnbPhy, ns3::LteUePhy, and ns3::LteTestUePhy.
|
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.
Reimplemented in ns3::LteUePhy, ns3::LteEnbPhy, and ns3::LteTestUePhy.
Definition at line 75 of file lte-phy.cc.
References ns3::Object::Dispose(), m_controlMessagesQueue, m_downlinkSpectrumPhy, m_netDevice, m_packetBurstQueue, m_uplinkSpectrumPhy, and NS_LOG_FUNCTION.
Queue the MAC PDU to be sent (according to m_macChTtiDelay)
p | the MAC PDU to sent |
Implemented in ns3::LteTestUePhy.
void ns3::LtePhy::DoSetCellId | ( | uint16_t | cellId | ) |
cellId | the Cell Identifier |
Definition at line 245 of file lte-phy.cc.
References m_cellId, m_downlinkSpectrumPhy, m_uplinkSpectrumPhy, and ns3::LteSpectrumPhy::SetCellId().
Referenced by ns3::EnbMemberLteEnbPhySapProvider::SetCellId().
|
pure virtual |
generate a CQI report based on the given SINR of Ctrl frame
sinr | the SINR vs frequency measured by the device |
Implemented in ns3::LteEnbPhy, ns3::LteUePhy, and ns3::LteTestUePhy.
Referenced by ns3::LteCtrlSinrChunkProcessor::End().
|
pure 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 |
Implemented in ns3::LteEnbPhy, ns3::LteUePhy, and ns3::LteTestUePhy.
Referenced by ns3::LteDataSinrChunkProcessor::End().
std::list< Ptr< LteControlMessage > > ns3::LtePhy::GetControlMessages | ( | void | ) |
Definition at line 222 of file lte-phy.cc.
References m_controlMessagesQueue, and NS_LOG_FUNCTION.
Referenced by ns3::LteEnbPhy::StartSubFrame(), and ns3::LteUePhy::SubframeIndication().
Ptr< LteNetDevice > ns3::LtePhy::GetDevice | ( | void | ) |
Get the device where the phy layer is attached.
Definition at line 97 of file lte-phy.cc.
References m_netDevice, and NS_LOG_FUNCTION.
Referenced by ns3::LteUePhy::GenerateCtrlCqiReport().
Ptr< LteSpectrumPhy > ns3::LtePhy::GetDownlinkSpectrumPhy | ( | ) |
Definition at line 104 of file lte-phy.cc.
References m_downlinkSpectrumPhy.
Referenced by ns3::LteHelper::AssignStreams(), ns3::AnimationInterface::ConnectLteEnb(), ns3::AnimationInterface::ConnectLteUe(), ns3::LteLinkAdaptationTestCase::DoRun(), ns3::LteInterferenceTestCase::DoRun(), and ns3::LteEnbAntennaTestCase::DoRun().
Ptr< PacketBurst > ns3::LtePhy::GetPacketBurst | ( | void | ) |
Definition at line 195 of file lte-phy.cc.
References m_packetBurstQueue.
Referenced by ns3::LteEnbPhy::StartSubFrame(), and ns3::LteUePhy::SubframeIndication().
uint8_t ns3::LtePhy::GetRbgSize | ( | void | ) | const |
Definition at line 183 of file lte-phy.cc.
References m_rbgSize.
Referenced by ns3::LteUePhy::CreateDlCqiFeedbackMessage(), ns3::LteUePhy::ReceiveLteControlMessageList(), and ns3::LteEnbPhy::StartSubFrame().
uint16_t ns3::LtePhy::GetSrsPeriodicity | ( | uint16_t | srcCi | ) | const |
srcCi | the SRS Configuration Index |
Definition at line 147 of file lte-phy.cc.
Referenced by ns3::LteUePhy::DoSetSrsConfigurationIndex(), and ns3::LteEnbPhy::DoSetSrsConfigurationIndex().
uint16_t ns3::LtePhy::GetSrsSubframeOffset | ( | uint16_t | srcCi | ) | const |
srcCi | the SRS Configuration Index |
Definition at line 165 of file lte-phy.cc.
Referenced by ns3::LteUePhy::DoSetSrsConfigurationIndex(), and ns3::LteEnbPhy::DoSetSrsConfigurationIndex().
double ns3::LtePhy::GetTti | ( | void | ) | const |
Definition at line 139 of file lte-phy.cc.
References m_tti, and NS_LOG_FUNCTION.
Referenced by ns3::LteEnbPhy::StartSubFrame(), and ns3::LteUePhy::SubframeIndication().
|
static |
Reimplemented from ns3::Object.
Reimplemented in ns3::LteUePhy, ns3::LteEnbPhy, and ns3::LteTestUePhy.
Definition at line 60 of file lte-phy.cc.
References ns3::TypeId::SetParent().
Ptr< LteSpectrumPhy > ns3::LtePhy::GetUplinkSpectrumPhy | ( | ) |
Definition at line 110 of file lte-phy.cc.
References m_uplinkSpectrumPhy.
Referenced by ns3::LteHelper::AssignStreams(), ns3::AnimationInterface::ConnectLteEnb(), ns3::AnimationInterface::ConnectLteUe(), ns3::LteInterferenceTestCase::DoRun(), and ns3::LteEnbAntennaTestCase::DoRun().
|
pure 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 |
Implemented in ns3::LteEnbPhy, ns3::LteUePhy, and ns3::LteTestUePhy.
Referenced by ns3::LteInterferencePowerChunkProcessor::End().
|
pure 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 |
Implemented in ns3::LteEnbPhy, ns3::LteUePhy, and ns3::LteTestUePhy.
Referenced by ns3::LteRsReceivedPowerChunkProcessor::End().
void ns3::LtePhy::SetControlMessages | ( | Ptr< LteControlMessage > | m | ) |
m | the control message to be sent |
Definition at line 214 of file lte-phy.cc.
References m_controlMessagesQueue.
Referenced by ns3::LteUePhy::DoSendLteControlMessage(), ns3::LteEnbPhy::DoSendLteControlMessage(), and ns3::LteUePhy::ReceiveLteDlHarqFeedback().
void ns3::LtePhy::SetDevice | ( | Ptr< LteNetDevice > | d | ) |
Set the device where the phy layer is attached.
d | the device |
Definition at line 89 of file lte-phy.cc.
References m_netDevice, and NS_LOG_FUNCTION.
void ns3::LtePhy::SetDownlinkChannel | ( | Ptr< SpectrumChannel > | c | ) |
Set the downlink channel
c | the downlink channel |
Definition at line 117 of file lte-phy.cc.
References m_downlinkSpectrumPhy, NS_LOG_FUNCTION, and ns3::LteSpectrumPhy::SetChannel().
p | queue MAC PDU to be sent |
Definition at line 189 of file lte-phy.cc.
References m_packetBurstQueue.
Referenced by ns3::LteUePhy::DoSendMacPdu(), and ns3::LteEnbPhy::DoSendMacPdu().
void ns3::LtePhy::SetTti | ( | double | tti | ) |
Receive SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.
msg | the Ideal Control Message to receive |
tti | transmission time interval |
Definition at line 131 of file lte-phy.cc.
References m_tti, and NS_LOG_FUNCTION.
void ns3::LtePhy::SetUplinkChannel | ( | Ptr< SpectrumChannel > | c | ) |
Set the uplink channel
c | the uplink channel |
Definition at line 124 of file lte-phy.cc.
References m_uplinkSpectrumPhy, NS_LOG_FUNCTION, and ns3::LteSpectrumPhy::SetChannel().
|
protected |
Definition at line 242 of file lte-phy.h.
Referenced by ns3::LteUePhy::CreateDlCqiFeedbackMessage(), ns3::LteEnbPhy::CreateSrsReport(), DoSetCellId(), ns3::LteUePhy::DoSetSrsConfigurationIndex(), ns3::LteUePhy::DoSyncronizeWithEnb(), ns3::LteUePhy::ReceiveLteControlMessageList(), ns3::LteEnbPhy::ReportInterference(), ns3::LteEnbPhy::SendControlChannels(), ns3::LteUePhy::SendSrs(), ns3::LteEnbPhy::StartSubFrame(), and ns3::LteUePhy::SubframeIndication().
|
protected |
Definition at line 239 of file lte-phy.h.
Referenced by DoDispose(), ns3::LteUePhy::DoReset(), ns3::LteUePhy::DoSendRachPreamble(), GetControlMessages(), SetControlMessages(), ns3::LteEnbPhy::SetMacChDelay(), and ns3::LteEnbPhy::StartFrame().
|
protected |
|
protected |
Definition at line 235 of file lte-phy.h.
Referenced by ns3::LteEnbPhy::CreateTxPowerSpectralDensity(), ns3::LteUePhy::DoSetDlBandwidth(), ns3::LteEnbPhy::DoSetEarfcn(), and ns3::LteUePhy::DoSyncronizeWithEnb().
|
protected |
Definition at line 224 of file lte-phy.h.
Referenced by DoDispose(), ns3::LteUePhy::DoReset(), DoSetCellId(), ns3::LteUePhy::DoSetDlBandwidth(), ns3::LteUePhy::DoSetTransmissionMode(), ns3::LteUePhy::DoSyncronizeWithEnb(), ns3::LteUePhy::GetDlSpectrumPhy(), ns3::LteEnbPhy::GetDlSpectrumPhy(), GetDownlinkSpectrumPhy(), ns3::LteEnbPhy::LteEnbPhy(), ns3::LteUePhy::ReceiveLteControlMessageList(), ns3::LteEnbPhy::SendControlChannels(), ns3::LteEnbPhy::SendDataChannels(), SetDownlinkChannel(), ns3::LteEnbPhy::SetDownlinkSubChannels(), and ns3::LteUePhy::SetTxModeGain().
|
protected |
Definition at line 240 of file lte-phy.h.
Referenced by ns3::LteEnbPhy::DoGetMacChTtiDelay(), ns3::LteUePhy::DoReset(), ns3::LteEnbPhy::DoSetSrsConfigurationIndex(), ns3::LteUePhy::GetMacChDelay(), ns3::LteEnbPhy::GetMacChDelay(), ns3::LteUePhy::LteUePhy(), ns3::LteUePhy::QueueSubChannelsForTransmission(), ns3::LteEnbPhy::SetMacChDelay(), and ns3::LteUePhy::SubframeIndication().
|
protected |
Definition at line 222 of file lte-phy.h.
Referenced by DoDispose(), GetDevice(), and SetDevice().
|
protected |
Definition at line 228 of file lte-phy.h.
Referenced by ns3::LteEnbPhy::DoInitialize(), ns3::LteUePhy::DoSetDlBandwidth(), ns3::LteUePhy::DoSyncronizeWithEnb(), ns3::LteUePhy::GetNoiseFigure(), ns3::LteEnbPhy::GetNoiseFigure(), ns3::LteUePhy::SetNoiseFigure(), and ns3::LteEnbPhy::SetNoiseFigure().
|
protected |
Definition at line 238 of file lte-phy.h.
Referenced by DoDispose(), ns3::LteUePhy::DoReset(), GetPacketBurst(), ns3::LteEnbPhy::SetMacChDelay(), and SetMacPdu().
|
protected |
Definition at line 233 of file lte-phy.h.
Referenced by ns3::LteEnbPhy::DoSetBandwidth(), ns3::LteUePhy::DoSetDlBandwidth(), and GetRbgSize().
|
protected |
|
protected |
Definition at line 227 of file lte-phy.h.
Referenced by ns3::LteUePhy::CreateTxPowerSpectralDensity(), ns3::LteEnbPhy::CreateTxPowerSpectralDensity(), ns3::LteEnbPhy::GetTxPower(), ns3::LteUePhy::GetTxPower(), ns3::LteEnbPhy::SetTxPower(), and ns3::LteUePhy::SetTxPower().
|
protected |
Definition at line 231 of file lte-phy.h.
Referenced by ns3::LteUePhy::CreateTxPowerSpectralDensity(), ns3::LteUePhy::DoConfigureUplink(), ns3::LteEnbPhy::DoInitialize(), ns3::LteEnbPhy::DoSetBandwidth(), and ns3::LteUePhy::SendSrs().
|
protected |
Definition at line 236 of file lte-phy.h.
Referenced by ns3::LteUePhy::CreateTxPowerSpectralDensity(), ns3::LteUePhy::DoConfigureUplink(), ns3::LteEnbPhy::DoInitialize(), and ns3::LteEnbPhy::DoSetEarfcn().
|
protected |
Definition at line 225 of file lte-phy.h.
Referenced by DoDispose(), ns3::LteEnbPhy::DoInitialize(), ns3::LteUePhy::DoReset(), DoSetCellId(), ns3::LteUePhy::DoSyncronizeWithEnb(), ns3::LteUePhy::GetUlSpectrumPhy(), ns3::LteEnbPhy::GetUlSpectrumPhy(), GetUplinkSpectrumPhy(), ns3::LteEnbPhy::LteEnbPhy(), ns3::LteUePhy::SendSrs(), ns3::LteUePhy::SetSubChannelsForTransmission(), SetUplinkChannel(), ns3::LteEnbPhy::StartSubFrame(), and ns3::LteUePhy::SubframeIndication().