The LteSpectrumPhy models the physical layer of LTE. More...
#include <lte-ue-phy.h>
Classes | |
struct | PssElement |
struct | UeMeasurementsElement |
Public Types | |
enum | State { CELL_SEARCH = 0, SYNCHRONIZED, NUM_STATES } |
The states of the UE PHY entity. More... | |
Public Member Functions | |
LteUePhy () | |
LteUePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy) | |
virtual | ~LteUePhy () |
Ptr< DlCqiLteControlMessage > | CreateDlCqiFeedbackMessage (const SpectrumValue &sinr) |
Create the DL CQI feedback from SINR values perceived at the physical layer with the signal received from eNB. More... | |
virtual Ptr< SpectrumValue > | CreateTxPowerSpectralDensity () |
Create the PSD for the TX. More... | |
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... | |
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 |
LteUeCphySapProvider * | GetLteUeCphySapProvider () |
Get the CPHY SAP provider. More... | |
LteUePhySapProvider * | GetLteUePhySapProvider () |
Get the PHY SAP provider. More... | |
uint8_t | GetMacChDelay (void) const |
double | GetNoiseFigure () const |
State | GetState () const |
std::vector< int > | GetSubChannelsForReception (void) |
Get a list of sub channels to use in RX. More... | |
std::vector< int > | GetSubChannelsForTransmission (void) |
Get a list of sub channels to use in RX. More... | |
double | GetTxPower () const |
Ptr< LteSpectrumPhy > | GetUlSpectrumPhy () const |
void | PhyPduReceived (Ptr< Packet > p) |
PhySpectrum received a new PHY-PDU. More... | |
virtual void | ReceiveLteControlMessageList (std::list< Ptr< LteControlMessage > >) |
virtual void | ReceiveLteDlHarqFeedback (DlInfoListElement_s mes) |
PhySpectrum generated a new DL HARQ feedback. More... | |
virtual void | ReceivePss (uint16_t cellId, Ptr< SpectrumValue > p) |
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 | SendSrs () |
Send the SRS signal in the last symbols of the frame. More... | |
void | SetHarqPhyModule (Ptr< LteHarqPhy > harq) |
Set the HARQ PHY module. More... | |
void | SetLteUeCphySapUser (LteUeCphySapUser *s) |
Set the CPHY SAP User. More... | |
void | SetLteUePhySapUser (LteUePhySapUser *s) |
Set the PHY SAP User. More... | |
void | SetNoiseFigure (double nf) |
void | SetSubChannelsForReception (std::vector< int > mask) |
Get a list of sub channels to use in RX. More... | |
void | SetSubChannelsForTransmission (std::vector< int > mask) |
Set a list of sub channels to use in TX. More... | |
void | SetTxPower (double pow) |
void | SubframeIndication (uint32_t frameNo, uint32_t subframeNo) |
trigger from eNB the start from a new frame More... | |
Public Member Functions inherited from ns3::LtePhy | |
LtePhy () | |
LtePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy) | |
virtual | ~LtePhy () |
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 | |
void | DoConfigureUplink (uint16_t ulEarfcn, uint8_t ulBandwidth) |
void | DoReset () |
virtual void | DoSendLteControlMessage (Ptr< LteControlMessage > msg) |
virtual void | DoSendMacPdu (Ptr< Packet > p) |
Queue the MAC PDU to be sent (according to m_macChTtiDelay) More... | |
virtual void | DoSendRachPreamble (uint32_t prachId, uint32_t raRnti) |
void | DoSetDlBandwidth (uint8_t ulBandwidth) |
void | DoSetRnti (uint16_t rnti) |
void | DoSetSrsConfigurationIndex (uint16_t srcCi) |
void | DoSetTransmissionMode (uint8_t txMode) |
void | DoStartCellSearch (uint16_t dlEarfcn) |
void | DoSynchronizeWithEnb (uint16_t cellId) |
void | DoSynchronizeWithEnb (uint16_t cellId, uint16_t dlEarfcn) |
void | QueueSubChannelsForTransmission (std::vector< int > rbMap) |
void | ReportUeMeasurements () |
Layer-1 filtering of RSRP and RSRQ measurements and reporting to the RRC entity. More... | |
void | SetTxMode1Gain (double gain) |
void | SetTxMode2Gain (double gain) |
void | SetTxMode3Gain (double gain) |
void | SetTxMode4Gain (double gain) |
void | SetTxMode5Gain (double gain) |
void | SetTxMode6Gain (double gain) |
void | SetTxMode7Gain (double gain) |
void | SetTxModeGain (uint8_t txMode, double gain) |
void | SwitchToState (State s) |
Friends | |
class | MemberLteUeCphySapProvider< LteUePhy > |
class | UeMemberLteUePhySapProvider |
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 |
The LteSpectrumPhy models the physical layer of LTE.
ns3::LteUePhy is accessible through the following paths with Config::Set and Config::Connect:
Definition at line 50 of file lte-ue-phy.h.
enum ns3::LteUePhy::State |
The states of the UE PHY entity.
Enumerator | |
---|---|
CELL_SEARCH | |
SYNCHRONIZED | |
NUM_STATES |
Definition at line 60 of file lte-ue-phy.h.
ns3::LteUePhy::LteUePhy | ( | ) |
Definition at line 125 of file lte-ue-phy.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
ns3::LteUePhy::LteUePhy | ( | Ptr< LteSpectrumPhy > | dlPhy, |
Ptr< LteSpectrumPhy > | ulPhy | ||
) |
dlPhy | the downlink LteSpectrumPhy instance |
ulPhy | the uplink LteSpectrumPhy instance |
Definition at line 131 of file lte-ue-phy.cc.
References DoReset(), m_amc, ns3::LtePhy::m_macChTtiDelay, m_ueCphySapProvider, m_ueMeasurementsFilterPeriod, m_uePhySapProvider, ns3::Simulator::Now(), NS_ASSERT_MSG, ReportUeMeasurements(), ns3::Simulator::Schedule(), ns3::Simulator::ScheduleNow(), SubframeIndication(), UeMemberLteUePhySapProvider, and UL_PUSCH_TTIS_DELAY.
|
virtual |
Definition at line 160 of file lte-ue-phy.cc.
References m_txModeGain.
Ptr< DlCqiLteControlMessage > ns3::LteUePhy::CreateDlCqiFeedbackMessage | ( | const SpectrumValue & | sinr | ) |
Create the DL CQI feedback from SINR values perceived at the physical layer with the signal received from eNB.
sinr | SINR values vector |
Definition at line 564 of file lte-ue-phy.cc.
References ns3::CqiListElement_s::A30, ns3::LtePhy::GetRbgSize(), m_a30CqiLast, m_a30CqiPeriocity, m_amc, ns3::LtePhy::m_dlBandwidth, ns3::SbMeasResult_s::m_higherLayerSelected, m_p10CqiLast, m_p10CqiPeriocity, m_rnti, ns3::HigherLayerSelected_s::m_sbCqi, ns3::HigherLayerSelected_s::m_sbPmi, m_transmissionMode, m_txModeGain, ns3::Simulator::Now(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::CqiListElement_s::P10, and ns3::TransmissionModesLayers::TxMode2LayerNum().
Referenced by GenerateCtrlCqiReport().
|
virtual |
Create the PSD for the TX.
Implements ns3::LtePhy.
Definition at line 413 of file lte-ue-phy.cc.
References ns3::LteSpectrumValueHelper::CreateTxPowerSpectralDensity(), GetSubChannelsForTransmission(), ns3::LtePhy::m_txPower, ns3::LtePhy::m_ulBandwidth, ns3::LtePhy::m_ulEarfcn, and NS_LOG_FUNCTION.
Referenced by SetSubChannelsForTransmission().
|
private |
Definition at line 1137 of file lte-ue-phy.cc.
References ns3::LtePhy::m_ulBandwidth, m_ulConfigured, and ns3::LtePhy::m_ulEarfcn.
|
virtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::LtePhy.
Definition at line 166 of file lte-ue-phy.cc.
References ns3::LtePhy::DoDispose(), m_ueCphySapProvider, m_uePhySapProvider, and NS_LOG_FUNCTION.
|
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 279 of file lte-ue-phy.cc.
References ns3::Object::DoInitialize(), and NS_LOG_FUNCTION.
|
private |
Definition at line 1030 of file lte-ue-phy.cc.
References ns3::EventId::Cancel(), m_a30CqiLast, ns3::LtePhy::m_controlMessagesQueue, m_dlConfigured, ns3::LtePhy::m_downlinkSpectrumPhy, ns3::LtePhy::m_macChTtiDelay, m_p10CqiLast, ns3::LtePhy::m_packetBurstQueue, m_raPreambleId, m_raRnti, m_rnti, m_rsrpSinrSampleCounter, m_sendSrsEvent, m_srsConfigured, m_srsPeriodicity, m_subChannelsForTransmissionQueue, m_transmissionMode, m_ulConfigured, ns3::LtePhy::m_uplinkSpectrumPhy, ns3::Simulator::Now(), and NS_LOG_FUNCTION.
Referenced by LteUePhy().
|
privatevirtual |
Definition at line 705 of file lte-ue-phy.cc.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetControlMessages().
Referenced by GenerateCtrlCqiReport(), and ns3::UeMemberLteUePhySapProvider::SendLteControlMessage().
Queue the MAC PDU to be sent (according to m_macChTtiDelay)
p | the MAC PDU to sent |
Implements ns3::LtePhy.
Definition at line 362 of file lte-ue-phy.cc.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetMacPdu().
Referenced by ns3::UeMemberLteUePhySapProvider::SendMacPdu().
|
privatevirtual |
Definition at line 713 of file lte-ue-phy.cc.
References ns3::LtePhy::m_controlMessagesQueue, m_raPreambleId, m_raRnti, and NS_LOG_FUNCTION.
Referenced by ns3::UeMemberLteUePhySapProvider::SendRachPreamble().
|
private |
Definition at line 1106 of file lte-ue-phy.cc.
References ns3::LteSpectrumValueHelper::CreateNoisePowerSpectralDensity(), ns3::LtePhy::m_dlBandwidth, m_dlConfigured, ns3::LtePhy::m_dlEarfcn, ns3::LtePhy::m_downlinkSpectrumPhy, ns3::LtePhy::m_noiseFigure, ns3::LtePhy::m_rbgSize, NS_LOG_FUNCTION, and ns3::Type0AllocationRbg.
Referenced by DoStartCellSearch(), and DoSynchronizeWithEnb().
|
private |
Definition at line 1146 of file lte-ue-phy.cc.
References m_rnti, and NS_LOG_FUNCTION.
|
private |
Definition at line 1161 of file lte-ue-phy.cc.
References ns3::LtePhy::GetSrsPeriodicity(), ns3::LtePhy::GetSrsSubframeOffset(), ns3::LtePhy::m_cellId, m_rnti, m_srsConfigured, m_srsPeriodicity, m_srsStartTime, m_srsSubframeOffset, ns3::Simulator::Now(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
private |
Definition at line 1153 of file lte-ue-phy.cc.
References ns3::LtePhy::m_downlinkSpectrumPhy, m_transmissionMode, and NS_LOG_FUNCTION.
|
private |
Definition at line 1066 of file lte-ue-phy.cc.
References CELL_SEARCH, DoSetDlBandwidth(), ns3::LtePhy::m_dlEarfcn, NS_LOG_FUNCTION, and SwitchToState().
|
private |
Definition at line 1083 of file lte-ue-phy.cc.
References DoSetDlBandwidth(), ns3::LtePhy::m_cellId, m_dlConfigured, ns3::LtePhy::m_downlinkSpectrumPhy, m_ulConfigured, ns3::LtePhy::m_uplinkSpectrumPhy, NS_FATAL_ERROR, NS_LOG_FUNCTION, SwitchToState(), and SYNCHRONIZED.
Referenced by DoSynchronizeWithEnb().
|
private |
Definition at line 1075 of file lte-ue-phy.cc.
References DoSynchronizeWithEnb(), ns3::LtePhy::m_dlEarfcn, and NS_LOG_FUNCTION.
|
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 423 of file lte-ue-phy.cc.
References CELL_SEARCH, ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), CreateDlCqiFeedbackMessage(), DoSendLteControlMessage(), ns3::LtePhy::GetDevice(), m_a30CqiLast, m_a30CqiPeriocity, ns3::LtePhy::m_cellId, m_dlConfigured, m_p10CqiLast, m_p10CqiPeriocity, m_pssList, m_pssReceived, m_pssReceptionThreshold, m_reportCurrentCellRsrpSinrTrace, m_rnti, m_rsInterferencePower, m_rsInterferencePowerUpdated, m_rsReceivedPower, m_rsReceivedPowerUpdated, m_rsrpSinrSampleCounter, m_rsrpSinrSamplePeriod, m_state, m_ueMeasurementsMap, m_ulConfigured, ns3::Simulator::Now(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_INFO.
|
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 540 of file lte-ue-phy.cc.
Ptr< LteSpectrumPhy > ns3::LteUePhy::GetDlSpectrumPhy | ( | ) | const |
Definition at line 350 of file lte-ue-phy.cc.
References ns3::LtePhy::m_downlinkSpectrumPhy.
Referenced by GetTypeId().
LteUeCphySapProvider * ns3::LteUePhy::GetLteUeCphySapProvider | ( | ) |
Get the CPHY SAP provider.
Definition at line 308 of file lte-ue-phy.cc.
References m_ueCphySapProvider, and NS_LOG_FUNCTION.
LteUePhySapProvider * ns3::LteUePhy::GetLteUePhySapProvider | ( | ) |
Get the PHY SAP provider.
Definition at line 293 of file lte-ue-phy.cc.
References m_uePhySapProvider, and NS_LOG_FUNCTION.
uint8_t ns3::LteUePhy::GetMacChDelay | ( | void | ) | const |
Definition at line 344 of file lte-ue-phy.cc.
References ns3::LtePhy::m_macChTtiDelay.
double ns3::LteUePhy::GetNoiseFigure | ( | ) | const |
Definition at line 322 of file lte-ue-phy.cc.
References ns3::LtePhy::m_noiseFigure, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
LteUePhy::State ns3::LteUePhy::GetState | ( | void | ) | const |
Definition at line 1266 of file lte-ue-phy.cc.
References m_state, and NS_LOG_FUNCTION.
std::vector< int > ns3::LteUePhy::GetSubChannelsForReception | ( | void | ) |
Get a list of sub channels to use in RX.
Definition at line 405 of file lte-ue-phy.cc.
References m_subChannelsForReception, and NS_LOG_FUNCTION.
std::vector< int > ns3::LteUePhy::GetSubChannelsForTransmission | ( | void | ) |
Get a list of sub channels to use in RX.
Definition at line 397 of file lte-ue-phy.cc.
References m_subChannelsForTransmission, and NS_LOG_FUNCTION.
Referenced by CreateTxPowerSpectralDensity().
double ns3::LteUePhy::GetTxPower | ( | ) | const |
Definition at line 336 of file lte-ue-phy.cc.
References ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
static |
Definition at line 177 of file lte-ue-phy.cc.
References ns3::TypeId::ATTR_GET, GetDlSpectrumPhy(), GetNoiseFigure(), GetTxPower(), GetUlSpectrumPhy(), m_pssReceptionThreshold, m_reportCurrentCellRsrpSinrTrace, m_reportUeMeasurements, m_rsrpSinrSamplePeriod, m_stateTransitionTrace, m_ueMeasurementsFilterPeriod, m_ulPhyTransmission, ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), SetNoiseFigure(), ns3::TypeId::SetParent(), SetTxMode1Gain(), SetTxMode2Gain(), SetTxMode3Gain(), SetTxMode4Gain(), SetTxMode5Gain(), SetTxMode6Gain(), SetTxMode7Gain(), and SetTxPower().
Ptr< LteSpectrumPhy > ns3::LteUePhy::GetUlSpectrumPhy | ( | ) | const |
Definition at line 356 of file lte-ue-phy.cc.
References ns3::LtePhy::m_uplinkSpectrumPhy.
Referenced by GetTypeId().
PhySpectrum received a new PHY-PDU.
Definition at line 371 of file lte-ue-phy.cc.
References m_uePhySapUser, and ns3::LteUePhySapUser::ReceivePhyPdu().
Referenced by ns3::LteHelper::InstallSingleUeDevice().
|
private |
Definition at line 928 of file lte-ue-phy.cc.
References ns3::LtePhy::m_macChTtiDelay, and m_subChannelsForTransmissionQueue.
Referenced by ReceiveLteControlMessageList().
|
virtual |
Definition at line 727 of file lte-ue-phy.cc.
References ns3::LteControlMessage::DL_DCI, ns3::Time::GetMilliSeconds(), ns3::LtePhy::GetRbgSize(), ns3::PhyTransmissionStatParameters::m_cellId, ns3::LtePhy::m_cellId, ns3::LtePhy::m_downlinkSpectrumPhy, m_harqPhyModule, ns3::PhyTransmissionStatParameters::m_imsi, ns3::PhyTransmissionStatParameters::m_layer, ns3::PhyTransmissionStatParameters::m_mcs, ns3::PhyTransmissionStatParameters::m_ndi, m_raPreambleId, m_raRnti, ns3::PhyTransmissionStatParameters::m_rnti, m_rnti, ns3::PhyTransmissionStatParameters::m_rv, ns3::PhyTransmissionStatParameters::m_size, ns3::PhyTransmissionStatParameters::m_timestamp, ns3::PhyTransmissionStatParameters::m_txMode, m_ueCphySapUser, m_uePhySapUser, m_ulPhyTransmission, ns3::LteControlMessage::MIB, ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, QueueSubChannelsForTransmission(), ns3::LteControlMessage::RAR, ns3::LteUePhySapUser::ReceiveLteControlMessage(), ns3::LteUeCphySapUser::RecvMasterInformationBlock(), ns3::LteUeCphySapUser::RecvSystemInformationBlockType1(), SetSubChannelsForReception(), ns3::LteControlMessage::SIB1, ns3::LteControlMessage::UL_DCI, and UL_PUSCH_TTIS_DELAY.
Referenced by ns3::LteHelper::InstallSingleUeDevice().
|
virtual |
PhySpectrum generated a new DL HARQ feedback.
Definition at line 1249 of file lte-ue-phy.cc.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetControlMessages().
Referenced by ns3::LteHelper::InstallSingleUeDevice().
|
virtual |
Definition at line 874 of file lte-ue-phy.cc.
References ns3::LteUePhy::PssElement::cellId, ns3::LtePhy::m_cellId, m_pssList, m_pssReceived, m_rnti, m_ueMeasurementsMap, ns3::LteUePhy::PssElement::nRB, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteUePhy::PssElement::pssPsdSum, ns3::LteUePhy::UeMeasurementsElement::rsrpNum, ns3::LteUePhy::UeMeasurementsElement::rsrpSum, ns3::LteUePhy::UeMeasurementsElement::rsrqNum, and ns3::LteUePhy::UeMeasurementsElement::rsrqSum.
Referenced by ns3::LteHelper::InstallSingleUeDevice().
|
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 546 of file lte-ue-phy.cc.
References m_rsInterferencePower, m_rsInterferencePowerUpdated, 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 554 of file lte-ue-phy.cc.
References m_rsReceivedPower, m_rsReceivedPowerUpdated, and NS_LOG_FUNCTION.
|
private |
Layer-1 filtering of RSRP and RSRQ measurements and reporting to the RRC entity.
Initially executed at +0.200s, and then repeatedly executed with periodicity as indicated by the UeMeasurementsFilterPeriod attribute.
Definition at line 664 of file lte-ue-phy.cc.
References ns3::LteUeCphySapUser::UeMeasurementsElement::m_cellId, ns3::LtePhy::m_cellId, m_reportUeMeasurements, m_rnti, ns3::LteUeCphySapUser::UeMeasurementsElement::m_rsrp, ns3::LteUeCphySapUser::UeMeasurementsElement::m_rsrq, m_ueCphySapUser, m_ueMeasurementsFilterPeriod, ns3::LteUeCphySapUser::UeMeasurementsParameters::m_ueMeasurementsList, m_ueMeasurementsMap, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::LteUeCphySapUser::ReportUeMeasurements(), and ns3::Simulator::Schedule().
Referenced by LteUePhy().
void ns3::LteUePhy::SendSrs | ( | ) |
Send the SRS signal in the last symbols of the frame.
Definition at line 1014 of file lte-ue-phy.cc.
References ns3::LtePhy::m_cellId, m_rnti, ns3::LtePhy::m_ulBandwidth, ns3::LtePhy::m_uplinkSpectrumPhy, NS_ASSERT, NS_LOG_FUNCTION, and SetSubChannelsForTransmission().
Referenced by SubframeIndication().
void ns3::LteUePhy::SetHarqPhyModule | ( | Ptr< LteHarqPhy > | harq | ) |
void ns3::LteUePhy::SetLteUeCphySapUser | ( | LteUeCphySapUser * | s | ) |
Set the CPHY SAP User.
s | a pointer to the SAP user |
Definition at line 301 of file lte-ue-phy.cc.
References m_ueCphySapUser, NS_LOG_FUNCTION, and s.
void ns3::LteUePhy::SetLteUePhySapUser | ( | LteUePhySapUser * | s | ) |
Set the PHY SAP User.
s | a pointer to the SAP user |
Definition at line 286 of file lte-ue-phy.cc.
References m_uePhySapUser, NS_LOG_FUNCTION, and s.
void ns3::LteUePhy::SetNoiseFigure | ( | double | nf | ) |
nf | the noise figure in dB |
Definition at line 315 of file lte-ue-phy.cc.
References ns3::LtePhy::m_noiseFigure, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::LteUePhy::SetSubChannelsForReception | ( | std::vector< int > | mask | ) |
Get a list of sub channels to use in RX.
mask | list of sub channels |
Definition at line 389 of file lte-ue-phy.cc.
References m_subChannelsForReception, and NS_LOG_FUNCTION.
Referenced by ReceiveLteControlMessageList().
void ns3::LteUePhy::SetSubChannelsForTransmission | ( | std::vector< int > | mask | ) |
Set a list of sub channels to use in TX.
mask | a list of sub channels |
Definition at line 377 of file lte-ue-phy.cc.
References CreateTxPowerSpectralDensity(), m_subChannelsForTransmission, ns3::LtePhy::m_uplinkSpectrumPhy, and NS_LOG_FUNCTION.
Referenced by SendSrs(), and SubframeIndication().
|
private |
Definition at line 1176 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1182 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1188 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1194 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1200 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1206 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1212 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1219 of file lte-ue-phy.cc.
References ns3::LtePhy::m_downlinkSpectrumPhy, m_txModeGain, and NS_LOG_FUNCTION.
Referenced by SetTxMode1Gain(), SetTxMode2Gain(), SetTxMode3Gain(), SetTxMode4Gain(), SetTxMode5Gain(), SetTxMode6Gain(), and SetTxMode7Gain().
void ns3::LteUePhy::SetTxPower | ( | double | pow | ) |
pow | the transmission power in dBm |
Definition at line 329 of file lte-ue-phy.cc.
References ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::LteUePhy::SubframeIndication | ( | uint32_t | frameNo, |
uint32_t | subframeNo | ||
) |
trigger from eNB the start from a new frame
frameNo | frame number |
subframeNo | subframe number |
Definition at line 935 of file lte-ue-phy.cc.
References ns3::LtePhy::GetControlMessages(), ns3::LtePhy::GetPacketBurst(), ns3::LtePhy::GetTti(), ns3::LtePhy::m_cellId, ns3::LtePhy::m_macChTtiDelay, m_pssReceived, m_rnti, m_rsInterferencePowerUpdated, m_rsReceivedPowerUpdated, m_sendSrsEvent, m_srsConfigured, m_srsPeriodicity, m_srsStartTime, m_srsSubframeOffset, m_subChannelsForTransmissionQueue, m_subframeNo, m_uePhySapUser, m_ulConfigured, ns3::LtePhy::m_uplinkSpectrumPhy, ns3::Simulator::Now(), NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::Simulator::Schedule(), SendSrs(), SetSubChannelsForTransmission(), ns3::LteUePhySapUser::SubframeIndication(), ns3::UL_DATA_DURATION, and ns3::UL_SRS_DELAY_FROM_SUBFRAME_START.
Referenced by LteUePhy().
|
private |
Definition at line 1274 of file lte-ue-phy.cc.
References ns3::LtePhy::m_cellId, m_rnti, m_state, m_stateTransitionTrace, NS_LOG_FUNCTION, NS_LOG_INFO, and ns3::ToString().
Referenced by DoStartCellSearch(), and DoSynchronizeWithEnb().
|
friend |
Definition at line 54 of file lte-ue-phy.h.
|
friend |
Definition at line 53 of file lte-ue-phy.h.
Referenced by LteUePhy().
|
private |
Definition at line 286 of file lte-ue-phy.h.
Referenced by CreateDlCqiFeedbackMessage(), DoReset(), and GenerateCtrlCqiReport().
|
private |
Definition at line 285 of file lte-ue-phy.h.
Referenced by CreateDlCqiFeedbackMessage(), and GenerateCtrlCqiReport().
Definition at line 278 of file lte-ue-phy.h.
Referenced by CreateDlCqiFeedbackMessage(), and LteUePhy().
|
private |
Definition at line 304 of file lte-ue-phy.h.
Referenced by DoReset(), DoSetDlBandwidth(), DoSynchronizeWithEnb(), and GenerateCtrlCqiReport().
|
private |
Definition at line 342 of file lte-ue-phy.h.
Referenced by ReceiveLteControlMessageList(), and SetHarqPhyModule().
|
private |
SubBand Aperiodic CQI: activated by DCI format 0 or Random Access Response Grant.
Definition at line 281 of file lte-ue-phy.h.
Referenced by CreateDlCqiFeedbackMessage(), DoReset(), and GenerateCtrlCqiReport().
|
private |
Wideband Periodic CQI: 2, 5, 10, 16, 20, 32, 40, 64, 80 or 160 ms.
Definition at line 280 of file lte-ue-phy.h.
Referenced by CreateDlCqiFeedbackMessage(), and GenerateCtrlCqiReport().
|
private |
Definition at line 326 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), and ReceivePss().
|
private |
Definition at line 319 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), ReceivePss(), and SubframeIndication().
|
private |
Definition at line 328 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), and GetTypeId().
|
private |
Definition at line 344 of file lte-ue-phy.h.
Referenced by DoReset(), DoSendRachPreamble(), and ReceiveLteControlMessageList().
|
private |
Definition at line 345 of file lte-ue-phy.h.
Referenced by DoReset(), DoSendRachPreamble(), and ReceiveLteControlMessageList().
|
private |
Trace information regarding RSRP and average SINR (see TS 36.214) uint16_t cellId, uint16_t rnti, double rsrp, double sinr.
Definition at line 351 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), and GetTypeId().
|
private |
Trace information regarding RSRP and RSRQ (see TS 36.214) uint16_t rnti, uint16_t cellId, double rsrpDbm, double rsrqDb, bool isServingCell.
Definition at line 359 of file lte-ue-phy.h.
Referenced by GetTypeId(), and ReportUeMeasurements().
|
private |
Definition at line 294 of file lte-ue-phy.h.
Referenced by CreateDlCqiFeedbackMessage(), DoReset(), DoSetRnti(), DoSetSrsConfigurationIndex(), GenerateCtrlCqiReport(), ReceiveLteControlMessageList(), ReceivePss(), ReportUeMeasurements(), SendSrs(), SubframeIndication(), and SwitchToState().
|
private |
Definition at line 317 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), and ReportInterference().
|
private |
Definition at line 316 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), ReportInterference(), and SubframeIndication().
|
private |
Definition at line 314 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), and ReportRsReceivedPower().
|
private |
Definition at line 313 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), ReportRsReceivedPower(), and SubframeIndication().
|
private |
Definition at line 353 of file lte-ue-phy.h.
Referenced by DoReset(), and GenerateCtrlCqiReport().
|
private |
Definition at line 352 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), and GetTypeId().
|
private |
Definition at line 361 of file lte-ue-phy.h.
Referenced by DoReset(), and SubframeIndication().
|
private |
Definition at line 301 of file lte-ue-phy.h.
Referenced by DoReset(), DoSetSrsConfigurationIndex(), and SubframeIndication().
|
private |
Definition at line 299 of file lte-ue-phy.h.
Referenced by DoReset(), DoSetSrsConfigurationIndex(), and SubframeIndication().
|
private |
Definition at line 302 of file lte-ue-phy.h.
Referenced by DoSetSrsConfigurationIndex(), and SubframeIndication().
|
private |
Definition at line 300 of file lte-ue-phy.h.
Referenced by DoSetSrsConfigurationIndex(), and SubframeIndication().
|
private |
Definition at line 307 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), GetState(), and SwitchToState().
|
private |
Definition at line 309 of file lte-ue-phy.h.
Referenced by GetTypeId(), and SwitchToState().
|
private |
Definition at line 273 of file lte-ue-phy.h.
Referenced by GetSubChannelsForReception(), and SetSubChannelsForReception().
|
private |
Definition at line 272 of file lte-ue-phy.h.
Referenced by GetSubChannelsForTransmission(), and SetSubChannelsForTransmission().
|
private |
Definition at line 275 of file lte-ue-phy.h.
Referenced by DoReset(), QueueSubChannelsForTransmission(), and SubframeIndication().
|
private |
Definition at line 311 of file lte-ue-phy.h.
Referenced by SubframeIndication().
|
private |
Definition at line 296 of file lte-ue-phy.h.
Referenced by CreateDlCqiFeedbackMessage(), DoReset(), and DoSetTransmissionMode().
|
private |
Definition at line 297 of file lte-ue-phy.h.
Referenced by CreateDlCqiFeedbackMessage(), SetTxModeGain(), and ~LteUePhy().
|
private |
Definition at line 291 of file lte-ue-phy.h.
Referenced by DoDispose(), GetLteUeCphySapProvider(), and LteUePhy().
|
private |
Definition at line 292 of file lte-ue-phy.h.
Referenced by ReceiveLteControlMessageList(), ReportUeMeasurements(), and SetLteUeCphySapUser().
|
private |
Definition at line 340 of file lte-ue-phy.h.
|
private |
Definition at line 339 of file lte-ue-phy.h.
Referenced by GetTypeId(), LteUePhy(), and ReportUeMeasurements().
|
private |
Definition at line 338 of file lte-ue-phy.h.
Referenced by GenerateCtrlCqiReport(), ReceivePss(), and ReportUeMeasurements().
|
private |
Definition at line 288 of file lte-ue-phy.h.
Referenced by DoDispose(), GetLteUePhySapProvider(), and LteUePhy().
|
private |
Definition at line 289 of file lte-ue-phy.h.
Referenced by PhyPduReceived(), ReceiveLteControlMessageList(), SetLteUePhySapUser(), and SubframeIndication().
|
private |
Definition at line 305 of file lte-ue-phy.h.
Referenced by DoConfigureUplink(), DoReset(), DoSynchronizeWithEnb(), GenerateCtrlCqiReport(), and SubframeIndication().
|
private |
Trace information regarding PHY stats from DL Tx perspective PhyTrasmissionStatParameters see lte-common.h.
Definition at line 367 of file lte-ue-phy.h.
Referenced by GetTypeId(), and ReceiveLteControlMessageList().