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... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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 |
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 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 | |
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 | |
![]() | |
Object (const Object &o) | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
![]() | |
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 124 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 130 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 159 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 563 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 412 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 1136 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 165 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 278 of file lte-ue-phy.cc.
References ns3::Object::DoInitialize(), and NS_LOG_FUNCTION.
|
private |
Definition at line 1029 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 704 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 361 of file lte-ue-phy.cc.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetMacPdu().
Referenced by ns3::UeMemberLteUePhySapProvider::SendMacPdu().
|
privatevirtual |
Definition at line 712 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 1105 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 1145 of file lte-ue-phy.cc.
References m_rnti, and NS_LOG_FUNCTION.
|
private |
Definition at line 1160 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 1152 of file lte-ue-phy.cc.
References ns3::LtePhy::m_downlinkSpectrumPhy, m_transmissionMode, and NS_LOG_FUNCTION.
|
private |
Definition at line 1065 of file lte-ue-phy.cc.
References CELL_SEARCH, DoSetDlBandwidth(), ns3::LtePhy::m_dlEarfcn, NS_LOG_FUNCTION, and SwitchToState().
|
private |
Definition at line 1082 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 1074 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 422 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 539 of file lte-ue-phy.cc.
Ptr< LteSpectrumPhy > ns3::LteUePhy::GetDlSpectrumPhy | ( | ) | const |
Definition at line 349 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 307 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 292 of file lte-ue-phy.cc.
References m_uePhySapProvider, and NS_LOG_FUNCTION.
uint8_t ns3::LteUePhy::GetMacChDelay | ( | void | ) | const |
Definition at line 343 of file lte-ue-phy.cc.
References ns3::LtePhy::m_macChTtiDelay.
double ns3::LteUePhy::GetNoiseFigure | ( | ) | const |
Definition at line 321 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 1265 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 404 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 396 of file lte-ue-phy.cc.
References m_subChannelsForTransmission, and NS_LOG_FUNCTION.
Referenced by CreateTxPowerSpectralDensity().
double ns3::LteUePhy::GetTxPower | ( | ) | const |
Definition at line 335 of file lte-ue-phy.cc.
References ns3::LtePhy::m_txPower, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
static |
Definition at line 176 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 355 of file lte-ue-phy.cc.
References ns3::LtePhy::m_uplinkSpectrumPhy.
Referenced by GetTypeId().
PhySpectrum received a new PHY-PDU.
Definition at line 370 of file lte-ue-phy.cc.
References m_uePhySapUser, and ns3::LteUePhySapUser::ReceivePhyPdu().
Referenced by ns3::LteHelper::InstallSingleUeDevice().
|
private |
Definition at line 927 of file lte-ue-phy.cc.
References ns3::LtePhy::m_macChTtiDelay, and m_subChannelsForTransmissionQueue.
Referenced by ReceiveLteControlMessageList().
|
virtual |
Definition at line 726 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 1248 of file lte-ue-phy.cc.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetControlMessages().
Referenced by ns3::LteHelper::InstallSingleUeDevice().
|
virtual |
Definition at line 873 of file lte-ue-phy.cc.
References ns3::LteUePhy::PssElement::cellId, ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), 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 545 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 553 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 663 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 1013 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 300 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 285 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 314 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 388 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 376 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 1175 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1181 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1187 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1193 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1199 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1205 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1211 of file lte-ue-phy.cc.
References SetTxModeGain().
Referenced by GetTypeId().
|
private |
Definition at line 1218 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 328 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 934 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 1273 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().