ns-3
ns3::LteUePhy Class Reference

#include <lte-ue-phy.h>

Inheritance diagram for ns3::LteUePhy:
Collaboration diagram for ns3::LteUePhy:

List of all members.

Public Member Functions

 LteUePhy ()
 LteUePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy)
virtual void DoStart (void)
virtual void DoDispose (void)
LteUePhySapProviderGetLteUePhySapProvider ()
 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< SpectrumValueCreateTxPowerSpectralDensity ()
 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< DlCqiIdealControlMessageCreateDlCqiFeedbackMessage (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)
- Public Member Functions inherited from ns3::LtePhy
 LtePhy ()
 LtePhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy)
void SetDevice (Ptr< LteNetDevice > d)
 Set the device where the phy layer is attached.
Ptr< LteNetDeviceGetDevice ()
 Get the device where the phy layer is attached.
Ptr< LteSpectrumPhyGetDownlinkSpectrumPhy ()
Ptr< LteSpectrumPhyGetUplinkSpectrumPhy ()
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< PacketBurstGetPacketBurst (void)
void SetControlMessages (Ptr< IdealControlMessage > m)
std::list< Ptr
< IdealControlMessage > > 
GetControlMessages (void)
- Public Member Functions inherited from ns3::Object
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)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount (const SimpleRefCount &o)
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
uint32_t GetReferenceCount (void) const
- Public Member Functions inherited from ns3::ObjectBase
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

- Protected Attributes inherited from ns3::LtePhy
Ptr< LteNetDevicem_netDevice
Ptr< LteSpectrumPhym_downlinkSpectrumPhy
Ptr< LteSpectrumPhym_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

Detailed Description

The LteSpectrumPhy models the physical layer of LTE


Constructor & Destructor Documentation

ns3::LteUePhy::LteUePhy ( )
Warning:
the default constructor should not be used

References NS_FATAL_ERROR, and NS_LOG_FUNCTION.

ns3::LteUePhy::LteUePhy ( Ptr< LteSpectrumPhy dlPhy,
Ptr< LteSpectrumPhy ulPhy 
)
Parameters:
dlPhythe downlink LteSpectrumPhy instance
ulPhythe uplink LteSpectrumPhy instance

Member Function Documentation

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.

Parameters:
sinrSINR 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().

Ptr< SpectrumValue > ns3::LteUePhy::CreateTxPowerSpectralDensity ( )
virtual

Create the PSD for the TX.

Returns:
the pointer to the PSD

Implements ns3::LtePhy.

References ns3::LteSpectrumValueHelper::CreateTxPowerSpectralDensity(), GetSubChannelsForTransmission(), and NS_LOG_FUNCTION.

Referenced by SetSubChannelsForTransmission().

void ns3::LteUePhy::DoDispose ( void  )
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.

void ns3::LteUePhy::DoSendMacPdu ( Ptr< Packet p)
virtual

Queue the MAC PDU to be sent.

Parameters:
pthe MAC PDU to sent

Implements ns3::LtePhy.

References NS_LOG_FUNCTION, and ns3::LtePhy::SetMacPdu().

void ns3::LteUePhy::DoStart ( void  )
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().

void ns3::LteUePhy::GenerateCqiReport ( const SpectrumValue sinr)
virtual

generate a CQI report based on the given SINR

Parameters:
sinrthe 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.

Returns:
a pointer to the SAP Provider of the PHY

References NS_LOG_FUNCTION.

uint8_t ns3::LteUePhy::GetMacChDelay ( void  ) const
Returns:
the TTI delay between MAC and channel
double ns3::LteUePhy::GetNoiseFigure ( ) const
Returns:
the noise figure in dB

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

std::vector< int > ns3::LteUePhy::GetSubChannelsForReception ( void  )

Get a list of sub channels to use in RX.

Returns:
a list of sub channels

References NS_LOG_FUNCTION.

std::vector< int > ns3::LteUePhy::GetSubChannelsForTransmission ( void  )

Get a list of sub channels to use in RX.

Returns:
a list of sub channels

References NS_LOG_FUNCTION.

Referenced by CreateTxPowerSpectralDensity().

double ns3::LteUePhy::GetTxPower ( ) const
Returns:
the transmission power in dBm

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

TypeId ns3::LteUePhy::GetTypeId ( void  )
static

This method returns the TypeId associated to ns3::LteUePhy.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::LteNetDevice/$ns3::LteUeNetDevice/LteUePhy
  • /NodeList/[i]/DeviceList/[i]/$ns3::LteUeNetDevice/LteUePhy

Attributes defined for this type:

  • TxPower: Transmission power in dBm
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 10
    • Flags: construct write read
  • NoiseFigure: Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver. According to Wikipedia (http://en.wikipedia.org/wiki/Noise_figure), this is "the difference in decibels (dB) between the noise output of the actual receiver to the noise output of an ideal receiver with the same overall gain and bandwidth when the receivers are connected to sources at the standard noise temperature T0." In this model, we consider T0 = 290K.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 9
    • Flags: construct write read
  • TxMode1Gain: Transmission mode 1 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write
  • TxMode2Gain: Transmission mode 2 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 4.2
    • Flags: construct write
  • TxMode3Gain: Transmission mode 3 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -2.8
    • Flags: construct write
  • TxMode4Gain: Transmission mode 4 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write
  • TxMode5Gain: Transmission mode 5 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write
  • TxMode6Gain: Transmission mode 6 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write
  • TxMode7Gain: Transmission mode 7 gain in dB
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write

No TraceSources defined for this type.

Reimplemented from ns3::LtePhy.

References GetNoiseFigure(), GetTxPower(), SetNoiseFigure(), ns3::TypeId::SetParent(), and SetTxPower().

void ns3::LteUePhy::ReceiveIdealControlMessage ( Ptr< IdealControlMessage msg)
virtual

Receive SendIdealControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel.

Parameters:
msgthe 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

Parameters:
cellIdthe cell identifier of the eNB

References ns3::LteSpectrumPhy::SetCellId().

void ns3::LteUePhy::SetLteUePhySapUser ( LteUePhySapUser s)

Set the PHY SAP User.

Parameters:
sa pointer to the PHY SAP user

References NS_LOG_FUNCTION.

void ns3::LteUePhy::SetNoiseFigure ( double  pow)
Parameters:
pwthe noise figure in dB

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

void ns3::LteUePhy::SetRnti ( uint16_t  rnti)
Parameters:
rntithe 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.

Parameters:
masklist 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.

Parameters:
maska list of sub channels

References CreateTxPowerSpectralDensity(), NS_LOG_FUNCTION, and ns3::LteSpectrumPhy::SetTxPowerSpectralDensity().

Referenced by DoSetUplinkSubChannels(), and SubframeIndication().

void ns3::LteUePhy::SetTxPower ( double  pow)
Parameters:
pwthe transmission power in dBm

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

void ns3::LteUePhy::SubframeIndication ( uint32_t  frameNo,
uint32_t  subframeNo 
)

The documentation for this class was generated from the following files: