ns-3
ns3::LteEnbPhy Class Reference

#include <lte-enb-phy.h>

Inheritance diagram for ns3::LteEnbPhy:
Collaboration diagram for ns3::LteEnbPhy:

List of all members.

Public Member Functions

 LteEnbPhy ()
 LteEnbPhy (Ptr< LteSpectrumPhy > dlPhy, Ptr< LteSpectrumPhy > ulPhy)
virtual void DoStart (void)
virtual void DoDispose (void)
LteEnbPhySapProviderGetLteEnbPhySapProvider ()
 Get the PHY SAP provider.
void SetLteEnbPhySapUser (LteEnbPhySapUser *s)
 Set the PHY SAP User.
void SetTxPower (double pow)
double GetTxPower () const
void SetNoiseFigure (double pow)
double GetNoiseFigure () const
void SetMacChDelay (uint8_t delay)
uint8_t GetMacChDelay (void) const
virtual void DoSendMacPdu (Ptr< Packet > p)
 Queue the MAC PDU to be sent.
virtual uint8_t DoGetMacChTtiDelay ()
void DoSetDownlinkSubChannels ()
 do some operation after the set of a list of DL sub channels
virtual Ptr< SpectrumValueCreateTxPowerSpectralDensity ()
 Create the PSD for TX.
void CalcChannelQualityForUe (std::vector< double > sinr, Ptr< LteSpectrumPhy > ue)
 Calculate the channel quality for a given UE.
virtual void ReceiveIdealControlMessage (Ptr< IdealControlMessage > msg)
 Send the control message.
UlCqi_s CreateUlCqiReport (const SpectrumValue &sinr)
 Create the UL CQI feedback from SINR values perceived at the physical layer with the signal received from eNB.
void DoSendIdealControlMessage (Ptr< IdealControlMessage > msg)
bool AddUePhy (uint16_t rnti, Ptr< LteUePhy > phy)
bool DeleteUePhy (uint16_t rnti)
virtual void DoSetTransmissionMode (uint16_t rnti, uint8_t txMode)
void QueueUlDci (UlDciIdealControlMessage m)
std::list
< UlDciIdealControlMessage
DequeueUlDci (void)
void StartFrame (void)
 Start a LTE frame.
void StartSubFrame (void)
 Start a LTE sub frame.
void EndSubFrame (void)
 End a LTE sub frame.
void EndFrame (void)
 End a LTE frame.
void PhyPduReceived (Ptr< Packet > p)
 PhySpectrum received a new PHY-PDU.
virtual void GenerateCqiReport (const SpectrumValue &sinr)
- 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)
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)
virtual void DoSetUplinkSubChannels ()
 do some operation after the set of a list of UL sub channels
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::LteEnbPhy.

Friends

class EnbMemberLteEnbPhySapProvider

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

LteEnbPhy models the physical layer for the eNodeB


Constructor & Destructor Documentation

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

References NS_FATAL_ERROR, and NS_LOG_FUNCTION.

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

References ns3::Simulator::ScheduleNow(), and StartFrame().


Member Function Documentation

void ns3::LteEnbPhy::CalcChannelQualityForUe ( std::vector< double >  sinr,
Ptr< LteSpectrumPhy ue 
)

Calculate the channel quality for a given UE.

Parameters:
sinra list of computed SINR
uethe UE

References NS_LOG_FUNCTION.

UlCqi_s ns3::LteEnbPhy::CreateUlCqiReport ( const SpectrumValue sinr)

Create the UL CQI feedback from SINR values perceived at the physical layer with the signal received from eNB.

Parameters:
sinrSINR values vector

References ns3::SpectrumValue::ConstValuesBegin(), ns3::SpectrumValue::ConstValuesEnd(), and NS_LOG_FUNCTION.

Referenced by GenerateCqiReport().

std::list< UlDciIdealControlMessage > ns3::LteEnbPhy::DequeueUlDci ( void  )
Returns:
the list of UL-CQI to be processed

References NS_LOG_FUNCTION.

Referenced by StartSubFrame().

void ns3::LteEnbPhy::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::LteEnbPhy::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::LteEnbPhy::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::LteEnbPhy::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 CreateUlCqiReport(), NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::UlCqiReport().

LteEnbPhySapProvider * ns3::LteEnbPhy::GetLteEnbPhySapProvider ( )

Get the PHY SAP provider.

Returns:
a pointer to the SAP Provider of the PHY
uint8_t ns3::LteEnbPhy::GetMacChDelay ( void  ) const
Returns:
the TTI delay between MAC and channel

Referenced by GetTypeId().

double ns3::LteEnbPhy::GetNoiseFigure ( ) const
Returns:
the noise figure in dB

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

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

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

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

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

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

  • /NodeList/[i]/DeviceList/[i]/$ns3::LteEnbNetDevice/LteEnbPhy
  • /NodeList/[i]/DeviceList/[i]/$ns3::LteNetDevice/$ns3::LteEnbNetDevice/LteEnbPhy

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: 30
    • 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: 5
    • Flags: construct write read
  • MacToChannelDelay: The delay in TTI units that occurs between a scheduling decision in the MAC and the actual start of the transmission by the PHY. This is intended to be used to model the latency of real PHY and MAC implementations.

No TraceSources defined for this type.

Reimplemented from ns3::LtePhy.

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

void ns3::LteEnbPhy::QueueUlDci ( UlDciIdealControlMessage  m)
Parameters:
mthe UL-CQI to be queued

References NS_LOG_FUNCTION.

Referenced by StartSubFrame().

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

Send the control message.

Parameters:
msgthe message to send Receive the control message
msgthe received message

Implements ns3::LtePhy.

References NS_LOG_FUNCTION, and ns3::LteEnbPhySapUser::ReceiveIdealControlMessage().

void ns3::LteEnbPhy::SetLteEnbPhySapUser ( LteEnbPhySapUser s)

Set the PHY SAP User.

Parameters:
sa pointer to the PHY SAP user
void ns3::LteEnbPhy::SetMacChDelay ( uint8_t  delay)
Parameters:
delaythe TTI delay between MAC and channel

Referenced by GetTypeId().

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

References NS_LOG_FUNCTION.

Referenced by GetTypeId().

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

References NS_LOG_FUNCTION.

Referenced by GetTypeId().


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