ns-3
|
#include <lte-ue-phy.h>
Public Member Functions | |
LteUePhy () | |
LteUePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy) | |
virtual void | DoStart (void) |
virtual void | DoDispose (void) |
LteUePhySapProvider * | GetLteUePhySapProvider () |
Get the PHY SAP provider. | |
void | SetLteUePhySapUser (LteUePhySapUser *s) |
Set the PHY SAP User. | |
void | SetTxPower (double pow) |
double | GetTxPower () const |
void | SetNoiseFigure (double pow) |
double | GetNoiseFigure () const |
uint8_t | GetMacChDelay (void) const |
virtual void | DoSendMacPdu (Ptr< Packet > p) |
Queue the MAC PDU to be sent. | |
virtual Ptr< SpectrumValue > | CreateTxPowerSpectralDensity () |
Create the PSD for the TX. | |
virtual void | DoSetUplinkSubChannels () |
Update available channel for TX. | |
void | SetSubChannelsForTransmission (std::vector< int > mask) |
Set a list of sub channels to use in TX. | |
std::vector< int > | GetSubChannelsForTransmission (void) |
Get a list of sub channels to use in RX. | |
void | SetSubChannelsForReception (std::vector< int > mask) |
Get a list of sub channels to use in RX. | |
std::vector< int > | GetSubChannelsForReception (void) |
Get a list of sub channels to use in RX. | |
Ptr< DlCqiIdealControlMessage > | CreateDlCqiFeedbackMessage (const SpectrumValue &sinr) |
Create the DL CQI feedback from SINR values perceived at the physical layer with the signal received from eNB. | |
virtual void | GenerateCqiReport (const SpectrumValue &sinr) |
virtual void | DoSendIdealControlMessage (Ptr< IdealControlMessage > msg) |
virtual void | ReceiveIdealControlMessage (Ptr< IdealControlMessage > msg) |
Receive SendIdealControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel. | |
virtual void | DoSetTransmissionMode (uint8_t txMode) |
void | PhyPduReceived (Ptr< Packet > p) |
PhySpectrum received a new PHY-PDU. | |
void | SubframeIndication (uint32_t frameNo, uint32_t subframeNo) |
trigger from eNB the start from a new frame | |
void | SetRnti (uint16_t rnti) |
void | SetEnbCellId (uint16_t cellId) |
![]() | |
LtePhy () | |
LtePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy) | |
void | SetDevice (Ptr< LteNetDevice > d) |
Set the device where the phy layer is attached. | |
Ptr< LteNetDevice > | GetDevice () |
Get the device where the phy layer is attached. | |
Ptr< LteSpectrumPhy > | GetDownlinkSpectrumPhy () |
Ptr< LteSpectrumPhy > | GetUplinkSpectrumPhy () |
void | SetDownlinkChannel (Ptr< SpectrumChannel > c) |
void | SetUplinkChannel (Ptr< SpectrumChannel > c) |
void | SetDownlinkSubChannels (std::vector< int > mask) |
set a list of sub channel to use in the downlink. A sub channel is composed by a couple of resource bloks (180KHz x 1 ms) | |
virtual void | DoSetDownlinkSubChannels () |
do some operation after the set of a list of DL sub channels | |
void | SetUplinkSubChannels (std::vector< int > mask) |
set a list of sub channel to use in the uplink. A sub channel is composed by a couple of resource bloks (180KHz x 1 ms) | |
std::vector< int > | GetDownlinkSubChannels (void) |
get a list of sub channel to use in the downlink | |
std::vector< int > | GetUplinkSubChannels (void) |
get a list of sub channel to use in the downlink | |
void | SetTti (double tti) |
double | GetTti (void) const |
void | DoSetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth) |
virtual void | DoSetEarfcn (uint16_t dlEarfcn, uint16_t ulEarfcn) |
void | DoSetCellId (uint16_t cellId) |
uint8_t | GetRbgSize (void) const |
void | SetMacPdu (Ptr< Packet > p) |
Ptr< PacketBurst > | GetPacketBurst (void) |
void | SetControlMessages (Ptr< IdealControlMessage > m) |
std::list< Ptr < IdealControlMessage > > | GetControlMessages (void) |
![]() | |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Dispose (void) |
void | AggregateObject (Ptr< Object > other) |
AggregateIterator | GetAggregateIterator (void) const |
void | Start (void) |
![]() | |
SimpleRefCount (const SimpleRefCount &o) | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
uint32_t | GetReferenceCount (void) const |
![]() | |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
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) |
This method returns the TypeId associated to ns3::LteUePhy. |
Friends | |
class | UeMemberLteUePhySapProvider |
Additional Inherited Members | |
![]() | |
Ptr< LteNetDevice > | m_netDevice |
Ptr< LteSpectrumPhy > | m_downlinkSpectrumPhy |
Ptr< LteSpectrumPhy > | m_uplinkSpectrumPhy |
std::vector< int > | m_listOfDownlinkSubchannel |
std::vector< int > | m_listOfUplinkSubchannel |
double | m_txPower |
double | m_noiseFigure |
double | m_tti |
uint8_t | m_ulBandwidth |
uint8_t | m_dlBandwidth |
uint8_t | m_rbgSize |
uint16_t | m_dlEarfcn |
uint16_t | m_ulEarfcn |
std::vector< Ptr< PacketBurst > > | m_packetBurstQueue |
std::vector< std::list< Ptr < IdealControlMessage > > > | m_controlMessagesQueue |
uint8_t | m_macChTtiDelay |
uint16_t | m_cellId |
The LteSpectrumPhy models the physical layer of LTE
ns3::LteUePhy::LteUePhy | ( | ) |
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 |
Ptr< DlCqiIdealControlMessage > 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 |
References ns3::LteAmc::CreateCqiFeedbacks(), ns3::LtePhy::GetRbgSize(), ns3::Simulator::Now(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by GenerateCqiReport().
|
virtual |
Create the PSD for the TX.
Implements ns3::LtePhy.
References ns3::LteSpectrumValueHelper::CreateTxPowerSpectralDensity(), GetSubChannelsForTransmission(), and NS_LOG_FUNCTION.
Referenced by SetSubChannelsForTransmission().
|
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.
References NS_LOG_FUNCTION.
Queue the MAC PDU to be sent.
p | the MAC PDU to sent |
Implements ns3::LtePhy.
References NS_LOG_FUNCTION, and ns3::LtePhy::SetMacPdu().
|
virtual |
This method is called only once by Object::Start. If the user calls Object::Start multiple times, DoStart 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.
References ns3::LteSpectrumValueHelper::CreateNoisePowerSpectralDensity(), NS_LOG_FUNCTION, and ns3::LteSpectrumPhy::SetNoisePowerSpectralDensity().
|
virtual |
generate a CQI report based on the given SINR
sinr | the SINR vs frequency measured by the device |
Implements ns3::LtePhy.
References CreateDlCqiFeedbackMessage(), ns3::LtePhy::GetDevice(), ns3::Object::GetObject(), ns3::Now(), ns3::Simulator::Now(), and NS_LOG_FUNCTION.
LteUePhySapProvider * ns3::LteUePhy::GetLteUePhySapProvider | ( | ) |
Get the PHY SAP provider.
References NS_LOG_FUNCTION.
uint8_t ns3::LteUePhy::GetMacChDelay | ( | void | ) | const |
double ns3::LteUePhy::GetNoiseFigure | ( | ) | const |
std::vector< int > ns3::LteUePhy::GetSubChannelsForReception | ( | void | ) |
std::vector< int > ns3::LteUePhy::GetSubChannelsForTransmission | ( | void | ) |
Get a list of sub channels to use in RX.
References NS_LOG_FUNCTION.
Referenced by CreateTxPowerSpectralDensity().
double ns3::LteUePhy::GetTxPower | ( | ) | const |
|
static |
This method returns the TypeId associated to ns3::LteUePhy.
This object is accessible through the following paths with Config::Set and Config::Connect:
Attributes defined for this type:
No TraceSources defined for this type.
Reimplemented from ns3::LtePhy.
References GetNoiseFigure(), GetTxPower(), SetNoiseFigure(), ns3::TypeId::SetParent(), and SetTxPower().
|
virtual |
Receive SendIdealControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.
msg | the Ideal Control Message to receive |
Implements ns3::LtePhy.
References ns3::LteSpectrumPhy::AddExpectedTb(), ns3::LtePhy::GetRbgSize(), NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::LteUePhySapUser::ReceiveIdealControlMessage(), and SetSubChannelsForReception().
void ns3::LteUePhy::SetEnbCellId | ( | uint16_t | cellId | ) |
set the cellId of the eNb this PHY is synchronized with
cellId | the cell identifier of the eNB |
References ns3::LteSpectrumPhy::SetCellId().
void ns3::LteUePhy::SetLteUePhySapUser | ( | LteUePhySapUser * | s | ) |
void ns3::LteUePhy::SetNoiseFigure | ( | double | pow | ) |
void ns3::LteUePhy::SetRnti | ( | uint16_t | rnti | ) |
rnti | the rnti assigned to the UE |
References NS_LOG_FUNCTION.
Referenced by ns3::LteHelper::Attach().
void ns3::LteUePhy::SetSubChannelsForReception | ( | std::vector< int > | mask | ) |
Get a list of sub channels to use in RX.
mask | list of sub channels |
References NS_LOG_FUNCTION.
Referenced by ReceiveIdealControlMessage().
void ns3::LteUePhy::SetSubChannelsForTransmission | ( | std::vector< int > | mask | ) |
Set a list of sub channels to use in TX.
mask | a list of sub channels |
References CreateTxPowerSpectralDensity(), NS_LOG_FUNCTION, and ns3::LteSpectrumPhy::SetTxPowerSpectralDensity().
Referenced by DoSetUplinkSubChannels(), and SubframeIndication().
void ns3::LteUePhy::SetTxPower | ( | double | pow | ) |
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 |
References ns3::LtePhy::GetControlMessages(), ns3::LtePhy::GetDevice(), ns3::Object::GetObject(), ns3::LtePhy::GetPacketBurst(), NS_LOG_LOGIC, ns3::LtePhy::ReceiveIdealControlMessage(), SetSubChannelsForTransmission(), ns3::LteSpectrumPhy::StartTx(), and ns3::LteUePhySapUser::SubframeIndication().