The LtePhy models the physical layer of LTE. More...
#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. More... | |
void | DoDispose () |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
virtual void | DoSendMacPdu (Ptr< Packet > p)=0 |
Queue the MAC PDU to be sent (according to m_macChTtiDelay) More... | |
void | DoSetCellId (uint16_t cellId) |
virtual void | GenerateCtrlCqiReport (const SpectrumValue &sinr)=0 |
generate a CQI report based on the given SINR of Ctrl frame More... | |
virtual void | GenerateDataCqiReport (const SpectrumValue &sinr)=0 |
generate a CQI report based on the given SINR of Data frame (used for PUSCH CQIs) More... | |
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 () |
virtual void | ReportInterference (const SpectrumValue &interf)=0 |
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)=0 |
generate a report based on the linear RS power perceived during CTRL frame NOTE: used only by UE for evaluating RSRP More... | |
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::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... | |
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 | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
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... | |
The LtePhy models the physical layer of LTE.
Doxygen introspection did not find any typical Config paths.
It is composed by two LteSpectrumPhy, one for the downlink and one for the uplink.
No Attributes are defined for this type.
No TraceSources are defined for this type.
ns3::LtePhy::LtePhy | ( | ) |
Definition at line 40 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 46 of file lte-phy.cc.
References NS_LOG_FUNCTION.
|
virtual |
Definition at line 70 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, and ns3::LteTestUePhy.
Definition at line 76 of file lte-phy.cc.
References ns3::Object::DoDispose(), m_controlMessagesQueue, m_downlinkSpectrumPhy, m_netDevice, m_packetBurstQueue, m_uplinkSpectrumPhy, and NS_LOG_FUNCTION.
Referenced by ns3::LteTestUePhy::DoDispose(), ns3::LteEnbPhy::DoDispose(), and ns3::LteUePhy::DoDispose().
Queue the MAC PDU to be sent (according to m_macChTtiDelay)
p | the MAC PDU to sent |
Implemented in ns3::LteEnbPhy, ns3::LteUePhy, and ns3::LteTestUePhy.
void ns3::LtePhy::DoSetCellId | ( | uint16_t | cellId | ) |
cellId | the Cell Identifier |
Definition at line 246 of file lte-phy.cc.
References m_cellId, m_downlinkSpectrumPhy, and m_uplinkSpectrumPhy.
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.
|
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.
std::list< Ptr< LteControlMessage > > ns3::LtePhy::GetControlMessages | ( | void | ) |
Definition at line 223 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 98 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 105 of file lte-phy.cc.
References m_downlinkSpectrumPhy.
Ptr< PacketBurst > ns3::LtePhy::GetPacketBurst | ( | void | ) |
Definition at line 196 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 184 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 148 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 166 of file lte-phy.cc.
Referenced by ns3::LteUePhy::DoSetSrsConfigurationIndex(), and ns3::LteEnbPhy::DoSetSrsConfigurationIndex().
double ns3::LtePhy::GetTti | ( | void | ) | const |
Definition at line 140 of file lte-phy.cc.
References m_tti, and NS_LOG_FUNCTION.
Referenced by ns3::LteEnbPhy::StartSubFrame(), and ns3::LteUePhy::SubframeIndication().
|
static |
Definition at line 61 of file lte-phy.cc.
References ns3::TypeId::SetParent().
Ptr< LteSpectrumPhy > ns3::LtePhy::GetUplinkSpectrumPhy | ( | ) |
Definition at line 111 of file lte-phy.cc.
References m_uplinkSpectrumPhy.
|
pure 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 |
Implemented in ns3::LteEnbPhy, ns3::LteUePhy, and ns3::LteTestUePhy.
|
pure 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 |
Implemented in ns3::LteEnbPhy, ns3::LteUePhy, and ns3::LteTestUePhy.
void ns3::LtePhy::SetControlMessages | ( | Ptr< LteControlMessage > | m | ) |
m | the control message to be sent |
Definition at line 215 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 90 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 118 of file lte-phy.cc.
References m_downlinkSpectrumPhy, and NS_LOG_FUNCTION.
p | queue MAC PDU to be sent |
Definition at line 190 of file lte-phy.cc.
References m_packetBurstQueue.
Referenced by ns3::LteUePhy::DoSendMacPdu(), and ns3::LteEnbPhy::DoSendMacPdu().
void ns3::LtePhy::SetTti | ( | double | tti | ) |
tti | transmission time interval |
Definition at line 132 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 125 of file lte-phy.cc.
References m_uplinkSpectrumPhy, and NS_LOG_FUNCTION.
|
protected |
Definition at line 235 of file lte-phy.h.
Referenced by ns3::LteEnbPhy::CreateSrsReport(), DoSetCellId(), ns3::LteUePhy::DoSetSrsConfigurationIndex(), ns3::LteUePhy::DoSynchronizeWithEnb(), ns3::LteUePhy::GenerateCtrlCqiReport(), ns3::LteUePhy::ReceiveLteControlMessageList(), ns3::LteUePhy::ReceivePss(), ns3::LteEnbPhy::ReportInterference(), ns3::LteUePhy::ReportUeMeasurements(), ns3::LteEnbPhy::SendControlChannels(), ns3::LteUePhy::SendSrs(), ns3::LteEnbPhy::StartSubFrame(), ns3::LteUePhy::SubframeIndication(), and ns3::LteUePhy::SwitchToState().
|
protected |
Definition at line 232 of file lte-phy.h.
Referenced by DoDispose(), ns3::LteUePhy::DoReset(), ns3::LteUePhy::DoSendRachPreamble(), GetControlMessages(), SetControlMessages(), ns3::LteEnbPhy::SetMacChDelay(), ns3::LteEnbPhy::StartFrame(), and ns3::LteEnbPhy::StartSubFrame().
|
protected |
Definition at line 225 of file lte-phy.h.
Referenced by ns3::LteUePhy::CreateDlCqiFeedbackMessage(), ns3::LteEnbPhy::CreateTxPowerSpectralDensity(), ns3::LteEnbPhy::DoSetBandwidth(), ns3::LteUePhy::DoSetDlBandwidth(), and ns3::LteEnbPhy::SendControlChannels().
|
protected |
Definition at line 228 of file lte-phy.h.
Referenced by ns3::LteEnbPhy::CreateTxPowerSpectralDensity(), ns3::LteUePhy::DoSetDlBandwidth(), ns3::LteEnbPhy::DoSetEarfcn(), ns3::LteUePhy::DoStartCellSearch(), and ns3::LteUePhy::DoSynchronizeWithEnb().
|
protected |
Definition at line 217 of file lte-phy.h.
Referenced by DoDispose(), ns3::LteUePhy::DoReset(), DoSetCellId(), ns3::LteUePhy::DoSetDlBandwidth(), ns3::LteUePhy::DoSetTransmissionMode(), ns3::LteUePhy::DoSynchronizeWithEnb(), ns3::LteEnbPhy::GetDlSpectrumPhy(), ns3::LteUePhy::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 233 of file lte-phy.h.
Referenced by ns3::LteEnbPhy::DoGetMacChTtiDelay(), ns3::LteUePhy::DoReset(), ns3::LteEnbPhy::DoSetSrsConfigurationIndex(), ns3::LteEnbPhy::GetMacChDelay(), ns3::LteUePhy::GetMacChDelay(), ns3::LteUePhy::LteUePhy(), ns3::LteUePhy::QueueSubChannelsForTransmission(), ns3::LteEnbPhy::SetMacChDelay(), and ns3::LteUePhy::SubframeIndication().
|
protected |
Definition at line 215 of file lte-phy.h.
Referenced by DoDispose(), GetDevice(), and SetDevice().
|
protected |
Definition at line 221 of file lte-phy.h.
Referenced by ns3::LteEnbPhy::DoInitialize(), ns3::LteUePhy::DoSetDlBandwidth(), ns3::LteEnbPhy::GetNoiseFigure(), ns3::LteUePhy::GetNoiseFigure(), ns3::LteEnbPhy::SetNoiseFigure(), and ns3::LteUePhy::SetNoiseFigure().
|
protected |
Definition at line 231 of file lte-phy.h.
Referenced by DoDispose(), ns3::LteUePhy::DoReset(), GetPacketBurst(), ns3::LteEnbPhy::SetMacChDelay(), and SetMacPdu().
|
protected |
Definition at line 226 of file lte-phy.h.
Referenced by ns3::LteEnbPhy::DoSetBandwidth(), ns3::LteUePhy::DoSetDlBandwidth(), and GetRbgSize().
|
protected |
|
protected |
Definition at line 220 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 224 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 229 of file lte-phy.h.
Referenced by ns3::LteUePhy::CreateTxPowerSpectralDensity(), ns3::LteUePhy::DoConfigureUplink(), ns3::LteEnbPhy::DoInitialize(), and ns3::LteEnbPhy::DoSetEarfcn().
|
protected |
Definition at line 218 of file lte-phy.h.
Referenced by DoDispose(), ns3::LteEnbPhy::DoInitialize(), ns3::LteUePhy::DoReset(), DoSetCellId(), ns3::LteUePhy::DoSynchronizeWithEnb(), ns3::LteEnbPhy::GetUlSpectrumPhy(), ns3::LteUePhy::GetUlSpectrumPhy(), GetUplinkSpectrumPhy(), ns3::LteEnbPhy::LteEnbPhy(), ns3::LteUePhy::SendSrs(), ns3::LteUePhy::SetSubChannelsForTransmission(), SetUplinkChannel(), ns3::LteEnbPhy::StartSubFrame(), and ns3::LteUePhy::SubframeIndication().